当前位置:首页文章首页 IT学院 IT技术

利用bacula完成数据的备份恢复

作者:  来源:  发布时间:2012-2-16 8:52:38  点击:

一、bacula概述

1.bacula的组件
  bacula,被誉为开源软件中最好的备份还原软件,它提供了企业级的客户机/服务器的备份解决方案,能够通过网络来管理文件的备份,恢复和核实工作.既有Windows版本的,也有Linux,Unix的.
一个完整的bacula备份系统,由以下五个主要部分或服务组成:
Directory:  管理所有备份,恢复,验证,和存档事务,定制备份和恢复文件的计划.
Storge:     指定进行存储和恢复文件属性和数据的物理备份媒介.
File:       安装在被备份机器上的程序,将被directory调用时候,它提供关于自己的操作系统、文件属性、数据等资料.
Console:    管理控制台,与directory进行通讯.
Catalog: 负责维护所有备份文件的索引和数据库.Catalog服务允许系统管理员或用户能够快速地找到并恢复任何需要的档案。catalog服务是Bacula和简单的tar,bru备份命令的主要区别,因为catalog维护所有Volume使用情况的记录,所有任务的运行情况,和所有档案的保存情况,允许有效的恢复和Volume管理。 Bacula目前支持的三个数据库(postgresql、mysql、sqlite),在安装Bacula时,必须选择其中之一。
Monitor:   监控directory、file、storage的守护进程
 


bacula各个组成部分的关联性
 
2. 部署结构
主机名          ip地址          应用角色               OS  
baculaserver    192.168.32.30   Director、SD、Console  rhel5.5
baculaclient    192.168.32.31   FD                     rhel5.5
 
二、安装
1.bacula服务器端安装和初始化
1.1. bacula软件安装
[root@baculaserver ~]# tar -zxf bacula-5.0.1.tar.gz
[root@baculaserver ~]# cd bacula-5.0.1
[root@baculaserver bacula-5.0.1]# ./configure --prefix=/usr/local/bacula --with-mysql 
#指定安装路径和所用数据库
[root@baculaserver bacula-5.0.1]# make && make install
 
1.2 MySQL数据库初始化
[root@baculaserver ~]# cd /usr/local/bacula/etc
[root@baculaserver etc]# ./grant_mysql_privileges
[root@baculaserver etc]# ./create_mysql_database
[root@baculaserver etc]# ./make_mysql_tables
#在执行上面三行mysql初始化时,默认由数据库管理员root执行,因此可能需要输入root密码或设置root密码为空。
 
2.bacula客户端安装
[root@baculaclient ~]# tar -zxf bacula-5.0.1.tar.gz
[root@baculaclient ~]# cd bacula-5.0.1
[root@baculaclient bacula-5.0.1]# ./configure --prefix=/usr/local/bacula --enable-client-only 
#指定安装路径,和只安装客户端组件
[root@baculaclient bacula-5.0.1]# make && make install
 
三、bacula的配置
1. bacula的console端配置(bconsole.conf)
[root@baculaserver etc]# vim bconsole.conf
# Bacula User Agent (or Console) Configuration File
#
Director {
  Name = 2012-02-15-dir     #主控台名称,自定义,要求与bacula-dir.conf中定义相同
  DIRport = 9101            #控制台服务器端口
  address = 192.168.32.30   #控制台服务器IP,不要用localhost
  Password = "xgjYPXCfgFT6ZS/9tQQTtfrFZ90CFFfIcj+qDKm8FpO0"  #控制台密码
}
 
2. bacula的Director端配置(bacula-dir.conf)
2.1 bacula-dir.conf的组成
bacula-dir.conf是Director端的配置文件,也是bacula的核心配置文件,该文件由以下10个逻辑端组成:
Director:定义全局设置
Catalog:定义后台数据库
Jobdefs:定义默认执行任务
Job:自定义一个备份或恢复任务
Fileset:定义备份哪些数据,不备份哪些数据
Schedule:定义备份时间策略
Pool:定义供Job使用的池属性
Client:定义要备份的客户端
Storage:定义数据的存储方式
Messages:定义发送日志报告和日志的记录
 
2.2 bacula-dir.conf配置
[root@baculaserver etc]# vim bacula-dir.conf
Director {                            #控制台的全局配置
  Name = 2012-02-15-dir               #定义控制台名称,要与sd、fa的Director相同
  DIRport = 9101                      # Director的服务端口
  QueryFile = "/usr/local/bacula/etc/query.sql"
  WorkingDirectory = "/usr/local/bacula/var/bacula/working"
  PidDirectory = "/var/run"
  Maximum Concurrent Jobs = 1        #一次能处理的最大并发数
  Password = "xgjYPXCfgFT6ZS/9tQQTtfrFZ90CFFfIcj+qDKm8FpO0"       #控制台密码,要与bconsole.conf中Director密码相同
  Messages = Daemon                  #日志输出方式,“Daemon”在下面Messages逻辑段中定义
}
 
#JobDefs {                           #JobDefs类似一个模板,并不是真正创建一个任务,只为Job提供一个默认的配置,当前Job明确定义的任何值,将会覆盖冲突的JobDefs值.
#  Name = "DefaultJob"          
#  Type = Backup                
#  Level = Incremental          
#  Client = 2012-02-15-fd       
#  FileSet = "Full Set"         
#  Schedule = "WeeklyCycle"     
#  Storage = File
#  Messages = Standard
#  Pool = File
#  Priority = 10
#  Write Bootstrap = "/usr/local/bacula/var/bacula/working/%c.bsr"
#}
 
 
Job {                           #备份任务,注意注释标号,可按照该标号与后面各逻辑端定义相对应
  Name = webjob                 #备份job的名字,这个可以随便起,在后面的备份操作的时候可以看到
  Type= backup                  #可用类型有backup,restore,verify,admin
  Client= 2012-02-15-fd         #1.要备份的客户端,“2012-02-15-fd”在后面的Client逻辑段定义
  FileSet = dbfs            #2.要备份的客户端数据,“dbfs”在后面的FileSet逻辑段定义
  schedule = dbscd              #3.备份任务的执行时间策略,“dbscd”在后面的Schedule逻辑段定义
  Storage = dbsd            #4.备份数据的存储介质和路径,“dbsd”在后面的Storage逻辑段定义
  Messages = Daemon         
  Pool = dbpool             #5.pool属性,“dbpool”在后面的Pool逻辑段定义
  Level = Incremental         #备份类型,可用的值是FULL(完全备份),incremental(增量备份),differential(差异备份),如第一次没做完全备份,则先进行完全备份后再执行Incremental
  Priority = 10                #优先级
  Write Bootstrap = "/usr/local/bacula/var/bacula/working/%c.bsr"   #指定备份的引导信息路径
}
 
#Job {                        #定义一个Catalog备份任务,确保控制端备份数据库的安全
#  Name = "BackupCatalog"        
#  JobDefs = "DefaultJob"
#  Level = Full
#  FileSet="Catalog"
#  Schedule = "WeeklyCycleAfterBackup"
#  # This creates an ASCII copy of the catalog
#  # Arguments to make_catalog_backup.pl are:
#  #  make_catalog_backup.pl <catalog-name>
#  RunBeforeJob = "/usr/local/bacula/etc/make_catalog_backup.pl MyCatalog"
#  # This deletes the copy of the catalog
#  RunAfterJob  = "/usr/local/bacula/etc/delete_catalog_backup"
#  Write Bootstrap = "/usr/local/bacula/var/bacula/working/%n.bsr"
#  Priority = 11                   # run after main backup
#}
 
Job {                         #定义一个还原任务
  Name = "Restoreweb"           
  Type = Restore
  Client=2012-02-15-fd                
  FileSet="dbfs"                 
  Storage = dbsd                     
  Pool = dbpool
  Messages = Standard
  Where = /home/bacula      #指定默认恢复数据到这个路径,注意:还原客户端数据时,默认会将数据存放在客户端/home/bacula下。

Tags:

备份恢复
首页 上一页 [1] [2] [3] [4] [5]  下一页 尾页

相关文章

文章评论

软件按字母排列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z