我们有自动化脚本来将 200 GB 的数据文件备份到本地磁盘。该脚本将关闭数据库,在磁盘本地对整个目录进行 tar 和压缩,然后启动数据库
tar -czvf 数据.tgz /某些/文件夹
这个过程需要两个小时,停机时间太长了。我们希望减少停机时间。
考虑以下情况: - 主要目标是在数据库关闭时尽可能短的时间内获得文件的相同副本。稍后,我们可以压缩、传输或对文件执行任何其他操作。
我正在考虑使用 rsync 每周将文件与目标备份同步,rsync 将仅更新更改,这将花费更少的时间。
这样做有效果吗,或者有更好的方法吗?
答案1
文件系统快照是执行此类操作的正确方法。
答案2
答案3
关于 84014 的答案,请确保在制作快照之前刷新表并(读取)锁定它们。这可确保快照更加一致且不会破坏事务。此外,定期将事务日志备份到异地位置,以便在需要时进行时间点恢复。最好在复制的从属服务器上执行此操作。
我认为 Rsync 对于数据库来说不是可行的方法。
答案4
如果 DBMS 支持复制,请考虑在单独的存储上(可能在远程站点)设置复制实例。您可能能够快速将另一个实例转变为主实例。
但这不是备份,备份是离线的。确定如何在不关闭数据库的情况下进行备份。要么 DBMS 写出备份,要么你告诉它暂停写入或以其他方式到达安全点并自己获取文件的副本。
获取副本的快速方法是对数据卷进行快照。高级存储阵列可以对 LUN 进行快照,然后将其呈现给不同的备份主机。或者,在主机级别进行 LVM 级别快照。无论哪种方式,备份在复制到不同的异地介质之前都是不完整的。