mysql之 mysql 5.6不停機主從搭建(一主一從基於GTID複製)
環境說明:
版本 version 5.6.25-log
主庫ip: 10.219.24.25
從庫ip:10.219.24.22
os 版本: centos 6.7
已安裝熱備軟體:xtrabackup
防火牆已關
補充:
主從複製原理: http://blog.csdn.net/zhang123456456/article/details/72972701
GTID 複製原理: http://blog.csdn.net/zhang123456456/article/details/73002216
mysql 5.6安裝 : http://blog.csdn.net/zhang123456456/article/details/53608554
xtrabackup 安裝: http://blog.csdn.net/zhang123456456/article/details/72836184
一主一從搭建流程:
1、 主庫引數調整
-- 停止主庫mysql
[root@mysql02 ~]# service mysql stop
[root@mysql02 ~]# netstat -nltp|grep mysql|grep 3606
-- 調整 my.cnf 引數
[root@mysql02 ~]# cat /etc/my.cnf
[client]
password = oracle
port = 3306
socket = /data/mysql/mysql.sock
[mysqld]
port = 3306
socket = /data/mysql/mysql.sock
character_set_server = utf8
character_set_client = utf8
collation-server=utf8_general_ci
lower_case_table_names = 1
max_connections = 1000
datadir = /data/mysql
#GTID:
server-id=25
gtid_mode=on #開啟gtid模式
enforce_gtid_consistency=on #強制gtid一致性,開啟後對於特定create table不被支援
#binlog
log_bin = /data/mysql/binarylog/binlog
log_bin_index = /data/mysql/binarylog/binlog
binlog_format = mixed
log-slave-updates=1
#relay log
skip_slave_start=1
[mysql]
default-character-set = utf8
說明:主庫必須配置的引數
server-id (主從的server-id必須不同)、log_bin、log-slave-updates、gtid_mode、enforce_gtid_consistency
-- 啟動主庫
[root@mysql02 ~]# mysqld_safe --defaults-file=/etc/my.cnf &
2、 從庫引數調整
-- 停止從庫mysql
[root@mysql01 ~]# service mysql stop
[root@mysql01 ~]# netstat -nltp|grep mysql|grep 3606
-- 調整 my.cnf 引數
[root@mysql01 ~]# cat /etc/my.cnf
[client]
password = oracle
port = 3306
socket = /data/mysql/mysql.sock
[mysqld]
port = 3306
socket = /data/mysql/mysql.sock
character_set_server = utf8
character_set_client = utf8
collation-server=utf8_general_ci
lower_case_table_names = 1
max_connections = 1000
datadir = /data/mysql
read-only = 1
#GTID:
server-id=22
gtid_mode=on
enforce_gtid_consistency=on
#binlog
log_bin = /data/mysql/binarylog/binlog
log_bin_index = /data/mysql/binarylog/binlog
log-slave-updates=1
#relay log
relay-log = /data/mysql/relaylog/relay
relay-log-index = /data/mysql/relaylog/relay
relay_log_purge = on
skip_slave_start=1
[mysql]
default-character-set = utf8
說明:從庫必須配置的引數
server-id、log_bin、relay-log、read-only、log-slave-updates
3、 主庫備份
-- 主庫備份目錄
[root@mysql02 full]# pwd
/xtrabackup/full
-- 主庫 innobackupex 備份
[root@mysql02 ~]# innobackupex --user=root --password=oracle --port=3606 /xtrabackup/full/
170610 17:50:23 Backup created in directory '/xtrabackup/full/2017-06-10_17-50-19/'
MySQL binlog position: filename 'binlog.000010', position '120'
....
170610 17:50:23 completed OK!
4、 從庫建立與主庫相同的備份目錄
[root@mysql01 ~]# mkdir -p /xtrabackup/full
[root@mysql01 ~]# chown -R mysql:mysql /xtrabackup/full/
5、 主庫將備份 scp 到從庫
[root@mysql02 full]# pwd
/xtrabackup/full
[root@mysql02 full]# scp -r 2017-06-10_17-50-19 10.219.24.22:/xtrabackup/full
6、 從庫檢視scp過來的備份
[root@mysql01 ~]# cd /xtrabackup/full/2017-06-10_17-50-19/
[root@mysql01 2017-06-10_17-50-19]# ll
total 12320
-rw-r-----. 1 root root 419 Jun 10 18:01 backup-my.cnf
-rw-r-----. 1 root root 12582912 Jun 10 18:01 ibdata1
drwxr-x---. 2 root root 4096 Jun 10 18:01 mysql
drwxr-x---. 2 root root 4096 Jun 10 18:01 performance_schema
drwxr-x---. 2 root root 4096 Jun 10 18:01 test
-rw-r-----. 1 root root 18 Jun 10 18:01 xtrabackup_binlog_info
-rw-r-----. 1 root root 113 Jun 10 18:01 xtrabackup_checkpoints
-rw-r-----. 1 root root 482 Jun 10 18:01 xtrabackup_info
-rw-r-----. 1 root root 2560 Jun 10 18:01 xtrabackup_logfile
7、 主庫建立同步使用者
mysql> GRANT replication slave ON *.* TO 'slave25'@'%' IDENTIFIED BY 'oracle';
Query OK, 0 rows affected (0.05 sec)
8、 從庫恢復主庫資料
-- 從庫將原有datadir資料夾重新命名到新位置,並建立原資料夾
[root@mysql01 ~]# mv /data/mysql /data/mysqlbak
[root@mysql01 ~]# mkdir -p /data/mysql
-- innobackupex apply-log
[root@mysql01 ~]# innobackupex --apply-log --user=oracle \
--password=oracle --port=3606 /xtrabackup/full/2017-06-10_17-50-19/
-- innobackupex copy 恢復的檔案到原來的資料位置
[root@mysql01 mysql]# innobackupex --defaults-file=/etc/my.cnf --user=root \
--copy-back /xtrabackup/full/2017-06-10_17-50-19/
170610 18:25:11 completed OK!
-- 建立binlog目錄與relaylog目錄並賦權
[root@mysql01 ~]# mkdir -p /data/mysql/binarylog
[root@mysql01 ~]# mkdir -p /data/mysql/relaylog/
[root@mysql01 mysql]# chown -R mysql:mysql /data/mysql
9、 從庫配置與檢測
-- 從庫啟動
[root@mysql01 mysql]# mysqld_safe --defaults-file=/etc/my.cnf &
-- 從庫指定與主庫同步的基本資訊
mysql>
change master to
master_host='10.219.24.25',
master_port=3306,
master_user='slave25',
master_password='oracle',
master_auto_position=1;
Query OK, 0 rows affected, 2 warnings (0.04 sec)
引數解釋:
MASTER_HOST : 設定要連線的主伺服器的ip地址
MASTER_USER : 設定要連線的主伺服器的使用者名稱
MASTER_PASSWORD : 設定要連線的主伺服器的密碼
MASTER_AUTO_POSITION : GTID模式,基於事務ID複製
-- 啟動slave 狀態(開始監聽msater的變化)
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
-- 檢視slave的狀態.
mysql> show slave status \G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.219.24.25
Master_User: slave25
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: binlog.000016
Read_Master_Log_Pos: 151
Relay_Log_File: relay.000021
Relay_Log_Pos: 355
Relay_Master_Log_File: binlog.000016
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 151
Relay_Log_Space: 518
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 25
Master_UUID: 29d68531-4cf9-11e7-8e1f-000c297c4100
Master_Info_File: /data/mysql/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 1
1 row in set (0.00 sec)
ERROR:
No query specified
10、 主從同步檢查
-- 主庫
mysql> create database gtid;
Query OK, 1 row affected (0.00 sec)
mysql> use gtid
Database changed
mysql> create table gtid(id int);
Query OK, 0 rows affected (0.50 sec)
mysql> insert into gtid values(1);
Query OK, 1 row affected (0.00 sec)
-- 從庫
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| binarylog |
| gtid |
| mysql |
| performance_schema |
| relaylog |
| repl |
| test |
+--------------------+
8 rows in set (0.00 sec)
mysql> use gtid
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select * from gtid;
+------+
| id |
+------+
| 1 |
+------+
1 row in set (0.00 sec) > GTID同步成功!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2140582/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 5.7 基於GTID搭建主從複製MySql
- Mysql 基於GTID主從複製MySql
- MySQL主從複製之GTID複製MySql
- 基於GTID搭建主從MySQLMySql
- MySQL 5.7基於GTID的主從複製MySql
- MySQL(14)---Docker搭建MySQL主從複製(一主一從)MySqlDocker
- mysql GTID主從複製故障後不停機恢復同步流程MySql
- Mysql 8.4.0 結合 Docker 搭建GTID主從複製,以及傳統主從複製MySqlDocker
- mysql主從複製(一):一主多從MySql
- mysql主從複製搭建MySql
- MySQL叢集之 主從複製 主主複製 一主多從 多主一叢 實現方式MySql
- Mysql實現主從複製(一主雙從)MySql
- 基於 Docker 的 MySQL 主從複製搭建(真正弄懂)DockerMySql
- MySQL-主從複製之搭建主資料庫MySql資料庫
- MySQL-主從複製之搭建從資料庫MySql資料庫
- MySQL8.0輕鬆搞定GTID主從複製MySql
- 簡單搭建MySQL主從複製MySql
- Mysql主從複製原理及搭建MySql
- MySQL 5.7傳統複製到GTID線上切換(一主一從)MySql
- MySQL 主從配置-之-一主一從MySql
- MySQL主從複製MySql
- mysql 基於日誌的主從複製MySql
- MySQL-主從複製之同步主從資料MySql
- mysql5.7主從複製,主主複製MySql
- MySQL主從複製之GTID模式詳細介紹鞴嬈MySql模式
- MySQL主從複製之半同步複製MySql
- MySQL主從複製之非同步複製MySql非同步
- 基於 Docker 的 MySQL 主從複製搭建及原理(真正弄懂)DockerMySql
- mysql 5.7 主從複製搭建及原理MySql
- mysql主從複製的理解和搭建MySql
- docker-compase搭建mysql主從複製DockerMySql
- Linux實現MySql資料庫的主從複製(一主一從)LinuxMySql資料庫
- mysql複製--主從複製配置MySql
- mysql 8.4 主從複製MySql
- mysql--主從複製MySql
- MySQL主從複製原理MySql
- MySQL的主從複製MySql
- 一文讀懂MySql主從複製機制MySql
- MySQL5.7主從複製-半同步複製搭建MySql