Mysql即時雙備

來源:互聯網
上載者:User

標籤:

設定方法:

步一設

A 服務服 (192.168.1.43) 上使用者為 backup, 123456 , 同步的資料庫為test;

B 服務服 (192.168.1.23) 上使用者為 root, 123456, 同步的資料庫為test;

 

步二配置 mysql.ini:

A伺服器

 

#Replication master

server-id = 10

log-bin="E:\MySQL\logs\mysql_binary_log"//必須先建立這個檔案

binlog-do-db=test

 

# Replication slave

master-host="192.168.1.23"

master-user=root

master-password="123456"

master-port=3306

master-connect-retry=60

replicate-do-db=test

 

B伺服器

 

#Replication master

server-id = 2

log-bin="c:\mysql5\logs\mysql_binary_log"

binlog-do-db=test

 

# Replication slave

master-host="192.168.1.43"

master-user=backup

master-password=123456

master-port=3306

master-connect-retry=60

replicate-do-db=test

 

=============================================================

解釋:

 

3)binlog-do-db=test 表示需要備份的資料庫是test這個資料庫,

如果需要備份多個資料庫,那麼應該寫多行,如下所示:

binlog-do-db=backup1 

binlog-do-db=backup2 

binlog-do-db=backup3

 

 

解釋: 

1) server-id=2表示本機器的序號, A,B的server-id 不能相同; 

2)log-bin表示開啟binlog,開啟該選項才可以通過I/O寫到Slave的relay-log,也是可以進行replication的前提;

其中mysql_binary_log是記錄檔的名稱,mysql將建立不同副檔名,檔案名稱為mysql_binary_log的幾個記錄檔.

3) master-host="192.168.1.23" 表示A做slave時的master為192.168.1.23;

4) master-user=root 這裡表示master上開放的一個有許可權的使用者,使其可以從slave串連到master並進行複製;

5) master-password=123456 表示授權使用者的密碼; 

6) master-port=3306 master上MySQL服務Listen3306連接埠;

7) master-connect-retry=60 同步間隔時間; 

8) replicate-do-db=test 表示同步backup資料庫;

 

 

最後重新啟動兩台機器的mysql.

------------------------------------------------

查看狀態及調試

 

1,查看master的狀態

SHOW MASTER STATUS;

Position 不應為0

2,查看slave的狀態

show slave status;

Slave_IO_Running | Slave_SQL_Running 這兩個欄位應為 YES|YES.

show processlist;

會有兩條記錄與同步有關 state為 Has read all relay log; waiting for the slave I/O thread to update it

和s Waiting for master to send event .

3,錯誤記錄檔

MySQL安裝目錄\data\Hostname.err

 

4,CHANGE MASTER TO

如果A 的 Slave 未啟動 ,Slave_IO_Running 為No.

可能會是B的master 的資訊有變化,

查看B SHOW MASTER STATUS;

記錄下 File,Position 欄位. 假設為‘mysql_binary_log.000004‘,98 ;

在A 下執行:

Stop Slave;

CHANGE MASTER TO

MASTER_LOG_FILE = ‘mysql_binary_log.000004‘,

MASTER_LOG_POS = 98 ;

 

Start Slave;

 

5,SET GLOBAL SQL_SLAVE_SKIP_COUNTER = n;

如果A的Slave_SQL_Running 為No.

Err檔案中記錄:

Slave: Error ‘Duplicate entry ‘1‘ for key 1‘ on query....

可能是master 未向slave 同步成功,但slave中已經有了記錄。造成的衝突.

可以在A上執行

SET GLOBAL SQL_SLAVE_SKIP_COUNTER = n;

跳過幾步。再

restart salve;

就可以了。

Mysql即時雙備

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.