- 1. 安卓批量安装卸载备份恢复手机软件 安卓软件管家 v...
- 2. Sql数据库自动备份恢复助手(拥有友好的操作界面) ...
- 3. D8系统备份恢复专家(全面支持win xp,win 7和vista系...
- 4. 小哨兵一键恢复(新一代安全快速的系统备份恢复工具...
- 5. UC保险箱S60V3(手机备份恢复工具) V1.0.0.1 简体中...
- 6. UC保险箱塞班第五版(手机备份恢复工具) V1.0.0.1 简...
- 7. FBackup(简单好用的文件备份恢复工具) V4.6.253 多...
- 8. ERUNTgui(注册表备份恢复工具)免费下载 V1.2.6
- 9. 雨过天晴电脑保护系统(极速电脑备份恢复软件) V1...
- 10. 磁盘分区备份恢复软件(OneKey Ghost) V6.5 中文免...
利用bacula完成数据的备份恢复
一、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下。