Rom*_*juk 11 mysql database backup database-backups
我维护大MySQL数据库.我需要每晚备份它,但数据库一直处于活动状态.有来自用户的查询.现在我只是禁用网站,然后进行备份,但这是非常糟糕的,因为服务被禁用,用户不喜欢这样.
如果在备份期间更改数据,备份数据的好方法是什么?
这是什么最佳做法?
Kev*_*ell 14
我使用数据库服务器的只读复制从属实现了这个方案.
MySQL数据库复制非常容易设置和监控.您可以将其设置为对生产数据库进行所有更改,然后每晚离线进行备份.
复制从服务器可以以只读方式启动,以确保不能直接对其进行更改.
还有其他方法可以做到这一点,不需要复制奴隶,但根据我的经验,这是解决这个问题的一种非常可靠的方法.
这是MySQL Replication文档的链接.
如果你有一个非常大的(像我这样的 50G+)MySQL MyISAM 数据库,你可以使用锁和rsync
. 根据 MySQL 文档,您可以在读取锁定处于活动状态时安全地复制原始文件,而您不能使用 InnoDB 进行复制。因此,如果目标是零停机时间并且您有额外的高清空间,请创建一个脚本:
rsync -aP --delete /var/lib/mysql/* /tmp/mysql/sync
Run Code Online (Sandbox Code Playgroud)
然后执行以下操作:
flush tables
flush tables with read lock;
unlock tables;
第一次运行时,rsync 会在不停止 MySQL 的情况下复制很多内容。第二次运行会很短,只会延迟写查询,所以它是一个真正的零停机解决方案。
rsync
从/tmp/mysql/sync
远程服务器,压缩,保持增量版本,任何你喜欢的。 归档时间: |
|
查看次数: |
19999 次 |
最近记录: |