- 由 虚拟的现实创建于10月 07, 2023 需要 4 分钟阅读时间
Bacula模块与服务关系介绍
Director
Bacula Director服务是监督所有备份,恢复,验证和归档操作的程序。系统管理员使用Bacula Director来安排备份和恢复文件。
Console
Bacula Console服务是允许管理员或用户与Bacula Director通信的程序。目前,Bacula控制台有三个版本:基于文本的控制台界面,基于QT的界面和wxWidgets图形界面。第一个也是最简单的是在shell窗口中运行Console程序(即TTY接口)。大多数系统管理员会发现这完全足够。
第二个版本是一个GNOME GUI界面,它远非完整,但功能很强大,因为它具有shell控制台的大部分功能。
第三个版本是带有交互式文件恢复的wxWidgets GUI。它还具有shell控制台的大部分功能,允许使用制表完成命令,并为您提供有关所键入命
令的即时帮助。
File(FD)
Bacula File服务(也称为客户端程序)是安装在要备份的计算机上的软件程序。它特定于运行它的操作系统,并负责在Director请求时提供文件属性和数据。文件服务还负责在恢复操作期间还原文件属性和数据的文件系统相关部分。
Storage(SD)
Bacula Storage服务由执行文件属性和数据存储和恢复到物理备份媒体或卷的软件程序组成。换句话说,Storage守护程序负责读取和写入磁带(或其他存储介质,例如文件)。
Monitor services
Bacula Monitor服务是一个程序,允许管理员或用户观察Bacula Director,Bacula File Daemons和Bacula Storage Daemons的当前状态。目前,只有GTK +版本可用,它与GNOME,KDE或任何支持FreeDesktop.org系统托盘标准的窗口管理器一起使用。
要成功执行保存或还原,必须配置并运行以下四个守护程序:Director守护程序,File守护程序,Storage守护程序和Catalog服务(MySQL或PostgreSQL)。
Catalog
Catalog服务由负责维护备份的所有文件的文件索引和卷数据库的软件程序组成。Catalog服务允许系统管理员或用户快速定位和恢复任何所需文件。目录服务将Bacula与tar和bru之类的简单备份程序区分开来,因为目录保留了所有使用的卷,所有作业运行和所有文件保存的记录,允许有效的恢复和卷管理
Bacula服务端配置
新建客户端配置文件
vi /etc/bacula/conf/clients/ client-22.30.conf
Catalog = MyCatalog Password = "IYN0eZTw2BrRcA/MNGCwGHb9OrHDRykMMF8jSxtA7zUF" #安装客户端密码 #要一样 File Retention = 2 weeks Job Retention = 2 weeks AutoPrune = yes } #List of files with 192.168.22.30 FileSet { Name = "fileset-22.30" Include { Options { signature = MD5 compression = GZIP IgnoreCase = yes } File = "d:/test" } } Define backup of 192.168.22.30 Job{ Name = "bak-192.168.22.30" #安装客户端名字要一样 Type = Backup Client = bak-192.168.22.30 FileSet = "fileset-22.30" Schedule = "task-22.05" # 调用/etc/bacula/conf/ myj-sechedules.conf的配置周一到 #六增量备份,周日全量备份 Storage = PrimaryFileStorage,SecondaryFileStorage,TertiaryFileStorage,QuaternaryFileStorage Messages = Standard Pool = Default Full Backup Pool = full-pool Incremental Backup Pool = inc-pool Prefer Mounted Volumes = no Priority = 10 Write Bootstrap = "/var/spool/bacula/%c.bsr" }
在Bacula-dir配置文件增加刚才的配置文件进来列表:
vi /etc/bacula/bacula-dir.conf
重启下bacula-dir服务使用刚才新增的配置生效
/etc/bacula-dir restart
Bacula之windows客户端安装与配置
官网下载最新版本bacula-win64-9.4.3。
双击安装程序,选择Custom安装,windows神操作一直下一步。
下图的Name和Password是刚才配置文件提到的相应名字和密码。
保存配置到模板,点下一步完成。
安装好后需要到安装目录打开bacula-fd.conf配置下,否则启动服务时提示下图:
如下图增加红圈的内容,再启动BaculaFileBacukupService
手动备份测试
全量备份
在Bacula服务器输入:bconsole
之后输入:run,输入:16刚才新建的客户端job
可以看到刚才的jod ID已经备份完成。
增量备份
同样是输入bconsole后输入run,选择备份的客户端后提示,输入mod
输入:1回车后有5个备份级别
输入:2,后输入:yes回车确定增量备份,可以查看到备份成功
还原备份
输入:bconsole,后输入:restore
输入:5,选择客户端最近的备份
输入:19,这个客户端后可以看到最近的备份信息
输入:mark * 标记所有备份文件,输入:unmark * 取消标记所有备份文件
还原指定备份文件,可以ls(平时linux命令查看)显示已有的备份文件,例如还原test123.txt
输入:mark test123.txt后,回车再输入:done,最后输入:mod,输入:9,输入:/原路还原,最后输入:yes确定还原。
还原成功
备份 Sql Server 数据库
创建备份脚本
在操作系统中新建备份脚本,其中 C:\DatabaseBackups是数据库备份文件的存储路径,DB1和DB2是需要备份的数据库
del “C:\DatabaseBackups\DB1.bak” del “C:\DatabaseBackups\DB2.bak” del “C:\DatabaseBackups\DB3.bak” sqlcmd -S .\DATABASE1 -Q “BACKUP DATABASE DB1 TO DISK = ‘C:\DatabaseBackups\DB1.bak’ WITH INIT, NAME = N’Automatic back up of database’, STATS = 1” sqlcmd -S .\DATABASE1 -Q “BACKUP DATABASE DB2 TO DISK = ‘C:\DatabaseBackups\DB2.bak’ WITH INIT, NAME = N’Automatic back up of database’, STATS = 1” sqlcmd -S .\DATABASE1 -Q “BACKUP DATABASE DB3 TO DISK = ‘C:\DatabaseBackups\DB3.bak’ WITH INIT, NAME = N’Automatic back up of database’, STATS = 1” exit
创建 job
Job { Name = My-Databases Type = Backup Level = Incremental Client = database-fd FileSet = database-FS Schedule = WeeklyCycle Storage = BackupSD Pool = BackupPool Messages = Standard Client Run Before Job = C:\DatabaseBackups\script\sql.bat Write Bootstrap = “/BackupNAS/BaculaBootstraps/%c_%n.bsr” }
创建任务
FileSet { …. Include { …. # Backup database target directory File = “C:/bacula-mssql” } } …. Job { Name = “example.net” Type = Backup …. # Starting the upload of the binary SQL backup copy: RunScript { RunsWhen = Before FailJobOnError = No # Cleaning up and/or creating a place to save the “dump” Command = “if exist c:\\bacula-mssql rmdir /s /q c:\\bacula-mssql” Command = “mkdir c:\\bacula-mssql” # Starting up the upload for a database backup # (you’ll have to input your database’s name instead of “dbname” in the next line) Command = “SET dbname=example_DB & sqlcmd -Q \”SET LANGUAGE us_english; BACKUP DATABASE $(dbname) TO DISK=’C:\\bacula-mssql\\$(dbname).bak’\”” } # RunScript { RunsWhen = After RunsOnFailure = yes # Offloading resources after everything is complete Command = “if exist c:\\bacula-mssql rmdir /s /q c:\\bacula-mssql” } }
- 无标签