首页 > 代码库 > 开源备份软件bacula安装记录--含备份-恢复演练

开源备份软件bacula安装记录--含备份-恢复演练

公司原来的备份机器用的是oracle-linux 5.7 运行的不是很稳定,经常出现死机,新装了一个centos6.5, 准备使用bacula来对数据进行备份,在这里记录一下安装过错,备忘.


操作系统:centos6.5


1、安装mysql

用yum安装

yum install mysql mysql-server mysql-devel

这里要注意的是一定要安装mysql-devel,否则在等下configure bacula的时候会报找不到mysql.h文件--这里折腾了我好久,差点想去编译安装mysql


2、安装bacula-server端

解压

./configure --prefix=/opt/bacula --with-mysql                      #这里只要指定mysql就可以,不需要指定路径,因为bacula会去默认的路径去找mysql

make

make install


3、初始化数据库

初始化的时候要保证mysql的root密码为空。。。。

进入bacula/etc 目录,执行以下命令

./grant_mysql_privileges
./create_mysql_database
./make_mysql_tables 

4、配置bacula Director端\SD端

这里需要配置一个job  一个fileset 一个client 其他用默认的配置即可满足一般要求

下面贴一下我的配置

Job{                                                          #job的作用是定义一个备份任务,一些参数像差异备份啦 备份周期啦 日志啦等等
  Name="7.17"
  Type = Backup
  Level = Incremental
  Client = 7.17
  FileSet = "7.17"
  Schedule = "WeeklyCycle"
  Storage = File
  Messages = Standard
  Pool = File
  Priority = 10
  Write Bootstrap = "/opt/bacula/var/bacula/working/%c.bsr"
}FileSet {                                                    #在fileset里面定义客户端要备份的文件或者目录  Name = "7.17"  Include {    Options {      signature = MD5    }    File = "/opt/jdk"  }Client {                                                    #定义客户端的一些参数,比如ip 端口 等  Name = 7.17  Address = 192.168.7.17  FDPort = 9102  Catalog = MyCatalog  Password = "24H/a2pSWjFxWituyFuB8LpParvcDKgEMywQlxEgxxxx2"          # password for FileDaemon  File Retention = 30 days            # 30 days  Job Retention = 6 months            # six months  AutoPrune = yes                     # Prune expired Jobs/Files}

SD端使用默认配置即可

5、配置FD端--备份客户端

直接上配置,要点就是director的名字和密码要和dir的配置对上!

Director {
  Name = Bacula200-dir
  Password = "24H/a2pSWjFxWituyFuB8LpParvcDKgEMywQlxEgRldd2"
}

#
# Restricted Director, used by tray-monitor to get the
#   status of the file daemon
#
Director {
  Name = Bacula200-mon
  Password="24H/a2pSWjFxWituyFuB8LpParvcDKgEMywQlxEgRldd2"
  Monitor = yes
}

#
# "Global" File daemon configuration specifications
#
FileDaemon {                          # this is me
  Name = centos-003-fd
  FDport = 9102                  # where we listen for the director
  WorkingDirectory = /opt/bacula/var/bacula/working
  Pid Directory = /var/run
  Maximum Concurrent Jobs = 20
}

# Send all messages except skipped files back to Director
Messages {
  Name = Standard
  director = centos-003-dir = all, !skipped, !restored
}

6、开始备份、恢复过程

备份首先要创建卷组

在环境变量里面加上 bacula的sbin路径

PATH=$PATH:$HOME/bin:/opt/bacula/sbin
然后使用bconsole进入控制台

然后就可以通过命令控制备份程序了

首先通过label欻关键卷组

然后使用run命令开始操作

备份

*run                                                             #开始任务使用run选择刚才创建的任务
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
A job name must be specified.
The defined Job resources are:
     1: BackupClient1
     2: xxxxxx
     3: xxxxxx
     4: BackupCatalog
     5: RestoreFiles
Select Job resource (1-5): 1  
Run Backup job
JobName:  BackupClient1
Level:    Incremental
Client:   Bacula200-fd
FileSet:  Full Set
Pool:     File (From Job resource)
Storage:  File (From Job resource)
When:     2014-07-07 22:32:21
Priority: 10
OK to run? (yes/mod/no): yes
Job queued. JobId=1
You have messages.

*s                                                                               #使用s查看director来查看任务执行情况
Status available for:
     1: Director
     2: Storage
     3: Client
     4: All
Select daemon type for status (1-4): 1
Bacula200-dir Version: 5.2.6 (21 February 2012) x86_64-unknown-linux-gnu redhat 
Daemon started 07-Jul-14 22:22. Jobs: run=1, running=0 mode=0,0
 Heap: heap=274,432 smbytes=81,718 max_bytes=95,201 bufs=292 max_bufs=330

Scheduled Jobs:
Level          Type     Pri  Scheduled          Name               Volume
===================================================================================
Incremental    Backup    10  07-Jul-14 23:05    BackupClient1      20140708
Incremental    Backup    10  07-Jul-14 23:05    xxxxx              20140708
Incremental    Backup    10  07-Jul-14 23:05    xxxxx              20140708
Full           Backup    11  07-Jul-14 23:10    BackupCatalog      20140708
====

Running Jobs:
Console connected at 07-Jul-14 22:30
No Jobs running.
====

Terminated Jobs:
 JobId  Level    Files      Bytes   Status   Finished        Name 
====================================================================
     1  Full         16    10.98 M  OK       07-Jul-14 22:32 BackupClient1


  #任务完成后,如果你登陆控制台,他会给你发下面备份成功的消息,如果失败也会发消息告诉你原因  Build OS:               x86_64-unknown-linux-gnu redhat                    
  JobId:                  1
  Job:                    BackupClient1.2014-07-07_22.32.27_03
  Backup Level:           Full (upgraded from Incremental)
  Client:                 "Bacula200-fd" 5.2.6 (21Feb12) x86_64-unknown-linux-gnu,redhat,
  FileSet:                "Full Set" 2014-07-07 22:32:27
  Pool:                   "File" (From Job resource)
  Catalog:                "MyCatalog" (From Client resource)
  Storage:                "File" (From Job resource)
  Scheduled time:         07-Jul-2014 22:32:21
  Start time:             07-Jul-2014 22:32:29
  End time:               07-Jul-2014 22:32:30
  Elapsed time:           1 sec
  Priority:               10
  FD Files Written:       16
  SD Files Written:       16
  FD Bytes Written:       10,988,458 (10.98 MB)
  SD Bytes Written:       10,990,169 (10.99 MB)
  Rate:                   10988.5 KB/s
  Software Compression:   None
  VSS:                    no
  Encryption:             no
  Accurate:               no
  Volume name(s):         20140708
  Volume Session Id:      1
  Volume Session Time:    1404786153
  Last Volume Bytes:      10,999,377 (10.99 MB)
  Non-fatal FD errors:    0
  SD Errors:              0
  FD termination status:  OK
  SD termination status:  OK
  Termination:            Backup OK
恢复

*run                                                            #还是使用run开始
A job name must be specified.
The defined Job resources are:
     1: BackupClient1
     2: xmygc
     3: xm214
     4: BackupCatalog
     5: RestoreFiles
Select Job resource (1-5): 5
Please enter a JobId for restore: 1                            #jobid 可以通过s- dirctory 来查看Run Restore job
JobName:    RestoreFiles
Bootstrap:  *None*
Where:      /tmp/bacula-restores
Replace:         always
Client:          Bacula200-fd
Storage:         File
JobId:           1
When:            2014-07-08 11:00:35
Catalog:         MyCatalog
Priority:        10
Plugin Options:  *None*
OK to run? (yes/mod/no): mod                                    #可以选择修改恢复的一些参数,这里选择更改恢复目的地
Parameters to modify:
     1: Level
     2: Storage
     3: Job
     4: FileSet
     5: Restore Client
     6: When
     7: Priority
     8: Bootstrap
     9: Where
    10: File Relocation
    11: Replace
    12: JobId
    13: Plugin Options
Select parameter to modify (1-13): 9
Please enter path prefix for restore (/ for none): /root/test
Run Restore job
JobName:    RestoreFiles
Bootstrap:  *None*
Where:      /root/test
Replace:         always
Client:          Bacula200-fd
Storage:         File
JobId:           1
When:            2014-07-08 11:00:35
Catalog:         MyCatalog
Priority:        10
Plugin Options:  *None*
OK to run? (yes/mod/no): yes
Job queued. JobId=2

#报告恢复完成08-Jul 11:11 Bacula200-dir JobId 4: Start Restore Job RestoreFiles.2014-07-08_11.10.59_11
08-Jul 11:11 Bacula200-dir JobId 4: Using Device "FileStorage"
08-Jul 11:11 Bacula200-sd JobId 4: Ready to read from volume "20140708" on device "FileStorage" (/home/bak).
08-Jul 11:11 Bacula200-sd JobId 4: Forward spacing Volume "20140708" to file:block 0:198.
08-Jul 11:11 Bacula200-sd JobId 4: End of Volume at file 0 on device "FileStorage" (/home/bak), Volume "20140708"
08-Jul 11:11 Bacula200-sd JobId 4: End of all volumes.
08-Jul 11:11 Bacula200-dir JobId 4: Bacula Bacula200-dir 5.2.6 (21Feb12):
  Build OS:               x86_64-unknown-linux-gnu redhat 
  JobId:                  4
  Job:                    RestoreFiles.2014-07-08_11.10.59_11
  Restore Client:         Bacula200-fd
  Start time:             08-Jul-2014 11:11:01
  End time:               08-Jul-2014 11:11:01
  Files Expected:         0
  Files Restored:         16
  Bytes Restored:         10,988,458
  Rate:                   0.0 KB/s
  FD Errors:              0
  FD termination status:  OK
  SD termination status:  OK
  Termination:            Restore OK