欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

windows下mysql雙向同步備份實(shí)現(xiàn)方法

 更新時間:2010年03月07日 22:41:10   作者:  
windows下mysql雙向同步備份實(shí)現(xiàn)方法,對于網(wǎng)站同步鏡像是很必要的。
1.1 環(huán)境搭建
準(zhǔn)備兩臺Windows NT 主機(jī),分別安裝好iKEY Server windows 版本,確定版本無誤,確保mysql服務(wù)正常啟動,確保兩臺主機(jī)處于同一個局域網(wǎng)中,確定好哪臺做為主、備機(jī)器,假設(shè)A為主機(jī),B為備機(jī),假設(shè)A主機(jī)IP地址為:192.168.1.101,B主機(jī)IP地址為192.168.1.102

1.2 創(chuàng)建同步帳戶
分別在A、B節(jié)點(diǎn)上登陸mysql 數(shù)據(jù)庫,創(chuàng)建同步帳戶并賦予同步權(quán)限,如下:

A節(jié)點(diǎn)操作:

運(yùn)行cmd, cd進(jìn)入iKEY版本安裝目錄下的iKEY\mysql\bin下,然后執(zhí)行mysql –uroot –p123456 登陸mysql數(shù)據(jù)庫執(zhí)行:

mysql>GRANT REPLICATION SLAVE ON *.* TO "yw[j1] "@"192.168.1.10[j2] 2" IDENTIFIED BY 'ym[j3] ';

mysql>flush privileges;

B節(jié)點(diǎn)操作步驟如上,權(quán)限賦予如下:

mysql>GRANT REPLICATION SLAVE ON *.* TO "yw[j4] "@"192.168.1.10[j5] 1" IDENTIFIED BY 'ym[j6] ';

mysql>flush privileges;

執(zhí)行以上操作后,運(yùn)行net stop mysql, 分別停止兩節(jié)點(diǎn)數(shù)據(jù)庫.

1.3 配置數(shù)據(jù)同步選項(xiàng)
1.3.1 A主機(jī)操作
安裝好的iKEY Server windows 版本后,會在安裝目錄下的iKEY\mysql\backup文件夾下生成一個my_master.cnf配置文件,在A主機(jī)上將my_master.cnf 文件復(fù)制到安裝目錄下的iKEY\mysql\bin文件夾下,并重命名為my.cnf,重命名之前請先備份原有my.cnf文件,以下介紹my.cnf做的修改之處:

log-bin=mysql-bin #同步事件的日志記錄文件

binlog-do-db=ikey_db #提供數(shù)據(jù)同步服務(wù)的數(shù)據(jù)庫日志

binlog-do-db=ikey_log #提供數(shù)據(jù)同步服務(wù)的數(shù)據(jù)庫日志

server-id=1
master-host=192.168.1.102 #主機(jī)B的IP地址
master-user=ym #同步帳戶
master-password=ym #同步帳戶密碼
master-port=3306 #端口,主機(jī)的MYSQL端口
master-connect-retry=60 #重試間隔60秒
replicate-do-db=ikey_db #同步的數(shù)據(jù)庫

replicate-do-db=ikey_log #同步的數(shù)據(jù)庫

1.3.2 B主機(jī)操作
安裝好的iKEY Server windows 版本后,會在安裝目錄下的iKEY\mysql\backup文件夾下生成一個my_slave.cnf配置文件,在B備機(jī)上將my_slave.cnf 文件復(fù)制到安裝目錄下的iKEY\mysql\bin文件夾下,并重命名為my.cnf,重命名之前請先備份原有my.cnf文件,修改之處同A主機(jī),不同配置在于以下:

server-id=2
master-host=192.168.1.101 #主機(jī)A的地址

以上需要注意的地方是,要定義master-host的主機(jī)IP地址,請根據(jù)實(shí)際情況進(jìn)行修改。

請確保以上同步用戶、主機(jī)IP、和同步帳戶密碼與所設(shè)配置相同.

1.3.3 驗(yàn)證數(shù)據(jù)同步
當(dāng)以上配置完畢后,分別重新啟動主機(jī)A和備機(jī)B數(shù)據(jù)庫,運(yùn)行net start mysql,

查看同步配置情況,登陸mysql 數(shù)據(jù)庫。

在A節(jié)點(diǎn)上查看Master 信息:

mysql> show master status;

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

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

| mysql-bin.000001 | 98 | ikey_db,ikey_log | |

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

1 row in set (0.00 sec)

在B節(jié)點(diǎn)上查看Slave信息:

mysql> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.1.101

Master_User: ym

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000001

Read_Master_Log_Pos: 98

Relay_Log_File: testBBB-relay-bin.000002

Relay_Log_Pos: 235

Relay_Master_Log_File: mysql-bin.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB: ikey_db,ikey_log

通過在B節(jié)點(diǎn)上查看同步狀態(tài),我們可以清楚的看到所設(shè)置的同步配置信息以及當(dāng)前同步狀態(tài)。

同樣可以在B節(jié)點(diǎn)上查看master 信息以及在A節(jié)點(diǎn)上查看slave 信息。

添加數(shù)據(jù)在A主機(jī)上,同時測試B備機(jī)上數(shù)據(jù)是否同步,以及反向測試。


1.4 同步維護(hù)
當(dāng)需要更改節(jié)點(diǎn)IP 時,Mysql 同步配置也需要進(jìn)行相應(yīng)修改,在更改節(jié)點(diǎn)IP之前,我們先做如下操作:

分別在A、B節(jié)點(diǎn)上執(zhí)行mysql> stop slave; 停止當(dāng)前同步狀態(tài)。

假如此時A 節(jié)點(diǎn)IP 改為192.168.1.103,需要做如下操作:

1.4.1 A節(jié)點(diǎn):
mysql> show master status;

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

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

| mysql-bin.000002 | 118 | ikey_db,ikey_log | |

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

1 row in set (0.00 sec)

1.4.2 B節(jié)點(diǎn):
更改B--àA方向同步的帳戶權(quán)限

mysql>show grants for ym@192.168.1.101(原A節(jié)點(diǎn)IP);

查看到原賦予從192.168.1.101 連接的權(quán)限,此時我們刪除此同步帳戶,并重新賦予192.168.1.103 連接的權(quán)限,如下:

mysql>drop user ym@192.168.1.101;

mysql>flush privileges;

mysql>grant replication slave on *.* to ym@192.168.1.103 identified by 'ym';

mysql>flush privileges;

然后修改A-àB方向同步配置項(xiàng):

mysql>CHANGE MASTER TO

-> MASTER_HOST='192.168.1.103', # Master服務(wù)器地址

-> MASTER_USER='ym',

->MASTER_PASSWORD='ym', -> ->MASTER_LOG_FILE='mysql-bin.000002', # 剛才我們記錄A節(jié)點(diǎn)數(shù)據(jù)庫要執(zhí)行復(fù)制的日志文件。

-> MASTER_LOG_POS=118; #剛才記錄的A節(jié)點(diǎn)數(shù)據(jù)庫要復(fù)制的日志文件位置。

Query OK, 0 rows affected (0.02 sec)

同時需要查看此時B節(jié)點(diǎn)的Master信息,同步LOG日志及POS位置

mysql> show master status;

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

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

| mysql-bin.000003 | 98 | ikey_db,ikey_log | |

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

1 row in set (0.00 sec)


同時請修改B節(jié)點(diǎn)mysql主配置文件中

master-host=192.168.1.103 #主機(jī)A的IP地址

1.4.3 接著A節(jié)點(diǎn):
修改B-àA方向同步配置項(xiàng):

mysql>CHANGE MASTER TO

->MASTER_LOG_FILE='mysql-bin.000003', # 剛才我們記錄B節(jié)點(diǎn)數(shù)據(jù)庫要執(zhí)行復(fù)制的日志文件。

-> MASTER_LOG_POS=98; #剛才記錄的B節(jié)點(diǎn)數(shù)據(jù)庫要復(fù)制的日志文件位置。

Query OK, 0 rows affected (0.02 sec)


然后針對A、B節(jié)點(diǎn)啟動同步狀態(tài),分別運(yùn)行start slave; 然后查看同步狀態(tài),確保在每臺機(jī)器上查看show slave status;得出

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

即處于正常同步狀態(tài)。


以上是針對單節(jié)點(diǎn)IP修改所做的操作,如果A、B節(jié)點(diǎn)IP 都需要修改,參考以上配置進(jìn)行操作,最好先針對單個節(jié)點(diǎn)IP 進(jìn)行修改,并確保單向同步?jīng)]有問題后,再進(jìn)行第二個節(jié)點(diǎn)IP修改以及配置。


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

[j1]執(zhí)行同步權(quán)限的用戶

[j2]主機(jī)B的IP地址

[j3]同步帳戶密碼

[j4]執(zhí)行同步權(quán)限的用戶

[j5]主機(jī)A的IP地址

[j6]同步帳戶密碼

第一步:
在A數(shù)據(jù)庫的my.ini中添加
復(fù)制代碼 代碼如下:

server-id=1
log-bin=C:\mysqlback #同步事件的日志記錄文件
binlog-do-db=test1 #提供數(shù)據(jù)同步服務(wù)的數(shù)據(jù)庫
binlog-do-db=test2 #提供數(shù)據(jù)同步服務(wù)的數(shù)據(jù)庫
binlog-do-db=test3 #提供數(shù)據(jù)同步服務(wù)的數(shù)據(jù)庫
master-host=192.168.0.102 #主機(jī)B的地址
master-user=use102 #主機(jī)B提供應(yīng)B的用戶,該用戶中需要包括數(shù)據(jù)庫test1 test12test3的權(quán)限
master-password=usepwd102 #訪問密碼
master-port=3306 #端口,主機(jī)的MYSQL端口
master-connect-retry=60 #重試間隔60秒
replicate-do-db=test1 #同步的數(shù)據(jù)庫
replicate-do-db=test2 #同步的數(shù)據(jù)庫
replicate-do-db=test3 #同步的數(shù)據(jù)庫

第二步:
在B數(shù)據(jù)庫的my.ini中添加
復(fù)制代碼 代碼如下:

server-id=2
log-bin=C:\mysqlback #同步事件的日志記錄文件
binlog-do-db=test1 #提供數(shù)據(jù)同步服務(wù)的數(shù)據(jù)庫
binlog-do-db=test2 #提供數(shù)據(jù)同步服務(wù)的數(shù)據(jù)庫
binlog-do-db=test3 #提供數(shù)據(jù)同步服務(wù)的數(shù)據(jù)庫
master-host=192.168.0.101 #主機(jī)B的地址
master-user=use101 #主機(jī)A提供給A的用戶,該用戶中需要包括數(shù)據(jù)庫test1 test12test3的權(quán)限
master-password=usepwd101 #訪問密碼
master-port=3306 #端口,主機(jī)的MYSQL端口
master-connect-retry=60 #重試間隔60秒
replicate-do-db=test1 #同步的數(shù)據(jù)庫
replicate-do-db=test2 #同步的數(shù)據(jù)庫
replicate-do-db=test3 #同步的數(shù)據(jù)庫

第三步:
將A的mysql數(shù)據(jù)的權(quán)限給B
mysql>GRANT FILE ON *.* TO 'use101'@'192.168.0.102'IDENTIFIEDBY 'pwd101';
將B的Mysql數(shù)據(jù)的權(quán)限給B操作同上。
第四步:
重啟AB數(shù)據(jù)庫,后:
B機(jī)器:
mysql>slave start;
查看同步配置情況
A機(jī)器:
mysql>show master status\G;
B機(jī)器:
mysql>show slave status\G;
假如A與B數(shù)據(jù)庫沒有同步,檢查mysql安裝目錄下的.err文件。
如果slave日志中報錯信息如下:
060807 11:40:17 [ERROR] While trying to obtain the list of slaves from the master 'xxx.xxx.xxx:3306' user 'rep' got the following error: 'Access denied. You need the REPLICATION SLAVE privilegefor this operation'在master上,執(zhí)行以下語句查看權(quán)限:
mysql>SHOW GRANT FOR 'use101'@'192.168.0.102'\G *************************** 1. row *************************** Grants for rep@192.168.0.102: GRANT Select REPLICATION SLAVE ON *.* TO 'rep'@'192.168.0.102'IDENTIFIED BY PASSWORD 'xxx'已經(jīng)授予了 REPLICAION SLAVE 權(quán)限了,怎么還會報這個錯呢?
通過查看手冊和源碼,才知道slave需要執(zhí)行一個語句來更新slave列表:
SHOW SLAVE HOSTS;而執(zhí)行這個語句則需要 REPLICAITON CLIENT 權(quán)限,因此才會報錯。因此,只要重新給 帳號加上 REPLICATION CLIENT 權(quán)限就可以了。
grant selectreplication slaveREPLICAION CLIENT on *.* to 'use101'@'192.168.0.102'identified by 'pwd101';

相關(guān)文章

最新評論