日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql主主复制某张表_MySQL主主复制实战

發布時間:2025/3/13 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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主主复制实战的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。