MySQL雙主同步

只粘實現的主要步驟,詳細步驟見百度mysql

主庫A 172.21.25.71sql

建立一個用於slave和master通訊的用戶帳號
        打開mysql會話shell>mysql -hlocalhost -uname -ppassword
        建立用戶並受權:用戶:slave密碼:slave123456
        mysql> CREATE USER 'slave'@'%' IDENTIFIED BY 'slave123456';#建立用戶
        mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';#分配權限
        mysql>flush privileges;   #刷新權限
得到master二進制日誌文件名及位置
		查看master狀態,記錄二進制文件名(mysql-bin.000003)和位置(73):
mysql> SHOW MASTER STATUS;
+---------------+----------+--------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000041 |      741 |              |                  |                   |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

 

使用master分配的用戶帳號讀取master二進制日誌
        mysql> CHANGE MASTER TO
        MASTER_HOST='172.21.25.172',
        MASTER_USER='slave',
        MASTER_PASSWORD='slave123456',
        MASTER_LOG_FILE='mysql-bin.000001',
        MASTER_LOG_POS=979;
    啓用slave服務
        mysql>start slave;
    查看狀態
        mysql> show slave status\G;

    主庫重啓

主庫B 172.21.25.72shell

操做步驟通上數據庫

mysql> SHOW MASTER STATUS;
+---------------+----------+--------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000019 |      741 |              |                  |                   |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

使用master分配的用戶帳號讀取master二進制日誌
        mysql> CHANGE MASTER TO
        MASTER_HOST='172.21.25.171',
        MASTER_USER='slave',
        MASTER_PASSWORD='slave123456',
        MASTER_LOG_FILE='mysql-bin.000001',
        MASTER_LOG_POS=979;
    啓用slave服務
        mysql>start slave;
    查看狀態
        mysql> show slave status\G;

其餘配置解釋socket

replicate-do-db 設定須要複製的數據庫(多數據庫使用逗號,隔開)

replicate-ignore-db 設定須要忽略的複製數據庫 (多數據庫使用逗號,隔開)

replicate-do-table 設定須要複製的表

replicate-ignore-table 設定須要忽略的複製表

replicate-wild-do-table 同replication-do-table功能同樣,可是能夠通配符

replicate-wild-ignore-table 同replication-ignore-table功能同樣,可是能夠加通配符
replicate-wild-do-table=db_name.% 只複製哪一個庫的哪一個表

replicate-wild-ignore-table=mysql.% 忽略哪一個庫的哪一個表


問題處理整理 ====================================
#跳過一個事務
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1        

 

附錄spa

配置文件日誌

my-71.cnfcode

[client]
socket=/home/mysql/mysql.sock
port=3306

[mysqld]
user=mysql
port=3306
server-id=1
max_connections=2000
datadir=/home/mysql/data
#basedir=/home/mysql
socket=/home/mysql/mysql.sock
pid_file=/home/mysql/mysql.pid
default-storage-engine=INNODB
character_set_server=utf8mb4

# 雙主
log-bin=binlog 
log-bin-index=binlog.index
relay_log=relay-log
replicate-ignore-db=information_schema
replicate-ignore-db=mysql
replicate-ignore-db=performance_schema
replicate-ignore-db=sys
replicate-ignore-db=otter
replicate-ignore-db=hh_position

replicate-do-db=data_center
replicate-do-db=hh_data_center
replicate-do-db=test


# INNODB
innodb_buffer_pool_size=60G
innodb_log_file_size=1G
innodb_file_per_table=1
innodb_flush_method=O_DIRECT
innodb_open_files=1000

# MyISAM
key_buffer_size=8M

# logging
log_error ="error.log"
log-output=FILE
general-log=1
general_log_file="mysql.log"
slow-query-log=1
slow_query_log_file="mysql-slow.log"
long_query_time=3

# other
tmp_table_size=32M
open_files_limit=65535

my-72.cnform

[client]
socket=/home/mysql/mysql.sock
port=3306

[mysqld]
user=mysql
port=3306
server-id=2
max_connections=2000
datadir=/home/mysql/data
#basedir=/home/mysql
socket=/home/mysql/mysql.sock
pid_file=/home/mysql/mysql.pid
default-storage-engine=INNODB
character_set_server=utf8mb4

# 雙主
log-bin=binlog 
log-bin-index=binlog.index
relay_log=relay-log
replicate-ignore-db=information_schema
replicate-ignore-db=mysql
replicate-ignore-db=performance_schema
replicate-ignore-db=sys
replicate-ignore-db=otter
replicate-ignore-db=hh_position

replicate-do-db=data_center
replicate-do-db=hh_data_center
replicate-do-db=test

# INNODB
innodb_buffer_pool_size=20G
innodb_log_file_size=1G
innodb_file_per_table=1
innodb_flush_method=O_DIRECT
innodb_open_files=1000

# MyISAM
key_buffer_size=8M

# logging
log_error ="error.log"
log-output=FILE
general-log=1
general_log_file="mysql.log"
slow-query-log=1
slow_query_log_file="mysql-slow.log"
long_query_time=3

# other
tmp_table_size=32M
open_files_limit=65535
相關文章
相關標籤/搜索