方法一:手工维护,一个数据库有改动,立即备份,导入到另一个数据库,保证二者数据一致。这个比较麻烦。
成都创新互联一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!为您提供成都网站设计、网站制作、外贸营销网站建设、成都网页设计、重庆小程序开发、成都网站开发、成都网站制作、成都软件开发、App定制开发是成都本地专业的网站建设和网站设计公司,等你一起来见证!
方法二: 修改两个系统的数据库更新部分代码,不论是哪个系统的数据库发生改变,同时写入两个数据库。(建议)
方法三:在数据库里面需要同步的数据表上面添加相应的触发器及存储过程,写入数据到另外数据库。(建议)
实例化两条sql链接.
例如
$wdb = mysql_connect('localhost','root','123456','a1');//负责写入的数据库
$rdb = mysql_connect('192.168.xx.xx','root','123456','a2');//负责读的数据库
这样就可以链接两个数据库了。
你是希望用PHP代码实现同时写两个数据库还是希望只是两个数据库的数据一致?如果仅是希望数据库数据数据一至,oracle自带的机制就能实现。如果是想自己编程实现同时两个数据库的操作,也方便,PHP在链接不同数据库实例时,会得到不同的链接句柄,在后面具体操作时,同时对这两个链接句柄操作就行了,但这样存在数据不完全一致的风险,必须校验,这样又拖慢了速度。
演示代码如下:
echo "br /b演示多数据库克隆操作(多数据库同时写操作)/bbr /";
$this-loadModel('student.php',1);
//如果两个不同数据库服务器的表对象结构完全一致,则不必重复载入表对象定义文件,只需要在实例化时指定服务器id就行了。
//$this-loadModel('student.php',2);
$this-loadModel('student2.php',2);
$student1=new Tstudent(1);
$student2=new Tstudent2(2);
$student3=new Tstudent(2);
$student2-cloneFrom($student1);
$student3-cloneFrom($student1);
$student1-uuid='999';
$student1-id='999';
$student1-name='测试克隆人';
//如果进行了主对象的克隆操作,则在完成主对象数据持久化后,所有的子对象将会同步插入数据。
$student1-insert();
基于数据库 Log 日志分析可以实现,网上搜一下 CDC 数据同步。。
不过你也可以尝试下 cloud.tapdata.net , 一个在线的数据同步工具,支持一次性全量同步,也支持实时的增量同步。
使用程序无法实现这种功能,因为无法保证事务的一致性,比如:A数据库中的a表复制到B数据库中的a表的过程中,A数据库中的a表的一条记录被删除,这样就无法实现数据的一致性!正确的做法是使用MySQL复制的功能!很简单,只需要几步配置即可!
有个思路,起初AB表的数据肯定是一样的对吧,当A表数据改变的时候,肯定是执行了什么代码之类的吧,A表有个ID字段,无论是对A表进行怎么操作,当改变表A表的某一条记录(无论是增删改查都OK)的同时,就对B表也进行类似的操作,这样不就OK了?我是不是理解的太简单了,我觉得应该就是这样的
无论是什么数据库,都可以用php去连接这个数据库,然后进行操作,改变A数据库的时候写一个类似于数据库触发器的代码,对B表进行同样的操作,只不过是通过代码进行操作而不是数据库。