首页 > 代码库 > mysql5.6 replication异步复制搭建

mysql5.6 replication异步复制搭建

--mysql 复制搭建

准备sql2服务器 ,采用复制sql1的方法


--###sql2 解决vm网卡复制问题
vi /etc/udev/rules.d/70-persistent-net.rules
1、找到与ifconfig -a得出的MAC相同的一行
改成"NAME=eth0 "

2、把上面一行 NAME=‘eth0‘ 删掉

--sql2 同步mac地址 修改ip地址192.168.33.191
ifconfig
HWaddr 00:0C:29:D1:BE:65

vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
HWADDR="00:0C:29:D1:BE:65"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR="192.168.33.191"
GATEWAY="192.168.33.1"

--sql2 重启生效
reboot

 

--###sql2 删除源码编译安装的mysql
1、关闭mysql服务进程
su - mysql
mysqladmin shutdown

2、查找mysql安装目录
su - root
whereis mysql
mysql: /etc/mysql /usr/local/mysql

cd /etc/
rm -fr mysql

cd /usr/local/
rm -fr mysql

3、查找mysql相关目录
find / -name mysql
/data/sql1/data/mysql

cd /data
rm -fr sql1


--sql2 修改机器名 全新安装mysql
参见《mysql单机-单实例源码编译安装配置.sql》

 


--数据库在线备份配置
《xtrabackup安装与使用.sql》

 


--###配置mysql异步复制
master:sql1 192.168.33.190
slave :sql2 192.168.33.191


--1、master 配置

--2、确保master log-bin打开
mysql> show variables like ‘%log_bin%‘;
+---------------------------------+-----------------------------------+
| Variable_name | Value |
+---------------------------------+-----------------------------------+
| log_bin | ON |


--3、master 添加 server_id参数 多为ip
su - mysql
vi /etc/mysql/my.cnf
#replication
server_id = 10000

--4、master处 创建复制专用账户 usvr_replication 访问来源192.168.33网段 都可以连接master
CREATE USER usvr_replication@‘192.168.33.%‘ IDENTIFIED BY ‘123456‘;

GRANT REPLICATION SLAVE ON *.* TO usvr_replication@‘192.168.33.%‘; #--赋权replication slave 且可以复制所有用户数据库

--5、重启master
mysqladmin shutdown
sh mysql_startup.sh

 


--###slave配置
--1、测试usvr_replication 用户是否正常登录
mysql -h192.168.33.190 -p3306 -uusvr_replication -p

--2、slave 添加server_id 一般为ip 便于唯一
vi /etc/mysql/my.cnf
#replication
server_id = 10001


--3、确保auto.cnf 与master不一样
more /data/sql2/data/auto.cnf

--4、确保slave 也开启log-bin 目的:主备切换和备份
mysql> show variables like ‘%log_bin%‘;
+---------------------------------+-----------------------------------+
| Variable_name | Value |
+---------------------------------+-----------------------------------+
| log_bin | ON |


--数据同步
默认情况下,会同步复制用户下所有的DB,三种方法指定要复制的DB
1、在master上的/etc/my.inf中通过参数binlog-do-db、binlog-ignore-db设置需要同步的数据库。
2、在执行grant分配权限操作的时候,限定数据库
3、在slave上限定数据库使用replicate-do-db=dbname #--限定sql_thread需要应用的dbname

 

--5、重启slave
mysqladmin shutdown
sh mysql_startup.sh

 

--6、master 在线全备份 slave上恢复
《xtrabackup安装与使用.sql》

 

--7、定位全备份时刻,master上的 master_log_file和master_log_pos
more /data/sql2/data xtrabackup_binlog_pos_innodb
mysql-bin.000004 346


--8、配置slave到master 连接 执行时要小心,该句会多次执行时会产生重复数据!
mysql> change master to
master_host=‘192.168.33.190‘,
master_port=3306,
master_user=‘usvr_replication‘,
master_password=‘123456‘,
master_log_file=‘mysql-bin.000004‘,
master_log_pos=346;

--9、slave上启动开启同步
mysql> start slave;


--10、监控slave复制状态 如果有任何报错,建议
show slave status\G


--重启后replication 自动连接

 

 

--###配置半同步
《mysql_半同步复制配置.sql》

 


--###主备切换

各参数调整

 

mysql5.6 replication异步复制搭建