你是希望用PHP代碼實(shí)現(xiàn)同時(shí)寫兩個(gè)數(shù)據(jù)庫還是希望只是兩個(gè)數(shù)據(jù)庫的數(shù)據(jù)一致?如果僅是希望數(shù)據(jù)庫數(shù)據(jù)數(shù)據(jù)一至,oracle自帶的機(jī)制就能實(shí)現(xiàn)。如果是想自己編程實(shí)現(xiàn)同時(shí)兩個(gè)數(shù)據(jù)庫的操作,也方便,PHP在鏈接不同數(shù)據(jù)庫實(shí)例時(shí),會得到不同的鏈接句柄,在后面具體操作時(shí),同時(shí)對這兩個(gè)鏈接句柄操作就行了,但這樣存在數(shù)據(jù)不完全一致的風(fēng)險(xiǎn),必須校驗(yàn),這樣又拖慢了速度。
成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元承德縣做網(wǎng)站,已為上家服務(wù),為承德縣各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
演示代碼如下:
echo "br /b演示多數(shù)據(jù)庫克隆操作(多數(shù)據(jù)庫同時(shí)寫操作)/bbr /";
$this-loadModel('student.php',1);
//如果兩個(gè)不同數(shù)據(jù)庫服務(wù)器的表對象結(jié)構(gòu)完全一致,則不必重復(fù)載入表對象定義文件,只需要在實(shí)例化時(shí)指定服務(wù)器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='測試克隆人';
//如果進(jìn)行了主對象的克隆操作,則在完成主對象數(shù)據(jù)持久化后,所有的子對象將會同步插入數(shù)據(jù)。
$student1-insert();
首先要把數(shù)據(jù)庫A、B的連接權(quán)限都grant給一個(gè)用戶,然后用這個(gè)用戶連接數(shù)據(jù)庫。
那么可以用A.a, B.b這樣去訪問表。
剩下的就是SQL select ... insert into語句的事,相信你會。
基于數(shù)據(jù)庫 Log 日志分析可以實(shí)現(xiàn),網(wǎng)上搜一下 CDC 數(shù)據(jù)同步。。
不過你也可以嘗試下 cloud.tapdata.net , 一個(gè)在線的數(shù)據(jù)同步工具,支持一次性全量同步,也支持實(shí)時(shí)的增量同步。