mysql主主复制某张表_MySQL主主复制实战
MySQL主主復制實戰:
基礎環境配置很簡單,我這就不浪費時間了,直接開始。
#####################################################################################
m1-m2配置文件更改
#####################################################################################
一、添加my.cnf自增的參數和打開binlog
(1)Master1:
#master-master
auto_increment_increment = 2 ?#自增ID的間隔,如1 3 5 間隔為2
auto_increment_offset = 1 ? ? #自增ID的初始位置
log-bin=mysqlbin_3307_tangbo
(2)Master1:
#master-master
auto_increment_increment = 2 ? #自增ID的間隔,如2 4 6 間隔為2
auto_increment_offset = 2 ? ? ?#自增ID的初始位置
log-bin=mysqlbin_3308_tangbo
二、互為主從參數---兩邊都要加入配置
replicate-ignore-db = mysql #不同步mysql庫
log-slave-updates ?#開啟從庫binlog日志
binlog-ignore-db = mysql ? #不記錄binlog日志
binlog-ignore-db = information_schema #不記錄binlog日志
binlog-ignore-db = performance_schema #不記錄binlog日志
skip-slave-start #啟動忽略從庫啟動
#####################################################################################
master1配置文件更改
#####################################################################################
三、在主庫master1上的操作
(1)開啟binlog并設置server-id的值
server_id = 100
log-bin=mysqlbin_3307_tangbo
(2)創建用于同步的賬號tangbo(master)
mysql> GRANT replication slave ON *.* TO 'tangbo'@'192.168.11.%' IDENTIFIED BY '111111';
Query OK, 0 rows affected (0.01 sec)
mysql>
(3)鎖表只讀(master)
mysql> flush table with read lock;
Query OK, 0 rows affected (0.00 sec)
mysql>
(4)查看master狀態當前日志文件名和二進制日志偏移量(要記錄,后面會用)
mysql> show master status;
+-----------------------------+----------+--------------+---------------------------------------------+-------------------+
| File ? ? ? ? ? ? ? ? ? ? ? ?| Position | Binlog_Do_DB | Binlog_Ignore_DB ? ? ? ? ? ? ? ? ? ? ? ? ? ?| Executed_Gtid_Set |
+-----------------------------+----------+--------------+---------------------------------------------+-------------------+
| mysqlbin_3307_tangbo.000003 | ? ? ?336 | ? ? ? ? ? ? ?| mysql,information_schema,performance_schema | ? ? ? ? ? ? ? ? ? |
+-----------------------------+----------+--------------+---------------------------------------------+-------------------+
1 row in set (0.00 sec)
mysql>
(5)單開新窗口,備份數據庫(數據量大,并且允許停機可以直接tar cp)
mysqldump -uroot -p111111 -S /data/3308/mysql.sock -A -B ?| gzip > /opt/all.sql.gz
(6)主庫解鎖,恢復可寫
mysql> unlock table;
Query OK, 0 rows affected (0.00 sec)
mysql>
(7)把備份的數據考入到另一臺主庫
scp就行
#####################################################################################
master2配置文件更改
#####################################################################################
三、在主庫master2上的操作
(1)設置server-id 值,且重啟數據庫
server_id = 101
(2)把備份的MySQL數據導入從庫(Slave)
gzip -d all.sql.gz
mysql -uroot -p111111 -S /data/3308/mysql.sock ?
(3)登陸mysql(master2)建立同步master1
change master to
master_host='192.168.11.36',
master_port=3307,
master_user='tangbo',
master_password='111111',
master_log_file='mysqlbin_3307_tangbo.000003',
master_log_pos=336;
(4)啟動同步命令,并查看:slave
mysql> start slave;
Query OK, 0 rows affected (0.11 sec)
mysql> show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0
#####################################################################################
master2配置文件更改-跟前面步驟一樣。連接時改改配置即可
#####################################################################################
change master to
master_host='192.168.11.36',
master_port=3308,
master_user='tangbo',
master_password='111111',
master_log_file='mysqlbin_3308_tangbo.000001',
master_log_pos=120;
創建表測試:
CREATE TABLE `caiwu` (
`id` int(30) NOT NULL AUTO_INCREMENT,
`name` varchar(60) NOT NULL,
`ages` varchar(60) DEFAULT NULL,
`job` varchar(30) DEFAULT NULL,
`pay` float DEFAULT NULL,
`time` date DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
測試腳本
[root@mysql-double ~]# cat mysqldata1.sh
#!/bin/bash
##########################
###########################
#MysqlLogin="mysql -uroot -p111111" #→定義登陸mysql的命令,方便下文使用
MysqlLogin="mysql -uroot -p111111 -S /data/3308/mysql.sock" #此行適合單機多實例數據庫的方式
i=1
while true #→true表示永遠為真
do
${MysqlLogin} -e "insert into tangbo.caiwu(name,ages,job,pay,time) values('tangbo"$i"','28','wangluo',5000,20150120);"
#${MysqlLogin} -e "insert into oldboy.student values ("$i",'oldboy"$i"','m','21','computer"$i"');"
#如果是多張表可以同時插入多張表,我這里給出的例子,是插入不同的記錄,可以用于做各種小測試,比較適合各類初級不會mysql存儲過程的運維人員。
((i++))
sleep 20;
done
[root@mysql-double ~]#
四、可以看到主主復制成功。
總結
以上是生活随笔為你收集整理的mysql主主复制某张表_MySQL主主复制实战的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ksd文件怎么打开_文件KSDStore
- 下一篇: python3.8新特性 逻辑表达式_P