我在 Ubuntu Server 16.04 上安装了 Bacula Backup,备份工作正常。但我在自动创建卷方面遇到了问题:
我将池配置为“卷使用持续时间 = 23 小时”,以便每小时备份一次。问题是 Bacula 每小时创建一个新卷,而不是使用一天。
这是我的池定义:
Pool {
Name = HourlyPool
Pool Type = Backup
Volume Retention = 14 days
Volume Use Duration = 23h
Recycle = yes
AutoPrune = yes
LabelFormat = "HourVol-"
}
工作定义:
Job {
Name = HourlyBackup
Type = Backup
Level = Incremental
Client = LinuxWebServer-fd
FileSet = Hourly
Schedule = HourByHour
Storage = HourlyFile
Pool = HourlyPool
Messages = Standard
}
每小时备份一次,在日志中我看到以下几行:
27-Mar 17:00 LinuxWebServer-dir JobId 706: Start Backup JobId 706, Job=HourlyBackup.2017-03-27_17.00.00_24
27-Mar 17:00 LinuxWebServer-dir JobId 706: Created new Volume="HourVol-0006", Pool="HourlyPool", MediaType="HourFile" in catalog.
27-Mar 17:00 LinuxWebServer-dir JobId 706: Using Device "VarBaculaHourly" to write.
27-Mar 17:00 LinuxWebServer-sd JobId 706: Labeled new Volume "HourVol-0006" on file device "VarBaculaHourly" (/var/baculahourly).
27-Mar 17:00 LinuxWebServer-sd JobId 706: Wrote label to prelabeled Volume "HourVol-0006" on file device "VarBaculaHourly" (/var/baculahourly)
27-Mar 17:00 LinuxWebServer-dir JobId 706: Max configured use duration=82,800 sec. exceeded. Marking Volume "HourVol-0006" as Used.
如果我查看导演状态,我会看到:
Job name Level Type Run at Volume
HourlyBackup Incremental Backup 27-Mar-17 18:00 *unknown*
它用于显示要使用的卷的名称,而不是*未知*。
有人知道这里发生了什么事吗?
谢谢
答案1
我发现了问题所在,并找到了一个解决方案,虽然不是理想的解决方案,但可以防止问题的发生:
查看 Bacula 的数据库时,我意识到由于某种原因,它没有更新表中的“FirstWritten”和“InitialWrite”字段,而仅保留了 2008 年某个时间的默认值,导致每个卷从创建之日起就过期。
作为一个解决方案,我通过将默认值更改为“CURRENT_TIMESTAMP”来更改表的结构。这个解决方案并不“优雅”,但它解决了这个问题。