程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql雙機備份

mysql雙機備份

編輯:關於MYSQL數據庫

雙機備份的目的是實時在另外一台服務器備份數據庫,兩服務器分為主從,主服務器的寫操作將同步到從服務器,而從服務器的讀寫不影響主服務器,與其說是雙機備份不如說復制更確切,其實官方也將此說成是復制。

首先在兩服務器上安裝MySQL5.1.45,我們首先聲明,將兩台服務器分別命名為A、B,A作為主服務器,B作為從服務器。A和B的IP分別為192.168.0.217和192.168.0.216.

A服務器配置:

1、添加用於復制的帳戶,此帳戶只在主服務器上設置就行了,創建帳戶可以使用管理工具如PHPmyadmin,或直接在MySQL裡操作,注意添加帳戶的權限為grant和replication slave,並設置遠程主機為192.168.0.216。

在MySQL中操作命令為:

grant replication slave on *.* to ‘backup’@’192.168.0.216′  identifIEd by ’123′;

 這樣我們就創建了以“backup”命名的密碼為“123”遠程主機為192.168.0.216的帳戶。

2、修改配置文件my.ini,在配置文件的[MySQLd]下面加入

server-id=1
log-bin=”C:/MySQL-bin.log”

保存,使用net stop mysql和net start mysql重新啟動MySQL。

 3、鎖定表,讓MySQL暫時不能進行寫操作以便備份數據庫。命令:

 flush tables with read lock;

4、取出主機數據庫當前日志名和偏移值,命令:

show master status;

返回結果大致這樣的:

+——————+———-+————–+——————+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | | MySQL-bin.000001 |      106 |              |                  |
+——————+———-+————–+——————+

記錄下顯示的當前日志名(MySQL-bin.000001)和偏移值(106)

5、備份數據庫,可以采用MySQLdump的方式或直接復制數據庫data目錄的形式備份數據庫,以便移植到B服務器。

B服務器配置

1、停止mysql服務,net stop MySQL。

2、修改配置文件my.ini,在配置文件的[MySQLd]下面加入如下代碼。

server-id=2
master-host=192.168.0.217
master-user=backup
master-passWord=123

3、啟動mysql服務,net start MySQL。

4、修改mysql的參數,登陸到MySQL命令行,鍵入以下命令:

change master to master_log_file=’MySQL-bin.000001′,master_log_pos=106;

其中的master_log_file=是上面我們記錄的日志名MySQL-bin.000001,master_log_pos=是上面記錄的偏移量106。

5、啟動slave線程,命令:

start slave;

停止slave線程的命令是“stop slave;”。

這樣就配置完畢了,可以查看是否成功。

在主服務器上,MySQL命令:

show processlist;

在Command裡如果狀態是Binlog Dump,說明已經配置成功了。

到此,可以再作測試,在A服務器上添加一條數據,或刪除一個數據庫,再到B上看,如果A服務器上的操作在B服務器上也執行了,說明已經成功。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved