pet*_*ter 5 php mysql database
我在两台机器上有两个mysql数据库.假设首先是生产数据库,第二个是相同的克隆.我的php应用程序使用生产数据库默认.但我需要同时让两个dbs相同.这意味着我需要解决生产数据库不可用的情况(例如连接错误),所以我只需手动设置第二个,我的应用程序照常运行.我想让它"失败".
我该怎么做?我想每分钟都进行一次转储,但是当db与许多数据复杂时,这不是一个好的解决方案......
这些答案假设标准复制不适合您,无论出于何种原因:
以下选项是众所周知的手动数据同步的现有方法,当将其组合成脚本语言(例如bashcronjob 等)时,根据需要使用一些逻辑来根据需要指定特定表,保证它是安全的在生产箱上根据负载等运行它们。
选项 1:pt-table-sync
Percona MySQL 工具包中的工具pt-table-sync允许在现有复制方案中按需进行主-主、主-从同步。或者您可以使用它来同步两个没有任何关系的服务器。
按照示例,进行单向同步。
pt-table-sync --execute h=sourcehost1,u=msandbox,p=msandbox h=desthost d=yourdb t=yourtables
此外还存在以下功能:
据我了解,主从关系不一定存在 - 但如果确实存在,同步会更有效,因为可以使用更有效的校验和算法来比较数据。
选项 2:使用 XtraDb 进行热/流式备份
或者,您可以在主机模式下使用免费的 Percona XtraBackup 之类的工具streaming来保持备份文件同步,并根据需要恢复到您的开发盒。
XtraBackup 为所有版本的 Percona Server、MySQL、MariaDB 和 Drizzle 进行 MySQL 热备份。它执行流式、压缩和增量 MySQL 备份。
选项 C:LVM 快照 如果由于短暂的锁定/IO 问题而需要以任何频率获取 LVM 快照,那么 LVM 快照可能不是生产环境的最佳选择,但尽管如此,您还是可以这样做:使用LVM 快照进行 MySQL 备份
所有这些工具都以单向或双向方式移动数据,因此彻底了解如何使用它们对于避免数据丢失至关重要。