物理机win7,虚拟机为两台centos7系统
实验myslq数据库简单的主从复制:
主节点:192.168.255.2
从节点:192.168.255.3
使用rpm包安装的mariadb-server
配置主节点:
]# vim /etc/my.cnf
]# systemctl start mariadb.service
确保主节点的iptables没有阻断3306端口;
> SHOW GLOBAL VARIABLES LIKE '%log%';
确认二进制日志启动;
查看server id
创建有复制权限的账号:
> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'repluser'@'192.168.255.%' IDENTIFIED BY 'replpass';
> FLUSH PRIVILEGES;
查看二进制日志并记录日志位置:
配置从节点:
]# vim /etc/my.cnf
查看中继日志开启;
查看唯一ID:
在从节点:
使用有复制权限的用户账号连接至主节点,并启动复制线程;
指定二进制日志文件及位置:
> CHANGE MASTER TO MASTER_HOST='192.168.255.2',MASTER_USER='repluser',MA
STER_PASSWORD='replpass',MASTER_LOG_FILE='master-bin.000003',MASTER_LOG_POS=499;
启动从节点复制功能:
> START SLAVE;
查看从节点状态信息:
此时,主从复制配置完成;主节点再有任何写操作事务日志记录,都会同步到从节点上并在从节点上replay;
验证主从复制:
例如:在主节点创建库:
创建前主从节点中的库信息都是初始时默认存在的库:
在主节点创建新库:
> CREATE DATABASE mydb;
查看状态信息:
二进制日志中的事务位置发生了变化,此时从节点应该已经发生了同步;
在从节点查看:
查看从节点状态:
此时,还要设置从服务器不能由写操作,因为只有让主节点接受写操作,从节点只负责读请求,所有的写操纵都必须从主节点复制到本地中继日志中replay后完成的:
设置从节点只读:
> SET GLOBAL read_only=ON;
在从节点:
查看文件:
]# cat /var/lib/mysql/master.info
此文件就是为什么能设置开机后自动实现启动复制功能的重要文件;
查看从节点的中继日志文件:
主节点:保证从节点及时得到更新
应该设置此项:
从节点:
relay_log也会在内存中先缓冲,让每一次写出都立即同步到磁盘上,数据安全性提升,但磁盘io压力变大,性能会有所下降;
还要设置如下参数:
演示完成。