天天看點

linux mysql雙機熱備

linux mysql雙機熱備與win mysql雙機熱備略有不同,至少在win下面很快就OK.

本例使用的是mysql5.1.45編譯安裝

一、linux下熱備修改/etc/my.cnf

具體修改如下(截圖)

linux mysql雙機熱備

彩色部分内容為需要配置的地方

其中紫色本身配置檔案中已寫入,青色部分為後寫入。紅線為需要注意的地方,與另一台資料庫的機器(庫)不可以相同。

另一台機器配置與上相似,隻需要修改server-id及ip即可。

二、在2個MYSQL上都要建立用于同步的賬号

1、

Mysql>GRANT FILE , REPLICATION SLAVE ON *.* TO backup@'192.168.8.181' IDENTIFIED BY '123456'

mysql> GRANT ALL PRIVILEGES ON *.* TO backup@'192.168.8.181' IDENTIFIED BY '123456'

2.重新開機2個MYSQL服務

3.在2個MYSQL上都啟動同步服務

 Mysql>slave start;

4.在2台伺服器上檢視備份線程狀态

Mysql>show slave status;

*如果結果中Slave_IO_Running 和 Slave_SQL_Runing 的值都是Yes,Seconds_Behind_Master的值是0說明配置成功

三、問題與解決

1.  現象:Slave_SQL_Running為No,Seconds_Behind_Master為null

原因:a.程式可能在slave上進行了寫操作

               b.也可能是slave機器重起後,事務復原造成的.

  解決:

a.     假設在MYSQL_1上出現這種情況

b.    在MYSQL_2上檢視主伺服器狀态:

Mysql>show master status;

+----------------------+----------+--------------+------------------+

| File                    | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+----------------------+----------+--------------+------------------+

| mysql-bin.000001  | 106      |   backup_db              |                  |

+----------------------+----------+--------------+------------------+

c.     在MYSQL_1 上停止同步線程:

Mysql>slave stop;

d.    在MYSQL_1上手動執行同步

Mysql>change master to

>master_host=’192.168.8.181’,

>master_user=’backup’,

>master_password=’123456’,

>master_port=3307,

>master_log_file=’mysql-bin.000001’,

>master_log_pos=106;

e.     啟動同步服務

    mysql>slave start;

f.     通過show slave status 檢視Slave_SQL_Running為Yes, Seconds_Behind_Master為0即為正常。

2.    現象:Slave_IO_Running為No, Seconds_Behind_Master為null

        解決:

a.     假設在MYSQL_1上出現這種情況

b.    重新開機主資料庫(MYSQL_2)

c.     在MYSQL_2上檢視主伺服器狀态:

Mysql>show master status;

+----------------------+----------+--------------+------------------+

| File                    | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+----------------------+----------+--------------+------------------+

| mysql-bin.000001  | 106      |   backup_db              |                  |

+----------------------+----------+--------------+------------------+

d.    在MYSQL_1上停止同步服務

Mysql>slave stop;

e.     在MYSQL_1上執行下列指令

Mysql>change master to

>master_log_file=’mysql-bin.000001’,

>master_log_pos=106;

f.     在MYSQL_1上重新啟動同步服務

Mysql>slave start;