使用程序無法實現(xiàn)這種功能,因為無法保證事務的一致性,比如:A數(shù)據(jù)庫中的a表復制到B數(shù)據(jù)庫中的a表的過程中,A數(shù)據(jù)庫中的a表的一條記錄被刪除,這樣就無法實現(xiàn)數(shù)據(jù)的一致性!正確的做法是使用MySQL復制的功能!很簡單,只需要幾步配置即可!
創(chuàng)新互聯(lián)建站主要從事做網(wǎng)站、成都網(wǎng)站建設、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務麗江,十載網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575
1、你可以做一下nfs文件掛載,讓不同的服務器使用同一個磁盤
2、可以在php網(wǎng)站conf配置數(shù)據(jù)庫文件里指向同一個數(shù)據(jù)庫的ip
(但要看你的實際服務器部暑)
可以用js來控制左側(cè)頁面的重新加載。
當主框架的添加和刪除成功后,用js 來控制左側(cè)iframe的src重新載入。這樣就等同于讓左側(cè)框架刷新了一下。
基于數(shù)據(jù)庫 Log 日志分析可以實現(xiàn),網(wǎng)上搜一下 CDC 數(shù)據(jù)同步。。
不過你也可以嘗試下 cloud.tapdata.net , 一個在線的數(shù)據(jù)同步工具,支持一次性全量同步,也支持實時的增量同步。
首先要把數(shù)據(jù)庫A、B的連接權限都grant給一個用戶,然后用這個用戶連接數(shù)據(jù)庫。
那么可以用A.a, B.b這樣去訪問表。
剩下的就是SQL select ... insert into語句的事,相信你會。
你是希望用PHP代碼實現(xiàn)同時寫兩個數(shù)據(jù)庫還是希望只是兩個數(shù)據(jù)庫的數(shù)據(jù)一致?如果僅是希望數(shù)據(jù)庫數(shù)據(jù)數(shù)據(jù)一至,oracle自帶的機制就能實現(xiàn)。如果是想自己編程實現(xiàn)同時兩個數(shù)據(jù)庫的操作,也方便,PHP在鏈接不同數(shù)據(jù)庫實例時,會得到不同的鏈接句柄,在后面具體操作時,同時對這兩個鏈接句柄操作就行了,但這樣存在數(shù)據(jù)不完全一致的風險,必須校驗,這樣又拖慢了速度。
演示代碼如下:
echo "br /b演示多數(shù)據(jù)庫克隆操作(多數(shù)據(jù)庫同時寫操作)/bbr /";
$this-loadModel('student.php',1);
//如果兩個不同數(shù)據(jù)庫服務器的表對象結構完全一致,則不必重復載入表對象定義文件,只需要在實例化時指定服務器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='測試克隆人';
//如果進行了主對象的克隆操作,則在完成主對象數(shù)據(jù)持久化后,所有的子對象將會同步插入數(shù)據(jù)。
$student1-insert();