Войти

Показать полную графическую версию : Bacula прошу помочь разобраться с восстановлением из бекапов.


masus
30-04-2008, 11:40
Доброго времени суток всем. Вся система досталась в наследство от
предшественника. До этого с бакулой не работал.
Вся система работает стабильно.
Для хранения информации о пулах и сохраненных файлах используется БД Postgresql, сервер которой располагается на этом же сервере.

В конфиге Директора определено 3 пула основных:
1. Для Полных бекапов (Pool_Full), размер - 230 Гб (//BACULA@BACKUP/VOLUME03 on /mnt/volume03)
2. Для Дифференциальных бекапов (Pool_Dif), размер - 145 Гб (//BACULA@BACKUP/VOLUME01 on /mnt/volume01)
3. Для Инкрементальных бекапов (Pool_Inc), размер - 145 Гб (//BACULA@BACKUP/VOLUME02 on /mnt/volume02)
+ 1 скретч-пул (резервный, если заканчивается место на одном из вышеперечисленных пулов,
бекап делается на него) (Scratch), размер - 145 Гб (//BACULA@BACKUP/VOLUME00 on /mnt/volume00)

Все вышеуказанные пулы - каталоги на дисках с сервера backup, монтирумые по самбе.

Вот только я не могу разобраться с тем как можно восстановить что либо из бекапов в случае аварии. Подскажите все возможные варианты.
Вот конфиг director
Director { # define myself
Name = backupbsd-dir
DIRport = 9101 # where we listen for UA connections
DirAddress = 192.168.31.12
QueryFile = "/usr/local/share/bacula/query.sql"
WorkingDirectory = "/var/db/bacula"
PidDirectory = "/var/run"
Maximum Concurrent Jobs = 2
Password = "YMnGqUg72BcUQphg1G2foFyfrM2gzbHXDnmv1+txneFZ" # Console password
# Password = "hbmQsjBX" # Console password
Messages = Daemon
}

JobDefs {
Name = "DefaultJob"
Type = Backup
Level = Incremental
#Client = backupbsd-fd
FileSet = "Full Set"
#Schedule = "WeeklyCycle"
#Storage = File
Messages = Standard
Pool = Default
Priority = 10
Write Bootstrap = "/var/db/bacula/%c_%n.bsr"
}

JobDefs {
Name = "MainDefJob"
Type = Backup
Level = Incremental
#Client = backupbsd-fd
#FileSet = "Full Set"
#Schedule = "WeeklyCycle"
Messages = Standard
Pool = Default
Full Backup Pool = Pool_Full
Differential Backup Pool = Pool_Dif
Incremental Backup Pool = Pool_Inc
Priority = 10
Write Bootstrap = "/var/db/bacula/%c_%n.bsr"
}

#
# Define the main nightly save backup job
# By default, this job will back up to disk in /tmp
#Job {
# Name = "Client1"
# JobDefs = "DefaultJob"
# Write Bootstrap = "/var/db/bacula/Client1.bsr"
#}

#Job {
# Name = "Backup_ws040"
# Client = ws040-adm-1-fd
# JobDefs = "MainDefJob"
# Level = Incremental
# FileSet = Test1
# #Schedule = Test1
#}

Job {
Name = "Backup_Q"
Client = blade2-fd
JobDefs = "MainDefJob"
Level = Full
FileSet = FileSetFullQ
#Max Run Time = 9h
Schedule = WeeklyCycleQ
}

Job {
Name = "Backup_Vault"
Client = blade2-fd
JobDefs = "MainDefJob"
Level = Full
FileSet = FileSetVault
#Schedule = WeeklyCycleVault
}

Job {
Name = "Backup_1C"
Client = rzga-nms-fd
JobDefs = "MainDefJob"
Level = Full
FileSet = FileSet1C
Schedule = WeeklyCycle1C
}

#Job {
# Name = "Restore_ws040"
# Type = Restore
# Client = ws040-adm-1-fd
# FileSet="Full Set"
# Pool = Default
# Messages = Standard
# Where = /bacula-restores
#}

Job {
Name = "Restore_Q"
Type = Restore
Client = blade2-fd
FileSet="FileSetFullQ"
Pool = Default
Messages = Standard
Where = /bacula-restores
}

#Job {
# Name = "Client2"
# Client = backupbsd2-fd
# JobDefs = "DefaultJob"
# Write Bootstrap = "/var/db/bacula/Client2.bsr"
#}

# Backup the catalog database (after the nightly save)
#Job {
#Name = "BackupCatalog"
#JobDefs = "DefaultJob"
#Level = Full
#FileSet="Catalog"
#Schedule = "WeeklyCycleAfterBackup"
## This creates an ASCII copy of the catalog
#RunBeforeJob = "/usr/local/share/bacula/make_catalog_backup bacula bacula Qs8d479S"
# This deletes the copy of the catalog
#RunAfterJob = "/usr/local/share/bacula/delete_catalog_backup"
#Write Bootstrap = "/var/db/bacula/BackupCatalog.bsr"
#Priority = 11 # run after main backup
#}

#
# Standard Restore template, to be changed by Console program
# Only one such job is needed for all Jobs/Clients/Storage ...
#
#Job {
# Name = "RestoreFiles"
# Type = Restore
# Client=backupbsd-fd
# FileSet="Full Set"
# Storage = File
# Pool = Default
# Messages = Standard
# Where = /tmp/bacula-restores
#}


# List of files to be backed up
FileSet {
Name = "Full Set"
Include {
Options {
signature = MD5
}
#
# Put your list of files here, preceded by 'File =', one per line
# or include an external list with:
#
# File = <file-name
#
# Note: / backs up everything on the root partition.
# if you have other partitons such as /usr or /home
# you will probably want to add them too.
#
# By default this is defined to point to the Bacula build
# directory to give a reasonable FileSet to backup to
# disk storage during initial testing.
#
File = /usr/ports/sysutils/bacula-server/work/bacula-2.0.3
}

#
# If you backup the root directory, the following two excluded
# files can be useful
#
Exclude {
File = /proc
File = /tmp
File = /.journal
File = /.fsck
}
}

FileSet {
Name = "FileSetFullQ"
Include {
Options {
signature = MD5
compression = GZIP
wildfile = "*.avi"
wildfile = "*.mp3"
wildfile = "*.m3u"
wildfile = "*.ac3"
wildfile = "*.vob"
wildfile = "*.mov"
wildfile = "*.mpg"
wildfile = "*.mpeg"
wildfile = "*.mp4"
wildfile = "*.flv"
wildfile = "*.wav"
wildfile = "*.ogg"
wildfile = "*.iso"
wildfile = "*.nrg"
wildfile = "*.mkv"
wildfile = "*.vmdk"
wildfile = "*.vmem"
wildfile = "*.lck"
wilddir = "audio_ts"
wilddir = "video_ts"
Exclude = Yes
IgnoreCase = Yes
}
File = "v:/share_files"
}
}

FileSet {
Name = "FileSetVault"
Include {
Options {
signature = MD5
compression = GZIP
IgnoreCase = Yes
}
File = "v:/Vault"
}
}

FileSet {
Name = "FileSet1C"
Include {
Options {
signature = MD5
compression = GZIP
IgnoreCase = Yes
}
File = "d:/1cdb"
}
}


#
# When to do the backups, full backup on first sunday of the month,
# differential (i.e. incremental since full) every other sunday,
# and incremental backups other days
Schedule {
Name = "WeeklyCycleQ"
# Uncomment after 1st sat @ june
#Run = Full 1st sat at 21:30
Run = Differential 2nd-5th sat at 21:30
Run = Incremental mon-fri at 22:30
#FullPool = Pool_Full
#DifferentialPool = Pool_Dif
#IncrementalPool = Pool_Inc
}

Schedule {
Name = "WeeklyCycleVault"
Run = Full 1st sun at 22:30
Run = Differential 2nd-5th sun at 22:30
Run = Incremental mon-sat at 22:00
}

Schedule {
Name = "WeeklyCycle1C"
Run = Full 1st sun at 21:30
Run = Differential 2nd-5th sun at 21:30
Run = Incremental mon-sat at 21:30
}

# This schedule does the catalog. It starts after the WeeklyCycle
Schedule {
Name = "WeeklyCycleAfterBackup"
Run = Full sun-sat at 23:10
}


#Schedule {
# Name = "Test1"
# Run = Incremental mon at 15:36
#}

# This is the backup of the catalog
FileSet {
Name = "Catalog"
Include {
Options {
signature = MD5
}
File = /var/db/bacula/bacula.sql
}
}

# Client (File Services) to backup
#Client {
# Name = backupbsd-fd
# Address = backupbsd
# FDPort = 9102
# Catalog = MyCatalog
# Password = "zTZIHI1LRMVlgCfBZYPHhSjbEP1OpcVBnZIFi8VhhBDH" # password for FileDaemon
# Password = "hbmQsjBX" # password for FileDaemon
# File Retention = 30 days # 30 days
# Job Retention = 6 months # six months
# AutoPrune = yes # Prune expired Jobs/Files
#}

Client {
Name = blade2-fd
Address = blade2.rzga.intra
FDPort = 9102
Catalog = MainCatalog
Password = "dJHzEhe+HI92fyUuZtJN7mZ7ZbHWNqUpMl3KlK7w8WlY" # password for FileDaemon
File Retention = 30 days # 30 days
Job Retention = 6 months # six months
AutoPrune = yes # Prune expired Jobs/Files
}

Client {
Name = rzga-nms-fd
Address = rzga-nms.rzga.intra
FDPort = 9102
Catalog = MainCatalog
Password = "rwLhztt9oRSBdi5ZzMAaCp6F7kVjvbGsuysq3jywmkUh" # password for FileDaemon
File Retention = 30 days # 30 days
Job Retention = 6 months # six months
AutoPrune = yes # Prune expired Jobs/Files
}

#Client {
# Name = ws040-adm-1-fd
# Address = ws040-adm-1.rzga.intra
# FDPort = 9102
# Catalog = MainCatalog
# Password = "zTZIHI1LRMVlgCfBZYPHhSjbEP1OpcVBnZIFi8VhhBDH" # password for FileDaemon
# File Retention = 30 days # 30 days
# Job Retention = 6 months # six months
# AutoPrune = yes # Prune expired Jobs/Files
#}

#
# Second Client (File Services) to backup
# You should change Name, Address, and Password before using
#
#Client {
# Name = backupbsd2-fd
# Address = backupbsd2
# FDPort = 9102
# Catalog = MyCatalog
# Password = "zTZIHI1LRMVlgCfBZYPHhSjbEP1OpcVBnZIFi8VhhBDH2" # password for FileDaemon 2
# File Retention = 30 days # 30 days
# Job Retention = 6 months # six months
# AutoPrune = yes # Prune expired Jobs/Files
#}


# Definition of file storage device
Storage {
Name = BackupDrive00
# Do not use "localhost" here
Address = backupbsd # N.B. Use a fully qualified name here
SDPort = 9103
Password = "cIlBNLMundyatSXsAOSHhK3HgAU2INf/2ZfK8p8t/gnf"
Device = Volume00
#Media Type = File
Media Type = Hdd140_1
}

Storage {
Name = BackupDrive01
# Do not use "localhost" here
Address = backupbsd # N.B. Use a fully qualified name here
SDPort = 9103
Password = "cIlBNLMundyatSXsAOSHhK3HgAU2INf/2ZfK8p8t/gnf"
Device = Volume01
Media Type = Hdd150_1
}

Storage {
Name = BackupDrive02
# Do not use "localhost" here
Address = backupbsd # N.B. Use a fully qualified name here
SDPort = 9103
Password = "cIlBNLMundyatSXsAOSHhK3HgAU2INf/2ZfK8p8t/gnf"
Device = Volume02
Media Type = Hdd150_2
}

Storage {
Name = BackupDrive03
# Do not use "localhost" here
Address = backupbsd # N.B. Use a fully qualified name here
SDPort = 9103
Password = "cIlBNLMundyatSXsAOSHhK3HgAU2INf/2ZfK8p8t/gnf"
Device = Volume03
Media Type = Hdd240_1
}

# Definition of DDS tape storage device
#Storage {
# Name = DDS-4
# Do not use "localhost" here
# Address = backupbsd # N.B. Use a fully qualified name here
# SDPort = 9103
# Password = "cIlBNLMundyatSXsAOSHhK3HgAU2INf/2ZfK8p8t/gnf" # password for Storage daemon
# Device = DDS-4 # must be same as Device in Storage daemon
# Media Type = DDS-4 # must be same as MediaType in Storage daemon
# Autochanger = yes # enable for autochanger device
#}

# Definition of 8mm tape storage device
#Storage {
# Name = "8mmDrive"
# Do not use "localhost" here
# Address = backupbsd # N.B. Use a fully qualified name here
# SDPort = 9103
# Password = "cIlBNLMundyatSXsAOSHhK3HgAU2INf/2ZfK8p8t/gnf"
# Device = "Exabyte 8mm"
# MediaType = "8mm"
#}

# Definition of DVD storage device
#Storage {
# Name = "DVD"
# Do not use "localhost" here
# Address = backupbsd # N.B. Use a fully qualified name here
# SDPort = 9103
# Password = "cIlBNLMundyatSXsAOSHhK3HgAU2INf/2ZfK8p8t/gnf"
# Device = "DVD Writer"
# MediaType = "DVD"
#}


# Generic catalog service
Catalog {
Name = MainCatalog
dbname = bacula; user = bacula; password = "Qs8d479S"
}

# Reasonable message delivery -- send most everything to email address
# and to the console
Messages {
Name = Standard
#
# NOTE! If you send to two email or more email addresses, you will need
# to replace the %r in the from field (-f part) with a single valid
# email address in both the mailcommand and the operatorcommand.
# What this does is, it sets the email address that emails would display
# in the FROM field, which is by default the same email as they're being
# sent to. However, if you send email to more than one address, then
# you'll have to set the FROM address manually, to a single address.
# for example, a 'no-reply@mydomain.com', is better since that tends to
# tell (most) people that its coming from an automated source.

#
#mailcommand = "/usr/local/sbin/bsmtp -h mail -f \"\(Bacula\) %r\" -s \"Bacula: %t %e of %c %l\" %r"
mailcommand = "/usr/bin/mail -s \"Bacula: %t %e of %c %l\" bacula@rzga.ru"
#operatorcommand = "/usr/local/sbin/bsmtp -h mail -f \"\(Bacula\) %r\" -s \"Bacula: Intervention needed for %j\" %r"
operatorcommand = "/usr/bin/mail -s \"Bacula: Intervention needed for %j\" bacula@rzga.ru"
mail = bacula@rzga.ru = all, !skipped
operator = bacula@rzga.ru = mount
console = all, !skipped, !saved
#
# WARNING! the following will create a file that you must cycle from
# time to time as it will grow indefinitely. However, it will
# also keep all your messages if they scroll off the console.
#
append = "/var/db/bacula/log" = all, !skipped
}


#
# Message delivery for daemon messages (no job).
Messages {
Name = Daemon
#mailcommand = "/usr/local/sbin/bsmtp -h localhost -f \"\(Bacula\) %r\" -s \"Bacula daemon message\" %r"
mailcommand = "/usr/bin/mail -s \"Bacula daemon message\" bacula@rzga.ru"
mail = bacula@rzga.ru = all, !skipped
console = all, !skipped, !saved
append = "/var/db/bacula/log" = all, !skipped
}




# Default pool definition
Pool {
Name = Default
Pool Type = Backup
Recycle = yes # Bacula can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 180 days # half year
Maximum Volume Bytes = 10GB
Label Format = "Vol"
Storage = BackupDrive00
#Storage = BackupDrive01
#Storage = BackupDrive02
#Storage = BackupDrive03
}

Pool {
Name = Pool_Full
Pool Type = Backup
Recycle = yes # Bacula can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 180 days # half year
Maximum Volume Bytes = 10GB
Label Format = "FullVol"
Storage = BackupDrive03
}

Pool {
Name = Pool_Dif
Pool Type = Backup
Recycle = yes # Bacula can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 180 days # half year
Maximum Volume Bytes = 10GB
Label Format = "DifVol"
Storage = BackupDrive01
}

Pool {
Name = Pool_Inc
Pool Type = Backup
Recycle = yes # Bacula can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 180 days # half year
Maximum Volume Bytes = 10GB
Label Format = "IncVol"
Storage = BackupDrive02
}

Pool {
Name = Scratch
Pool Type = Backup
Maximum Volume Bytes = 10GB
Storage = BackupDrive00
}

#
# Restricted console used by tray-monitor to get the status of the director
#
Console {
Name = backupbsd-mon
Password = "AhG766IX"
CommandACL = status, .status

Prefer
30-04-2008, 14:34
Запускаете bconsole
Задаете команду restore
Выбираете вариант восстановления и тд
Смотрите документацию

masus
04-05-2008, 11:55
Если не ошибаюсь Бакула ресторит инфу в то же место где и лежит инфа
для бекапов?
Как ресторить инфу в укакзанное мною место?

Prefer
04-05-2008, 12:26
Изменить значение параметра where




© OSzone.net 2001-2012