Mysql復(fù)制.doc_第1頁
Mysql復(fù)制.doc_第2頁
Mysql復(fù)制.doc_第3頁
Mysql復(fù)制.doc_第4頁
Mysql復(fù)制.doc_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

mysql 復(fù)制 等于 oracle 邏輯standbymySQL的復(fù)制至少需要兩個(gè)MySQL服務(wù),這些MySQL服務(wù)可以分布在不同的服務(wù)器上,也可以在一臺(tái)服務(wù)器上啟動(dòng)多個(gè)服務(wù)。復(fù)制配置的步驟比較簡單,下面進(jìn)行詳細(xì)介紹:(1)確保主從服務(wù)器上安裝了相同版本的數(shù)據(jù)庫。因?yàn)閺?fù)制的功能在持續(xù)的改進(jìn)中,所以在可能的情況下推薦安裝最新的穩(wěn)定版本。(2)在主服務(wù)器上,設(shè)置一個(gè)復(fù)制使用的賬戶,并授予REPLICATION SLAVE權(quán)限。這里創(chuàng)建一個(gè)復(fù)制用戶rep1,可以從IP為01的主機(jī)進(jìn)行連接:mysql GRANT REPLICATION SLAVE ON *.* TO repl01 IDENTIFIED BY 1234test;Query OK, 0 rows affected (0.00 sec)(3)修改主數(shù)據(jù)庫服務(wù)器的配置文件f,開啟BINLOG,并設(shè)置server-id的值。這兩個(gè)參數(shù)的修改需要重新啟動(dòng)數(shù)據(jù)庫服務(wù)才可以生效。Mf中修改:mysqldlog-bin = /home/mysql/log/mysql-bin.logserver-id = 1(4)在主服務(wù)器上,設(shè)置讀鎖定有效,這個(gè)操作是為了確保沒有數(shù)據(jù)庫操作,以便獲得一個(gè)一致性的快照:mysql flush tables with read lock;Query OK, 0 rows affected (0.00 sec)(5)然后得到主服務(wù)器上當(dāng)前的二進(jìn)制日志名和偏移量值。這個(gè)操作的目的是為了在從數(shù)據(jù)庫啟動(dòng)以后,從這個(gè)點(diǎn)開始進(jìn)行數(shù)據(jù)的恢復(fù)。mysql show master status;+-+-+-+-+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+-+-+-+-+| mysql-bin.000039 | 102 | | |+-+-+-+-+1row in set (0.00 sec)(6)現(xiàn)在主數(shù)據(jù)庫服務(wù)器已經(jīng)停止了更新操作,需要生成主數(shù)據(jù)庫的備份,備份的方式有很多種,可以直接在操作系統(tǒng)下cp全部的數(shù)據(jù)文件到從數(shù)據(jù)庫服務(wù)器上,也可以通過mysqldump導(dǎo)出數(shù)據(jù)或者使用ibbackup工具進(jìn)行數(shù)據(jù)庫的備份,這些備份操作的步驟已經(jīng)在第27章中有詳細(xì)介紹,這里就不再一一說明。如果主數(shù)據(jù)庫的服務(wù)可以停止,那么直接cp數(shù)據(jù)文件應(yīng)該是最快的生成快照的方法:mysqldb3 db$ tar -cvf data.tar datadata/data/test1/data/test1/db.opt(7)主數(shù)據(jù)庫的備份完畢后,主數(shù)據(jù)庫可以恢復(fù)寫操作,剩下的操作只需要在從服務(wù)器上執(zhí)行:mysql unlock tables;Query OK, 0 rows affected (0.00 sec)(8)將主數(shù)據(jù)庫的一致性備份恢復(fù)到從數(shù)據(jù)庫上。如果是使用.tar打包的文件包,只需要解開到相應(yīng)的目錄即可。(9)修改從數(shù)據(jù)庫的配置文件f,增加server-id參數(shù)。注意server-id的值必須是唯一的,不能和主數(shù)據(jù)庫的配置相同,如果有多個(gè)從數(shù)據(jù)庫服務(wù)器,每個(gè)從數(shù)據(jù)庫服務(wù)器必須有自己唯一的server-id值。f中修改:mysqldserver-id = 2(10)在從服務(wù)器上,使用-skip-slave-start選項(xiàng)啟動(dòng)從數(shù)據(jù)庫,這樣不會(huì)立即啟動(dòng)從數(shù)據(jù)庫服務(wù)上的復(fù)制進(jìn)程,方便我們對(duì)從數(shù)據(jù)庫的服務(wù)進(jìn)行進(jìn)一步的配置:mysqlmaster1 mysql_home$ ./bin/mysqld_safe -skip-slave-start &1 8768mysqlmaster1 mysql_home$ Starting mysqld daemon with databases from /home/mysql/sysdb/data(11)對(duì)從數(shù)據(jù)庫服務(wù)器做相應(yīng)設(shè)置,指定復(fù)制使用的用戶,主數(shù)據(jù)庫服務(wù)器的IP、端口以及開始執(zhí)行復(fù)制的日志文件和位置等,具體語法如下:mysql CHANGE MASTER TO- MASTER_HOST=master_host_name,- MASTER_PORT=port,- MASTER_USER=replication_user_name,- MASTER_PASSWORD=replication_password,- MASTER_LOG_FILE=recorded_log_file_name,- MASTER_LOG_POS=recorded_log_position;例如:CHANGE MASTER TOMASTER_HOST, MASTER_PORT=3306,MASTER_USER=rep,MASTER_PASSWORD=1234test,MASTER_LOG_FILE=bj16-bin.001,MASTER_LOG_POS=58943;Query OK, 0 rows affected (0.10 sec)(12)在從服務(wù)器上,啟動(dòng)slave線程:mysql start slave;Query OK, 0 rows affected (0.00 sec)(13)這時(shí)slave上執(zhí)行show processlist命令將顯示類似如下進(jìn)程:mysql show processlist G* 1. row * Id: 1 User: root Host: localhost db: NULLCommand: Query Time: 0 State: NULL Info: show processlist * 2. row * Id: 2 User: system user Host: db: NULLCommand: Connect Time: 68 State: Waiting for master to send event Info: NULL* 3. row * Id: 3 User: system user Host: db: NULLCommand: Connect Time: 168 State: Has read all relay log; waiting for the slave I/O thread to update it Info: NULL3 rows in set (0.00 sec)這表明slave已經(jīng)連接上master,并開始接受并執(zhí)行日志。(14)也可以測試復(fù)制服務(wù)的正確性,在主數(shù)據(jù)庫上執(zhí)行一個(gè)更新操作,觀察是否在從數(shù)據(jù)庫上同步。在主數(shù)據(jù)庫上test數(shù)據(jù)庫創(chuàng)建一個(gè)測試表,插入數(shù)據(jù):mysql use testDatabase changedmysql show tables;Empty set (0.00 sec)mysql create table repl_test (id int);Query OK, 0 rows affected (0.03 sec)mysql insert into repl_test values(1),(2),(3),(4),(5);Query OK, 5 rows affected (0.00 sec)Records: 5 Duplicates: 0 Warnings: 0(15)在從數(shù)據(jù)庫上檢查新表是否被創(chuàng)建,數(shù)據(jù)是否同步:mysql use testDatabase changedmysql show tables;+-+| Tables_in_test |+-+| repl_test |+-+1 row in set (0.00 sec)mysql select * from repl_test;+-+| id |+-+| 1 | 2 | 3 | 4 | 5 |+-+5 rows in set (0.00 sec)可以看到數(shù)據(jù)可以正確同步到從數(shù)據(jù)庫上,復(fù)制服務(wù)配置成功完成。試驗(yàn)截圖:1. 確保mysql版本一樣2. 在主服務(wù)器上,設(shè)置一個(gè)復(fù)制使用的賬戶,并授予REPLICATION SLAVE權(quán)限3.server-id主從要不一樣修改主數(shù)據(jù)庫服務(wù)器的配置文件f,開啟BINLOG,并設(shè)置server-id的值。這兩個(gè)參數(shù)的修改需要重新啟動(dòng)數(shù)據(jù)庫服務(wù)才可以生效。Mf中修改:mysqldlog-bin = /home/mysql/log/mysql-bin.logserver-id = 14. 在主服務(wù)器上,設(shè)置讀鎖定有效,這個(gè)操作是為了確保沒有數(shù)據(jù)庫操作,以便獲得一個(gè)一致性的快照:mysql flush tables with read lock;Query OK, 0 rows affected (0.00 sec)5. 然后得到主服務(wù)器上當(dāng)前的二進(jìn)制日志名和偏移量值。這個(gè)操作的目的是為了在從數(shù)據(jù)庫啟動(dòng)以后,從這個(gè)點(diǎn)開始進(jìn)行數(shù)據(jù)的恢復(fù)。mysql show master status;6. 現(xiàn)在主數(shù)據(jù)庫服務(wù)器已經(jīng)停止了更新操作,需要生成主數(shù)據(jù)庫的備份,備份的方式有很多種,可以直接在操作系統(tǒng)下cp全部的數(shù)據(jù)文件到從數(shù)據(jù)庫服務(wù)器上,也可以通過mysqldump導(dǎo)出數(shù)據(jù)或者使用ibbackup工具進(jìn)行數(shù)據(jù)庫的備份,這些備份操作的步驟已經(jīng)在第27章中有詳細(xì)介紹,這里就不再一一說明。如果主數(shù)據(jù)庫的服務(wù)可以停止,那么直接cp數(shù)據(jù)文件應(yīng)該是最快的生成快照的方法:mysqldb3 db$ tar -cvf data.tar datadata/data/test1/data/test1/db.opt7. 主數(shù)據(jù)庫的備份完畢后,主數(shù)據(jù)庫可以恢復(fù)寫操作,剩下的操作只需要在從服務(wù)器上執(zhí)行:mysql unlock tables;Query OK, 0 rows affected (0.00 sec)8.從數(shù)據(jù)庫,查看數(shù)據(jù)文件位置拷貝過去解壓9.修改從數(shù)據(jù)庫server_id 并且重啟數(shù)據(jù)庫查看server_id10. 對(duì)從數(shù)據(jù)庫服務(wù)器做相應(yīng)設(shè)置,指定復(fù)制使用的用戶,主數(shù)據(jù)庫服務(wù)器的IP、端口以及開始執(zhí)行復(fù)制的日志文件和位置等,具體語法如下:mysql CHANGE MASTER TO- MASTER_HOST=master_host_name,- MASTER_PORT=port,- MASTER_USER=replication_user_name,- MASTER_PASSWORD=replication_password,- MASTER_LOG_FILE=recorded_log_file_name,- MASTER_LOG_POS=recorded_log_position;例如:CHANGE MASTER TOMASTER_HOST, MASTER_PORT=3306,MASTER_USER=rep,MASTER_PASSWORD=1234test,M

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論