十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
使用程序无法实现这种功能,因为无法保证事务的一致性,比如:A数据库中的a表复制到B数据库中的a表的过程中,A数据库中的a表的一条记录被删除,这样就无法实现数据的一致性!正确的做法是使用MySQL复制的功能!很简单,只需要几步配置即可!
创新互联建站-专业网站定制、快速模板网站建设、高性价比金牛网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式金牛网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖金牛地区。费用合理售后完善,10年实体公司更值得信赖。
你是希望用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点虐 , 一个在线的数据同步工具,支持一次性全量同步,也支持实时的增量同步。
首先要把数据库A、B的连接权限都grant给一个用户,然后用这个用户连接数据库。
那么可以用A.a, B.b这样去访问表。
剩下的就是SQL select ... insert into语句的事,相信你会。