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

不停止 MySQL 服務增加從庫的兩種方式

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

現在生產環境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. 備份主庫

# 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值

# head -25 weibo.sql
-- 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; 
  7.  
  8. mysql> show slave status\G; 
  9. ERROR 2006 (HY000): MySQL server has gone away 
  10. No connection. Trying to reconnect... 
  11. Connection id:    90 
  12. Current database: *** NONE *** 
  13. *************************** 1. row *************************** 
  14.                Slave_IO_State: Waiting for master to send event 
  15.                   Master_Host: 192.168.18.212 
  16.                   Master_User: sync 
  17.                   Master_Port: 3306 
  18.                 Connect_Retry: 60 
  19.               Master_Log_File: mysql-bin.000001 
  20.           Read_Master_Log_Pos: 358 
  21.                Relay_Log_File: mysqld-relay-bin.000003 
  22.                 Relay_Log_Pos: 504 
  23.         Relay_Master_Log_File: mysql-bin.000001 
  24.              Slave_IO_Running: Yes 
  25.             Slave_SQL_Running: Yes 
  26. ...... 

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

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

mysql> show tables;
+---------------------------+
| Tables_in_weibo           |
+---------------------------+
| test_tb                   |

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

二、xtrabackup方式(推薦)

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

mysql> stop slave;         #停止同步
mysql> reset slave;        #清除從連接信息
mysql> show slave status\G;   #再查看從狀態,可以看到IO和SQL線程都為NO
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; 
  7.  
  8. mysql> show slave status\G; 
  9. *************************** 1. row *************************** 
  10.                Slave_IO_State: Waiting for master to send event 
  11.                   Master_Host: 192.168.18.212 
  12.                   Master_User: sync 
  13.                   Master_Port: 3306 
  14.                 Connect_Retry: 60 
  15.               Master_Log_File: mysql-bin.000001 
  16.           Read_Master_Log_Pos: 539 
  17.                Relay_Log_File: mysqld-relay-bin.000002 
  18.                 Relay_Log_Pos: 363 
  19.         Relay_Master_Log_File: mysql-bin.000001 
  20.              Slave_IO_Running: Yes 
  21.             Slave_SQL_Running: Yes 
  22. ...... 

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

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

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

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

責任編輯:王雪燕 來源: 李振良
相關推薦

2015-07-08 13:44:25

MySQL增加從庫不停止服務

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靜態庫動態庫

2010-07-15 14:38:55

Perl eval函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品视频网站 | 欧美一区二 | 午夜精品久久 | 亚洲午夜精品视频 | 妖精视频一区二区三区 | 91se在线| 颜色网站在线观看 | 亚洲三区在线观看 | 国产精品精品久久久 | 韩日一区二区三区 | 国产91在线播放精品91 | 中文字幕在线一区 | 日韩精品一区二区三区中文在线 | 欧美日韩视频 | 国产精品99久久久久久www | 久久久久亚洲av毛片大全 | 免费在线黄色av | 日韩精品免费一区二区在线观看 | 日韩在线免费视频 | 精品久久久久久久久久久久久久 | 麻豆精品国产免费 | 亚洲一一在线 | 四虎永久在线精品免费一区二 | 欧美不卡 | 亚洲一区 中文字幕 | 国产精品久久久久永久免费观看 | 看片地址 | 国产欧美综合在线 | 国产伦一区二区三区视频 | 久久久久久成人 | 久久精品亚洲一区二区三区浴池 | 中文字幕91av | 亚洲在线看 | 日本又色又爽又黄又高潮 | 欧美精品一区二区在线观看 | 午夜精品久久久久久久久久久久 | 91精品国产91久久久久久最新 | 一本大道久久a久久精二百 国产成人免费在线 | 国精品一区二区 | 久久亚洲免费 | 日韩欧美视频在线 |