本文目錄一覽:
- 1、如何實現兩台伺服器mysql資料庫同步
- 2、mysql跨伺服器實時同步兩張表
- 3、mysql 不同的伺服器如何同步某一個表。 – PHP進階討論
- 4、怎麼實現兩台伺服器的mysql數據同步
- 5、Mysql兩台資料庫伺服器異地資料庫同步
- 6、如何同步兩個mysql資料庫中所有的表
如何實現兩台伺服器mysql資料庫同步
1.主上修改my.cnf文件:
server-id=1
log-bin=mysql-bin
2.從上修改配置文件 my.cnf
server-id=2
relay-log=relay-bin
read-only =1
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-ignore-db = information_schema
#replicate-wild-do-table = tt.admin
replicate-wild-do-table = my_db.stu // 所要同步的資料庫的單個表
3. 創建 同步的用戶(主上)
grant replication client,replication slave on *.* to rep@’10.41.50.105′ identified by ‘root’;
4.同步到主庫(在從上操作)
change master to master_host=’10.41.50.80′,master_user=’rep’,master_password=’root’;
5.在從上驗證:
show slave status\G;
主從同步某些表
mysql跨伺服器實時同步兩張表
設置Mysql的主從即可。 你可以去百度 搜索 Mysql主從。 A伺服器做主,B伺服器做從。
mysql 不同的伺服器如何同步某一個表。 – PHP進階討論
用REPLICATION,MySQL3.23.15就開始支持的特性。指定複製表請使用replicate-do-table來指定啟動的時候指定就可以了。比如shellmysqld_safe
–replicate-do-table=test.rep_test
怎麼實現兩台伺服器的mysql數據同步
這種架構一般用在以下三類場景
1. 備份多台 Server 的數據到一台如果按照數據切分方向來講,那就是垂直切分。比如圖 2,業務 A、B、C、D 是之前拆分好的業務,現在需要把這些拆分好的業務匯總起來備份,那這種需求也很適用於多源複製架構。實現方法我大概描述下:業務 A、B、C、D 分別位於 4 台 Server,每台 Server 分別有一個資料庫來隔離前端的業務數據,那這樣,在從庫就能把四台業務的數據全部匯總起來,而不需要做額外的操作。那沒有多源複製之前,要實現這類需求,只能在匯總機器上搭建多個 MySQL 實例,那這樣勢必會涉及到跨庫關聯的問題,不但性能急劇下降,管理多個實例也沒有單台來的容易。
2. 用來聚合前端多個 Server 的分片數據。
同樣,按照數據切分方向來講,屬於水平切分。比如圖 3,按照年份拆分好的數據,要做一個匯總數據展現,那這種架構也非常合適。實現方法稍微複雜些:比如所有 Server 共享同一資料庫和表,一般為了開發極端透明,前端配置有分庫分表的中間件,比如愛可生的 DBLE。
3. 匯總併合並多個 Server 的數據
第三類和第一種場景類似。不一樣的是不僅僅是數據需要匯總到目標端,還得合併這些數據,這就比第一種來的相對複雜些。比如圖 4,那這樣的需求,是不是也適合多源複製呢?答案是 YES。那具體怎麼做呢?
Mysql兩台資料庫伺服器異地資料庫同步
以下配置在本機上已經成功:
實現功能:A為主伺服器,B為從伺服器,初始狀態時,A和B中的數據信息相同,當A中的數據發生變化時,B也跟著發生相應的變化,使得A和B的數據信息同步,達到備份的目的。
環境:
A、B的MySQL資料庫版本同為4.1.20
A:
操作系統:Windows 2003 server
IP地址:192.168.100.1
B:
操作系統:Windows 2003 server
的IP地址:192.168.100.2
配置過程:
1、在A的資料庫中建立一個備份帳戶,命令如下:
GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.*
TO backup@’192.168.100.2′
IDENTIFIED BY 『1234』;
建立一個帳戶backup,並且只能允許從192.168.100.2這個地址上來登陸,密碼是1234。
2、因為mysql版本新密碼演算法不同,所以進入mysql下,輸入:set password for ‘backup’@’192.168.100.2’=old_password(‘1234’);
3、關停A伺服器,將A中的數據拷貝到B伺服器中,使得A和B中的數據同步,並且確保在全部設置操作結束前,禁止在A和B伺服器中進行寫操作,使得兩資料庫中的數據一定要相同!
4、對A伺服器的配置進行修改,打開mysql/my.ini文件,在[mysqld]下面添加如下內容:
server-id=1
log-bin=c:\log-bin.log
server-id:為主伺服器A的ID值
log-bin:二進位變更日值
5、重啟A伺服器,從現在起,它將把客戶堆有關資料庫的修改記載到二進位變更日誌里去。
6、關停B伺服器,對B伺服器錦熙配置,以便讓它知道自己的鏡像ID、到哪裡去找主伺服器以及如何去連接伺服器。最簡單的情況是主、從伺服器分別運行在不同的主機上並都使用著默認的TCP/IP埠,只要在從伺服器啟動時去讀取的mysql/my.ini文件里添加以下幾行指令就行了。
[mysqld]
server-id=2
master-host=192.168.100.1
master-user=backup
master-password=1234
//以下內容為可選
replicate-do-db=backup
server-id:從伺服器B的ID值。注意不能和主伺服器的ID值相同。
master-host:主伺服器的IP地址。
master-user:從伺服器連接主伺服器的帳號。
master-password:從伺服器連接主伺服器的帳號密碼。
replicate-do-db:告訴主伺服器只對指定的資料庫進行同步鏡像。
7、重啟從伺服器B。至此所有設置全部完成。更新A中的數據,B中也會立刻進行同步更新。如果從伺服器沒有進行同步更新,你可以通過查看從伺服器中的mysql_error.log日誌文件進行排錯。
8、由於設置了slave的配置信息,mysql在資料庫data目錄下生成master.info,所以如有要修改相關slave的配置要先刪除該文件,否則修改的配置不能生效。
如何同步兩個mysql資料庫中所有的表
用資料庫快照就能實現啊.
Oracle快照原理及實現總結
Oracle資料庫的快照是一個表,它包含有對一個本地或遠程資料庫上一個或多個表或視圖的查詢的結果。對於中大型資料庫,業務資料庫里所有的數據同步到另外一個處理伺服器上最佳的選擇還是使用SnapShot方式,即快照的方式。
由於工作需要,今天需要將業務資料庫里所有的數據同步到另外一個處理伺服器上。在做方案的時候,想了很多方法,當然最快的辦法還是使用物理熱備的方式。
但是我個人認為如果對於中大型資料庫(我們的資料庫有300G左右)最佳的選擇還是使用SnapShot方式,即快照的方式。
Oracle資料庫的快照是一個表,它包含有對一個本地或遠程資料庫上一個或多個表或視圖的查詢的結果。也就是說快照根本的原理就是將本地或遠程資料庫上的一個查詢結果保存在一個表中。
以下是我建立的Snapshot,目的是從業務資料庫上將數據Copy到處理資料庫上,是不同的兩個伺服器之間對數據copy。
第一步:在處理伺服器上的Oracle終端,建立database link,業務資料庫伺服器SID為TEST
create database link TEST_DBLINK.US.ORACLE.COM
connect to AMICOS identified by AMICOS
using ‘test’;
第二步:在業務資料庫上對應的表建立快照日誌
Create snapshot log on A_Table;
第三步:建立Snapshot 快照名稱為:Test_SnapShot
Create snapshot Test_SnapShot
REFRESH COMPLETE START WITH SYSDATE NEXT SYSDATE+1/24
as select * from A_Table@TEST_DBLINK
說明:REFRESH是刷新方法
刷新方式有:COMPLETE和FAST兩種,而START WITH是說明開始執行的時間。
Next是下次執行的時間
而AS以後是構成快照的查詢方法。
相關的方法:
更改快照
ALTER SNAPSHOT Test_SnapShot
REFRESH COMPLETE START WITH SYSDATE NEXT SYSDATE+1/2;
手動刷新快照 在命令界面執行:
EXEC DBMS_SNAPSHOT.REFRESH(‘Test_SnapShot ‘,’C’);
第一個參數是要刷新的快照名
第二個參數是刷新的方式,F—-FAST, C—COMPLETE
查看快照最後刷新的日期
SELECT NAME,LAST_REFRESH
FROM ALL_SNAPSHOT_REFRESH_TIMES;
最後非常的方案:
1:為需要做Snapshot的表建立Snapshot日誌
create snapshot log on t1 with rowid; 這裡使用ROWID建立日記的參數
2:採用Fast的方式建立快照,使用rowid做為參考參數
create snapshot fb_test_b refresh fast with rowid start with sysdate next sysdate+1/1440 as select * from fb_test_b@my_dblink;
最好能按照rowid來建立快照。要不然就必須要為表建立Primary Key。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/230313.html