成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

【博文推薦】不停止MySQL服務增加從庫的兩種方式

數據庫 MySQL
一般在線增加從庫有兩種方式,一種是通過mysqldump備份主庫,恢復到從庫,mysqldump是邏輯備份,數據量大時,備份速度會很慢,鎖表的時間也會很長。另一種是通過xtrabackup工具備份主庫,恢復到從庫,xtrabackup是物理備份,備份速度快,不鎖表。為什么不鎖表?因為自身會監控主庫日志,如果有更新的數據,就會先寫到一個文件中,然后再回歸到備份文件中,從而保持數據一致性。
  本文出自51CTO博客博主李振良的技術博客,如有任何問題請進入博主頁面互動討論。

博文地址:http://lizhenliang.blog.51cto.com/7876557/1669829

現在生產環境MySQL數據庫是一主一從,由于業務量訪問不斷增大,故再增加一臺從庫。前提是不能影響線上業務使用,也就是說不能重啟MySQL服務,為了避免出現其他情況,選擇在網站訪問量低峰期時間段操作。

一般在線增加從庫有兩種方式,一種是通過mysqldump備份主庫,恢復到從庫,mysqldump是邏輯備份,數據量大時,備份速度會很慢,鎖表的時間也會很長。另一種是通過xtrabackup工具備份主庫,恢復到從庫,xtrabackup是物理備份,備份速度快,不鎖表。為什么不鎖表?因為自身會監控主庫日志,如果有更新的數據,就會先寫到一個文件中,然后再回歸到備份文件中,從而保持數據一致性。

服務器信息:

主庫:192.168.18.212(原有)

從庫1:192.168.18.213(原有)

從庫2:192.168.18.214(新增)

數據庫版本:MySQL5.5

存儲引擎:Innodb

測試庫名:weibo

一、mysqldump方式

MySQL主從是基于binlog日志,所以在安裝好數據庫后就要開啟binlog。這樣好處是,一方面可以用binlog恢復數據庫,另一方面可以為主從做準備。

原有主庫配置參數如下:

 

  1. # vi my.cnf 
  2. server-id = 1             #id要唯一 
  3. log-bin = mysql-bin         #開啟binlog日志 
  4. auto-increment-increment = 1   #在Ubuntu系統中MySQL5.5以后已經默認是1 
  5. auto-increment-offset = 1  
  6. slave-skip-errors = all      #跳過主從復制出現的錯誤 

 

1. 主庫創建同步賬號

 

  1. mysql> grant all on *.* to 'sync'@'192.168.18.%' identified by 'sync'

2. 從庫配置MySQL

 

  1. # vi my.cnf 
  2. server-id = 3             #這個設置3 
  3. log-bin = mysql-bin         #開啟binlog日志 
  4. auto-increment-increment = 1   #這兩個參數在Ubuntu系統中MySQL5.5以后都已經默認是1 
  5. auto-increment-offset = 1  
  6. slave-skip-errors = all      #跳過主從復制出現的錯誤 

 

3. 備份主庫

 

  1. # mysqldump -uroot -p123 --routines --single_transaction --master-data=2 --databases weibo > weibo.sql 

參數說明:

--routines:導出存儲過程和函數

--single_transaction:導出開始時設置事務隔離狀態,并使用一致性快照開始事務,然后unlock tables;而lock-tables是鎖住一張表不能寫操作,直到dump完畢。

--master-data:默認等于1,將dump起始(change master to)binlog點和pos值寫到結果中,等于2是將change master to寫到結果中并注釋。

4. 把備份庫拷貝到從庫

 

  1. # scp weibo.sql root@192.168.18.214:/home/root 

5. 在主庫創建test_tb表,模擬數據庫新增數據,weibo.sql是沒有的

 

  1. mysql> create table test_tb(id int,name varchar(30)); 

6. 從庫導入備份庫

 

  1. # mysql -uroot -p123 -e 'create database weibo;' 
  2. # mysql -uroot -p123 weibo < weibo.sql 

 

7. 在備份文件weibo.sql查看binlog和pos值

 

  1. # head -25 weibo.sql 
  2. -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107;   #大概22行 

 

8. 從庫設置從這個日志點同步,并啟動

 

  1. mysql> change master to master_host='192.168.18.212'
  2.     -> master_user='sync'
  3.     -> master_password='sync'
  4.     -> master_log_file='mysql-bin.000001'
  5.     -> master_log_pos=107; 
  6. mysql> start slave; 

 

  1. mysql> show slave status\G; 
  2. ERROR 2006 (HY000): MySQL server has gone away 
  3. No connection. Trying to reconnect... 
  4. Connection id:    90 
  5. Current database: *** NONE *** 
  6. *************************** 1. row *************************** 
  7.                Slave_IO_State: Waiting for master to send event 
  8.                   Master_Host: 192.168.18.212 
  9.                   Master_User: sync 
  10.                   Master_Port: 3306 
  11.                 Connect_Retry: 60 
  12.               Master_Log_File: mysql-bin.000001 
  13.           Read_Master_Log_Pos: 358 
  14.                Relay_Log_File: mysqld-relay-bin.000003 
  15.                 Relay_Log_Pos: 504 
  16.         Relay_Master_Log_File: mysql-bin.000001 
  17.              Slave_IO_Running: Yes 
  18.             Slave_SQL_Running: Yes 
  19. ...... 

可以看到IO和SQL線程均為YES,說明主從配置成功。

9. 從庫查看weibo庫里面的表

 

  1. mysql> show tables; 
  2. +---------------------------+ 
  3. | Tables_in_weibo           | 
  4. +---------------------------+ 
  5. | test_tb                   | 

 

發現剛才模擬創建的test_tb表已經同步過來!

#p#

二、xtrabackup方式(推薦)

在上面配置基礎上做實驗,先刪除掉從庫配置:

 

  1. mysql> stop slave;         #停止同步 
  2. mysql> reset slave;        #清除從連接信息 
  3. mysql> show slave status\G;   #再查看從狀態,可以看到IO和SQL線程都為NO 
  4. mysql> drop database weibo;   #刪除weibo庫 

 

此時,從庫現在和新裝的一樣,繼續前進!

1. 主庫使用xtrabackup備份

 

  1. # innobackupex --user=root --password=123 ./ 

生成一個以時間為命名的備份目錄:2015-07-01_16-49-43

 

  1. # ll 2015-07-01_16-49-43/ 
  2. total 18480 
  3. drwxr-xr-x 5 root root     4096 Jul  1 16:49 ./ 
  4. drwx------ 4 root root     4096 Jul  1 16:49 ../ 
  5. -rw-r--r-- 1 root root      188 Jul  1 16:49 backup-my.cnf 
  6. -rw-r----- 1 root root 18874368 Jul  1 16:49 ibdata1 
  7. drwxr-xr-x 2 root root     4096 Jul  1 16:49 mysql/ 
  8. drwxr-xr-x 2 root root     4096 Jul  1 16:49 performance_schema/ 
  9. drwxr-xr-x 2 root root    12288 Jul  1 16:49 weibo/ 
  10. -rw-r--r-- 1 root root       21 Jul  1 16:49 xtrabackup_binlog_info 
  11. -rw-r----- 1 root root       89 Jul  1 16:49 xtrabackup_checkpoints 
  12. -rw-r--r-- 1 root root      563 Jul  1 16:49 xtrabackup_info 
  13. -rw-r----- 1 root root     2560 Jul  1 16:49 xtrabackup_logfile 

 

2. 把備份目錄拷貝到從庫上

 

  1. # scp -r 2015-07-01_16-49-43 root@192.168.18.214:/home/root 

3. 從庫上把MySQL服務停掉,刪除datadir目錄,將備份目錄重命名為datadir目錄

 

  1. # sudo rm -rf /var/lib/mysql/ 
  2. # sudo mv 2015-07-01_16-49-43/ /var/lib/mysql 
  3. # sudo chown mysql.mysql -R /var/lib/mysql 
  4. # sudo /etc/init.d/mysql start 
  5. # ps -ef |grep mysql    #查看已經正常啟動 
  6. mysql     8832     1  0 16:55 ?        00:00:00 /usr/sbin/mysqld 

 

4. 在主庫創建test_tb2表,模擬數據庫新增數據

 

  1. mysql> create table test_tb2(id int,name varchar(30)); 

5. 從備份目錄中xtrabackup_info文件獲取到binlog和pos位置

 

  1. # cat /var/lib/mysql/xtrabackup_info  
  2. uuid = 201af9db-1fce-11e5-96b0-525400e4239d 
  3. name =  
  4. tool_name = innobackupex 
  5. tool_command = --user=root --password=... ./ 
  6. tool_version = 1.5.1-xtrabackup 
  7. ibbackup_version = xtrabackup version 2.2.11 based on MySQL server 5.6.24 Linux (x86_64) (revision id: ) 
  8. server_version = 5.5.43-0ubuntu0.12.04.1-log 
  9. start_time = 2015-07-01 16:49:43 
  10. end_time = 2015-07-01 16:49:46 
  11. lock_time = 1 
  12. binlog_pos = filename 'mysql-bin.000001', position 429    #這個位置 
  13. innodb_from_lsn = 0 
  14. innodb_to_lsn = 1598188 
  15. partial = N 
  16. incremental = N 
  17. format = file 
  18. compact = N 
  19. compressed = N 

 

6. 從庫設置從這個日志點同步,并啟動

 

  1. mysql> change master to master_host='192.168.18.212'
  2.     -> master_user='sync'
  3.     -> master_password='sync'
  4.     -> master_log_file='mysql-bin.000001'
  5.     -> master_log_pos=429; 
  6. mysql> start slave; 

 

  1. mysql> show slave status\G; 
  2. *************************** 1. row *************************** 
  3.                Slave_IO_State: Waiting for master to send event 
  4.                   Master_Host: 192.168.18.212 
  5.                   Master_User: sync 
  6.                   Master_Port: 3306 
  7.                 Connect_Retry: 60 
  8.               Master_Log_File: mysql-bin.000001 
  9.           Read_Master_Log_Pos: 539 
  10.                Relay_Log_File: mysqld-relay-bin.000002 
  11.                 Relay_Log_Pos: 363 
  12.         Relay_Master_Log_File: mysql-bin.000001 
  13.              Slave_IO_Running: Yes 
  14.             Slave_SQL_Running: Yes 
  15. ...... 

可以看到IO和SQL線程均為YES,說明主從配置成功。

9. 從庫查看weibo庫里面的表

 

  1. mysql> show tables; 
  2. +---------------------------+ 
  3. | Tables_in_weibo           | 
  4. +---------------------------+ 
  5. | test_tb                   | 
  6. | test_tb2                  | 

 

發現剛才模擬創建的test_tb2表已經同步過來。
 

責任編輯:Ophira 來源: 51CTO博客
相關推薦

2015-11-26 10:05:21

MySQL服務增加從庫

2025-01-14 00:00:00

場景線程數據

2010-11-29 09:56:00

sybase數據庫備份

2011-03-03 10:26:04

Pureftpd

2021-05-27 10:57:01

TCP定時器網絡協議

2010-04-06 10:52:06

Oracle數據庫

2009-06-25 13:43:00

Buffalo AJA

2010-10-21 16:24:18

sql server升

2009-11-06 12:59:56

WCF服務通信

2010-08-06 09:38:11

Flex讀取XML

2023-03-29 13:06:36

2010-04-28 16:23:18

Oracle數據庫

2010-09-07 11:09:59

2010-10-11 10:31:51

MySQL分區

2010-07-27 15:03:37

Flex ArrayC

2024-09-20 11:32:28

.NET內存管理

2010-05-10 18:19:00

負載平衡技術

2011-03-23 11:22:14

oracle dbli

2010-07-14 10:30:26

Perl多線程

2022-03-24 23:04:37

linux靜態庫動態庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91av精品| 天天干天天干 | 91久操视频| ww 255hh 在线观看| 在线国产一区二区 | 国产精品不卡 | 中文字幕av网 | 日日碰碰 | 亚洲成人免费视频在线 | 欲色av | 奇米影视在线 | 在线观看www视频 | 国产精品国色综合久久 | 精品三区 | 天天看天天操 | 日韩中文字幕在线视频 | 亚洲欧美日韩精品久久亚洲区 | 亚洲精品一区二区在线 | 久久久精品一区二区 | www.9191 | 超碰伊人久久 | 美女一级a毛片免费观看97 | 欧美.com | 看真人视频一级毛片 | 免费 视频 1级 | 国产精品久久久久久久免费观看 | www.黄色在线观看 | 羞羞的视频免费看 | 日日夜夜天天久久 | 欧美一区二区三区,视频 | 日韩在线欧美 | 国产精品一区在线观看 | 在线看亚洲 | 精品美女久久久 | 欧美一级视频在线观看 | 99久久99热这里只有精品 | 色网站在线免费观看 | 国产yw851.c免费观看网站 | 国产人成精品一区二区三 | 国产丝袜一区二区三区免费视频 | 免费成人av网站 |