php – mysql结构复制从主设备到从设备,从设备数据完好无损
这就是我想要实现的目标
>我想设置一个只保存表的主数据库 我怎样才能实现这一点,因为现在我需要在每个数据库上手动运行查询,以保持结构同步,这不是一个好的选择.我想要自动化这个过程,所以任何人都可以帮助我.任何建议或链接到任何教程,这将允许我实现这一点非常感谢 解决方法
它不可能真的完成,但你可以通过你的方式破解.首先设置普通的奴隶.一旦同步,它们将具有与单个主机相同的架构.现在的诀窍是对传播到从站的主站进行查询,但不要在主站上留下数据.首先按照通常的方式进行查询,确保每个表都有一个自动增量键:
INSERT INTO tbl (col1,col2,col3) VALUES (val1,val2,val3); SELECT LAST_INSERT_ID(); 进行查询时,记录时间,并将最后一个插入ID保存在应用程序级别的队列中.在从属设备上间歇性地进行查询(每次,比如10秒,具体取决于您的负载): SHOW SLAVE STATUS; 并从当前系统时间中减去Seconds_Behind_Master值(调用此时间t1).现在遍历旧查询队列,只要该元素上的时间大于t1,就删除第一个元素.每次删除队列中的元素时,都希望从主服务器中删除该记录,但是将其保留在从服务器上(您知道它已经存在,因为它们在您进行查询后已经更新).所以现在清除主数据库(在给定时间内将有大约10秒的数据),而不会消除奴隶: SET sql_log_bin=0; DELETE FROM tbl WHERE autoincrement_key=last_insert_id; SET sql_log_bin=1; 其中last_insert_id是存储的LAST_INSERT_ID(),用于消除查询. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |