日期:2014-05-16 浏览次数:20470 次
在需给第三方提供某些表的数据同步更新时,例如做平台的系统,需要给上层的CRM系统提供某些表的数据时,大家一般如何采取如何方案呢?另外,如果上层的系统有多家,分别用于多种用途时,应该提供何种方式让别人的数据得到同步??
2.1.1 方案描述?
???该方案利用了各种数据库的数据同步功能,例如MySql和Sql Server等数据库都具有数据库或表同步的功能,这种情况需要在需要同步的机器上创建需要同步的表的结构。该功能也用在当我们的系统有主从数据库的情况下的数据同步问题。使用该方案的优点是:
1)不需要自己编写程序;
2)可以多个从机过来同步某些表。
使用该方案的缺点是:
1)比较依赖于数据库的功能,若两者的数据库不一样时,可能不能成功配置;
2)需要改变主数据库的服务器的配置;
3)要同步的表的结构必须完全一致。
该种方案的示意图参考如下:
?
?
?
2.1.2?方案举例 假设有两台MySQL服务器192.168.2.89和192.168.2.170,两台服务器都是Linux环境下的,两台服务器的配置一样,将192.168.2.89作为Master(主)数据库,将192.168.2.170作为slave(从)数据库,此时采用单步同步的方式即可,即是Slave数据库服务器主动去Master同步数据。 首先在Master数据库(192.168.2.89)中找到my.cnf配置文件的目录(笔者这里为/etc/my.cnf),修改该文件的内容,在其后添加如下两行(第一行表示同步方式,第二行表示要同步的数据库为smp):
?????? MySql数据库支持数据同步,可同步其中的某些表,不过需要在第三方的数据库和需要进行同步的数据库中进行配置。
? 为了使得配置生效,需要将Master数据库服务器重启一下,参考命令如下:sql-bin-update-same
binlog-do-db=smp
?
?
?
?Master数据库配置完毕以后,接着开始配置Slave数据库服务器(192.168.2.170),首先也是需要编辑/etc/my.cnf文件,找到如下行:mysql.server restart
server-id = 1
?