MySQL 5.5 主主複製搭建流程
--節點1 IP 192.168.78.141 PORT 3306
--節點2 IP 192.168.78.137 PORT 5505
--配置節點1到節點2的複製
--編輯節點1的配置檔案
[root@localhost install]# vim /etc/my.cnf
# Log
server-id = 100
log-bin = /log/binlog/mysql-bin
--在節點2安裝好MySQL軟體,安裝流程可以參考原始碼安裝文章
http://blog.itpub.net/26506993/viewspace-2072859/
--在節點1,使用Xtrabackup建立完整備份
關於Xtrabackup,可參考
http://blog.itpub.net/26506993/viewspace-2087734/
http://blog.itpub.net/26506993/viewspace-2088737/
[root@localhost backup]# /install/percona/percona-xtrabackup-2.4.2-Linux-x86_64/bin/innobackupex --defaults-file=/etc/my.cnf --stream=tar /tmp --user system --password 'Mysql#2015' | gzip ->
/backup/xtra/xtra_fullbackup_20160501.tar.gz
--複製備份到節點2
[root@localhost backup]# scp /backup/xtra/xtra_fullbackup_20160501.tar.gz root@192.168.78.137:/backup/20160501
解壓備份到資料檔案目錄
[root@localhost 5505]# tar xivfz xtra_fullbackup_20160501.tar.gz -C /mysql_data/5505
在節點2上面需要安裝Xtraback
--使用Xtrabackup準備資料、應用日誌,使資料檔案達到一致性的狀態
[root@localhost bin]# ./innobackupex --defaults-file=/mysql_data/cnf/my.cnf --apply-log /mysql_data/5505
.....
InnoDB: Doing recovery: scanned up to log sequence number 68405269 (0%)
InnoDB: Doing recovery: scanned up to log sequence number 68405269 (0%)
InnoDB: Database was not shutdown normally!
InnoDB: Starting crash recovery.
InnoDB: xtrabackup: Last MySQL binlog file position 414, file name /log/binlog/mysql-bin.000012
InnoDB: Removed temporary tablespace data file: "ibtmp1"
InnoDB: Creating shared tablespace for temporary tables
InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
InnoDB: File './ibtmp1' size is now 12 MB.
InnoDB: 96 redo rollback segment(s) found. 1 redo rollback segment(s) are active.
InnoDB: 32 non-redo rollback segment(s) are active.
InnoDB: 5.7.11 started; log sequence number 68405269
xtrabackup: starting shutdown with innodb_fast_shutdown = 1
InnoDB: FTS optimize thread exiting.
InnoDB: Starting shutdown...
InnoDB: Shutdown completed; log sequence number 68405621
160430 23:51:25 completed OK!
--在節點1資料庫上面建立複製專用賬戶
mysql> grant replication slave on *.* to 'repl'@'192.168.78.%' identified by 'Mysql#2015';
Query OK, 0 rows affected (0.04 sec)
--配置節點2的配置檔案
[root@localhost 5505]# vim /mysql_data/cnf/my.cnf
# Log
server-id = 200
log-bin = /mysql_log/binlog/mysql-bin
relay-log = /mysql_log/binlog/product-relay-bin
relay-log-index = /mysql_log/binlog/product-relay-index
binlog_cache_size = 32M
max_binlog_cache_size = 512M
max_binlog_size = 512M
binlog_format = MIXED
--啟動節點2的Mysql服務
[root@localhost bin]# /data/bin/mysqld_safe --defaults-file=/mysql_data/cnf/my.cnf &
--配置Slave節點複製環境
查詢Slave節點連線Master節點的二進位制檔案和位置
使用Xtrabackup備份時,在xtrabackup_binlog_info檔案中會儲存這部分資訊
[root@localhost 5505]# more xtrabackup_binlog_info
mysql-bin.000012 414
--在節點2執行CHANGE MASTER語句
mysql> change master to
-> master_host='192.168.78.141',
-> master_port=3306,
-> master_user='repl',
-> master_password='Mysql#2015',
-> master_log_file='mysql-bin.000012',
-> master_log_pos=414;
Query OK, 0 rows affected (0.13 sec)
--啟動應用執行緒
mysql> start slave;
--檢視同步狀態
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.78.141
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000013
Read_Master_Log_Pos: 341
Relay_Log_File: product-relay-bin.000003
Relay_Log_Pos: 487
Relay_Master_Log_File: mysql-bin.000013
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
--搭建節點2到節點1的複製
--在節店1的配置檔案中,增加中繼日誌的設定
[root@localhost log]# vim /etc/my.cnf
relay-log = /log/binlog/product-relay-bin
relay-log-index = /log/binlog/product-relay-index
--重啟節點1的資料庫
[root@localhost tmp]# /software/bin/mysqladmin -usystem -p'system' shutdown
160512 02:47:54 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
[1]+ Done /software/bin/mysqld_safe --defaults-file=/etc/my.cnf (wd: ~)
(wd now: /tmp)
[root@localhost tmp]# /software/bin/mysqld_safe --defaults-file=/etc/my.cnf &
[1] 40246
[root@localhost tmp]# 160512 02:48:13 mysqld_safe Logging to '/log/err.log'.
160512 02:48:13 mysqld_safe Starting mysqld daemon with databases from /data
mysql> show variables like 'relay_log%';
+-----------------------+---------------------------------+
| Variable_name | Value |
+-----------------------+---------------------------------+
| relay_log | /log/binlog/product-relay-bin |
| relay_log_index | /log/binlog/product-relay-index |
| relay_log_info_file | relay-log.info |
| relay_log_purge | ON |
| relay_log_recovery | OFF |
| relay_log_space_limit | 0 |
+-----------------------+---------------------------------+
6 rows in set (0.00 sec)
--在節點1上面增加全域性只讀鎖,如果應用只連線到一個節點,如節點1,這一步可以忽略
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
--檢視節點2當前的日誌名稱和位置,用於下面在節點1的change master to命令
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000006 | 14078491 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
--在節點1執行CHANGE MASTER語句
mysql> change master to
-> master_host='192.168.78.137',
-> master_port=5505,
-> master_user='repl',
-> master_password='Mysql#2015',
-> master_log_file='mysql-bin.000006',
-> master_log_pos=14078491;
Query OK, 0 rows affected (0.13 sec)
--啟動應用執行緒
mysql> start slave;
--節點1釋放全域性只讀鎖
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
--檢視同步狀態
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.78.137
Master_User: repl
Master_Port: 5505
Connect_Retry: 60
Master_Log_File: mysql-bin.000006
Read_Master_Log_Pos: 14078491
Relay_Log_File: product-relay-bin.000002
Relay_Log_Pos: 253
Relay_Master_Log_File: mysql-bin.000006
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
--節點2
節點2上序列從2開始,增長值為2,即為奇數,如2、4、6
--節點2 IP 192.168.78.137 PORT 5505
--配置節點1到節點2的複製
--編輯節點1的配置檔案
[root@localhost install]# vim /etc/my.cnf
# Log
server-id = 100
log-bin = /log/binlog/mysql-bin
--在節點2安裝好MySQL軟體,安裝流程可以參考原始碼安裝文章
http://blog.itpub.net/26506993/viewspace-2072859/
--在節點1,使用Xtrabackup建立完整備份
關於Xtrabackup,可參考
http://blog.itpub.net/26506993/viewspace-2087734/
http://blog.itpub.net/26506993/viewspace-2088737/
[root@localhost backup]# /install/percona/percona-xtrabackup-2.4.2-Linux-x86_64/bin/innobackupex --defaults-file=/etc/my.cnf --stream=tar /tmp --user system --password 'Mysql#2015' | gzip ->
/backup/xtra/xtra_fullbackup_20160501.tar.gz
--複製備份到節點2
[root@localhost backup]# scp /backup/xtra/xtra_fullbackup_20160501.tar.gz root@192.168.78.137:/backup/20160501
解壓備份到資料檔案目錄
[root@localhost 5505]# tar xivfz xtra_fullbackup_20160501.tar.gz -C /mysql_data/5505
在節點2上面需要安裝Xtraback
--使用Xtrabackup準備資料、應用日誌,使資料檔案達到一致性的狀態
[root@localhost bin]# ./innobackupex --defaults-file=/mysql_data/cnf/my.cnf --apply-log /mysql_data/5505
.....
InnoDB: Doing recovery: scanned up to log sequence number 68405269 (0%)
InnoDB: Doing recovery: scanned up to log sequence number 68405269 (0%)
InnoDB: Database was not shutdown normally!
InnoDB: Starting crash recovery.
InnoDB: xtrabackup: Last MySQL binlog file position 414, file name /log/binlog/mysql-bin.000012
InnoDB: Removed temporary tablespace data file: "ibtmp1"
InnoDB: Creating shared tablespace for temporary tables
InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
InnoDB: File './ibtmp1' size is now 12 MB.
InnoDB: 96 redo rollback segment(s) found. 1 redo rollback segment(s) are active.
InnoDB: 32 non-redo rollback segment(s) are active.
InnoDB: 5.7.11 started; log sequence number 68405269
xtrabackup: starting shutdown with innodb_fast_shutdown = 1
InnoDB: FTS optimize thread exiting.
InnoDB: Starting shutdown...
InnoDB: Shutdown completed; log sequence number 68405621
160430 23:51:25 completed OK!
--在節點1資料庫上面建立複製專用賬戶
mysql> grant replication slave on *.* to 'repl'@'192.168.78.%' identified by 'Mysql#2015';
Query OK, 0 rows affected (0.04 sec)
--配置節點2的配置檔案
[root@localhost 5505]# vim /mysql_data/cnf/my.cnf
# Log
server-id = 200
log-bin = /mysql_log/binlog/mysql-bin
relay-log = /mysql_log/binlog/product-relay-bin
relay-log-index = /mysql_log/binlog/product-relay-index
binlog_cache_size = 32M
max_binlog_cache_size = 512M
max_binlog_size = 512M
binlog_format = MIXED
--啟動節點2的Mysql服務
[root@localhost bin]# /data/bin/mysqld_safe --defaults-file=/mysql_data/cnf/my.cnf &
--配置Slave節點複製環境
查詢Slave節點連線Master節點的二進位制檔案和位置
使用Xtrabackup備份時,在xtrabackup_binlog_info檔案中會儲存這部分資訊
[root@localhost 5505]# more xtrabackup_binlog_info
mysql-bin.000012 414
--在節點2執行CHANGE MASTER語句
mysql> change master to
-> master_host='192.168.78.141',
-> master_port=3306,
-> master_user='repl',
-> master_password='Mysql#2015',
-> master_log_file='mysql-bin.000012',
-> master_log_pos=414;
Query OK, 0 rows affected (0.13 sec)
--啟動應用執行緒
mysql> start slave;
--檢視同步狀態
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.78.141
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000013
Read_Master_Log_Pos: 341
Relay_Log_File: product-relay-bin.000003
Relay_Log_Pos: 487
Relay_Master_Log_File: mysql-bin.000013
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
--搭建節點2到節點1的複製
--在節店1的配置檔案中,增加中繼日誌的設定
[root@localhost log]# vim /etc/my.cnf
relay-log = /log/binlog/product-relay-bin
relay-log-index = /log/binlog/product-relay-index
--重啟節點1的資料庫
[root@localhost tmp]# /software/bin/mysqladmin -usystem -p'system' shutdown
160512 02:47:54 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
[1]+ Done /software/bin/mysqld_safe --defaults-file=/etc/my.cnf (wd: ~)
(wd now: /tmp)
[root@localhost tmp]# /software/bin/mysqld_safe --defaults-file=/etc/my.cnf &
[1] 40246
[root@localhost tmp]# 160512 02:48:13 mysqld_safe Logging to '/log/err.log'.
160512 02:48:13 mysqld_safe Starting mysqld daemon with databases from /data
mysql> show variables like 'relay_log%';
+-----------------------+---------------------------------+
| Variable_name | Value |
+-----------------------+---------------------------------+
| relay_log | /log/binlog/product-relay-bin |
| relay_log_index | /log/binlog/product-relay-index |
| relay_log_info_file | relay-log.info |
| relay_log_purge | ON |
| relay_log_recovery | OFF |
| relay_log_space_limit | 0 |
+-----------------------+---------------------------------+
6 rows in set (0.00 sec)
--在節點1上面增加全域性只讀鎖,如果應用只連線到一個節點,如節點1,這一步可以忽略
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
--檢視節點2當前的日誌名稱和位置,用於下面在節點1的change master to命令
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000006 | 14078491 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
--在節點1執行CHANGE MASTER語句
mysql> change master to
-> master_host='192.168.78.137',
-> master_port=5505,
-> master_user='repl',
-> master_password='Mysql#2015',
-> master_log_file='mysql-bin.000006',
-> master_log_pos=14078491;
Query OK, 0 rows affected (0.13 sec)
--啟動應用執行緒
mysql> start slave;
--節點1釋放全域性只讀鎖
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
--檢視同步狀態
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.78.137
Master_User: repl
Master_Port: 5505
Connect_Retry: 60
Master_Log_File: mysql-bin.000006
Read_Master_Log_Pos: 14078491
Relay_Log_File: product-relay-bin.000002
Relay_Log_Pos: 253
Relay_Master_Log_File: mysql-bin.000006
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
在兩個節點的配置檔案中增加序列的相關引數,以避免生成的序列相同而產生衝突
--節點1
節點1上序列從1開始,增長值為2,即為奇數,如1、3、5--節點1
## set this to server-id value
auto_increment_offset = 1
## set this to the number of mysql servers
auto_increment_increment = 2
--節點2
節點2上序列從2開始,增長值為2,即為奇數,如2、4、6
## set this to server-id value
auto_increment_offset = 2
## set this to the number of mysql servers
auto_increment_increment = 2
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26506993/viewspace-2098740/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 5.5 複製搭建流程MySql
- 配置mysql5.5主從複製、半同步複製、主主複製MySql
- MYSQL主主複製的搭建MySql
- mysql主從複製搭建MySql
- MySQL主從複製與主主複製MySql
- MYSQL主從複製的搭建MySql
- MySQL 主主複製MySql
- MySQL的主從複製與MySQL的主主複製MySql
- mysql5.7主從複製,主主複製MySql
- MySQL主從複製、半同步複製和主主複製MySql
- MySQL主從複製、半同步複製和主主複製概述MySql
- mysql主主複製(雙主複製)配置步驟MySql
- Mysql主從複製原理及搭建MySql
- 簡單搭建MySQL主從複製MySql
- MySQL(14)---Docker搭建MySQL主從複製(一主一從)MySqlDocker
- MySQL 主從複製的執行流程MySql
- MySQL的主從複製、半同步複製、主主複製詳解MySql
- MySQL-主從複製之搭建主資料庫MySql資料庫
- MySQL5.7主從複製-半同步複製搭建MySql
- MySQL 5.5.x 配置Master-Slave主從複製MySqlAST
- mysql主從複製的理解和搭建MySql
- mysql 5.7 主從複製搭建及原理MySql
- MySQL主主複製(雙主複製)配置過程介紹MySql
- Windows 環境下,MySQL 的主從複製和主主複製WindowsMySql
- windows環境下,Mysql的主從複製和主主複製WindowsMySql
- MySQL 5.5級聯複製配置流程MySql
- MySQL 主從複製MySql
- 【MySql】主從複製MySql
- MySQL主從複製MySql
- mysql複製--主從複製配置MySql
- docker-compase搭建mysql主從複製DockerMySql
- mysql 主從複製搭建詳細步驟MySql
- Mysql 8.4.0 結合 Docker 搭建GTID主從複製,以及傳統主從複製MySqlDocker
- mysql資料庫的主從複製和主主複製實踐MySql資料庫
- Redis主從複製流程概述Redis
- mysql之 mysql 5.6不停機主主搭建(活躍雙主基於日誌點複製)MySql
- Keepalived+Mysql配置主主複製MySql
- mysql主從複製+主備切換MySql