普遍的数据库备份

普遍的数据库备份

我正在寻找备份我的最佳方法普遍的数据库。我读过文档但仍有几个问题。

看来持续操作方法只允许我备份整个数据库?所以我会先执行butil -startbu @filelist,然后备份整个数据库(复制、rsync 等),然后运行。查看文档后,我没有看到从此方法中获取事务日志的方法;就像我对 MSSQL ( ) 或 Postgres ( )butil -endbu @filelist所做的那样。使用 rsync,每 15 分钟执行一次可能仍然是可行的。BACKUP LOG ACCT TO DISKarchive_command

归档日志记录方法意味着我必须偶尔停止数据库才能进行完整备份,这对我来说是可以接受的。但我可以每 15 分钟从服务器复制一次日志文件,即日志传送吗?

谢谢。

答案1

从阅读该章的其余部分来看,您的猜测似乎是正确的。没有与 MS-SQL 日志传送相当的东西。

使用连续操作时恢复数据文件 如果您使用连续操作作为备份策略,则没有可用于恢复自上次备份以来的更改的恢复日志。自上次备份以来的所有数据库更改都将丢失,但存储在事务日志中的任何事务可能除外。数据库引擎在启动时会自动前滚任何此类事务。

因此,虽然有事务日志,但系统似乎没有设置任何结构来传输它们或确保它们正在做你期望它们做的事情。换句话说,我不知道你如何确认任何给定的事务日志与使用持续操作进行的任何给定完整备份一致。

如果您希望每 15 分钟进行一次归档日志记录,则必须每 15 分钟关闭一次数据库。对于大多数生产数据库来说,这不是正常的操作模式 - 您的环境允许这样做吗?

答案2

我对存档日志的理解是,您必须在每次备份后手动删除它们,因为它们会不断被写入,因此您可能需要每 15 分钟备份一次。

初始步骤:停止数据库,创建备份,打开存档,启动数据库然后,您可以每 15 分钟备份一次存档,持续约 24 小时。下一次完整备份:停止数据库,创建备份,删除/重命名存档,启动数据库然后,您可以每 15 分钟备份一次存档,持续约 24 小时。下一次完整备份:停止数据库,创建备份,删除/重命名存档,启动数据库....依此类推

据我所知,原因是如果您不删除/重命名档案,它仍将包含自第一次备份以来的所有更改(这些更改已存在于较新的备份中)。档案的维护是你的责任……似乎没有任何自动化的东西可以解决这个问题。

摘自《高级操作指南》

“备份成功后,删除所有现有的存档日志。

警告:在恢复使用数据文件之前,请删除相应的日志文件。同步备份数据文件和相应的日志文件是成功恢复的关键因素。

相关内容