RHEL系统安装MySQL主备环境
mysql的复制(Replication)是一个异步的复制,从一个mysql instance(称之为master)复制到另一个mysql instance(称之为slave).实现整个复制操作主要由三个进程完成的,其中俩个进程在slave(sql进程和io进程),另外一个进程在master(IO进程)上。
要实施复制,首先要打开master端的binary log(bin-log)功能,否则无法实现。因为整个复制过程实际上就是slave从master端获取该日志然后在自己升上完全顺序的执行日志中所记录的各种操作。
1. 配置master并启动拷贝配置文件:
cp /usr/share/doc/Percona-Server-server-56-5.6.14/my-default.cnf /etc/my.cnf
编辑/etc/my.cnf:
[mysqld] explicit_defaults_for_timestamp=true ##开启查询缓存 # log_bin log_bin = mysql-bin server_id = 36
启动mysql服务:
service mysql start2. 配置slave并启动
拷贝配置文件:
cp /usr/share/doc/Percona-Server-server-56-5.6.14/my-default.cnf /etc/my.cnf
编辑/etc/my.cnf:
[mysqld] explicit_defaults_for_timestamp=true log_bin = mysql-bin server_id = 37 relay_log=/var/lib/mysql/mysql-relay-bin ##传送过来的日志存放目录 log_slave_updates=1 read_only=1 ##这个参数只对普通用户生效,超级用户和复制用户无效
启动mysql服务:
service mysql start3. 主从分别授权用户
在master,slave分别执行以下命令:
#mysql mysql- grant replication slave,replication client on *.* to repl@% identified by 123456; mysql- flush priviledges;4. 主库数据备份到从库
master上运行:
# mysqldump -A all.sql
slave上运行:
# mysql all.sql5. 根据主状态启动从库
(1) 查询主库状态
mysql- show master status \G *************************** 1. row *************************** File: mysql-bin.000001 Position: 697 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)
(2) 从库启动复制
#mysql mysql- change master to - master_host="192.168.0.114",master_port=3306,master_user="repl",master_password="123456",master_log_file="mysql-bin.000001",master_log_pos=697; mysql- start slave;
(3) 从库状态
mysql show slave status \G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.0.114 Master_User: repl Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 697 Relay_Log_File: mysql-relay-bin.000002 Relay_Log_Pos: 563 Relay_Master_Log_File: mysql-bin.000001 ....Exec_Master_Log_Pos: 697 ....6. 主从用于复制的进程
在master上查看进程:
mysql- show processlist
1个如下状态的进程:
Master has sent all binlog to slave; waiting for binlog to be updated
在slave上查看进程:
mysql- show processlist
2个如下状态的进程
Waiting for master to send event Slave has read all relay log; waiting for the slave I/O thread to update it7. 主从状态监控
常规做法是slave上show slave status\G中的两个变量的差值(Read_Master_Log_Pos,Exec_Master_Log_Pos),也可以使用percona提供的工具包pt-heartbeat。
8. Percona-tookit 安装及pg-heartbeat使用工具集中包含pt-heartbeat, 安装依赖perl-DBD-MySQL, perl-IO-Socket-SSL:
% rpm -ivh percona-toolkit-2.2.6-1.noarch.rpm
pg-heartbeat功能介绍:
监控复制延迟 测量复制落后时间实现机制:
第一步,pt-heartbeat的–update线程会在指定的时间间隔更新一个时间戳。 第二步,pt-heartbeat的–monitor线程或者–check线程连接到从上检查前面更新的时间戳,和主当地时间做比较,得出时间差。使用例子:
1)初始化环境,创建一个后台进程定期更新主上的test库heartbeat表,默认是一秒可以–interval指定,执行后会生成一个heartbeat表,test为需要监控的同步库
pt-heartbeat -D test --update -u repl -p 123456 -h 192.168.0.108 --create-table --daemonize
2)监控并输出slave落后时间
pt-heartbeat -D test --monitor -u repl -p 123456 -h 192.168.0.115 0.00s [ 0.00s, 0.00s, 0.00s ] ###瞬时延迟 [一分钟平均延迟,五分钟平均延迟,十五分钟平均延迟] 0.00s [ 0.00s, 0.00s, 0.00s ] 0.00s [ 0.00s, 0.00s, 0.00s ]
结果如下 会一直输出,断开一下连接得到如下结果,最后同步
0.00s [ 0.34s, 0.07s, 0.02s ] 0.00s [ 0.00s, 0.07s, 0.02s ]
3)只输出瞬时的差值
#pt-heartbeat -D test --test -u repl -p 123456 -h 192.168.0.115 0.00 ###只代表瞬时延迟9. mysql主从互换
(1) 停止从库复制,从新设置状态
mysql- stop slave; mysql- reset master; mysql- reset slave;
(2) 如配置文件相同的情况下,配置文件无需更改。否者主备的配置文件交换。
(3) 原先的主变为备
mysql- reset master; mysql- reset slave;
从新配置change master to参数
(4) 服务器重启
如原先的主中有bin日志在从上为实现同步,可以认为读取bin日志的内容,在新的主中执行
【MySQL】你还不会在Docker下安装MySQL主备吗? 那什么时候就要开始考虑搭建主备架构呢, 一方面是随着业务增长,读写请求已经到达了一定的瓶颈时,我们需要考虑,另一方面为了保证数据的完整性,以保证主宕机的时候,可以快速切换。
关于Linux下MySQL主备集群负载均衡之读写分离(MaxScale)的一些记笔 分享一些MySQL(MariaDB)集群主从结构数据读写分离的笔记,关于读写分离: 一如果对于读密集型应用,可以容忍从库异步复制延迟导致的脏数据,读写分离是一种不错的负载均衡方式 如果对于脏数据零容忍,不建议这样搞,出了故障还需要考虑这个因素,不太方便定位问题 二是读写分离需要做体量评估,不能为了读写分离去读写分离,系统负载正常,完全没必要,如果扩了资源还是频繁的sql timeout,读写分离是解决方法之一 博文偏实战,内容涉及: 为什么需要负载均衡? MaxScale配置主从集群的读写分离 食用方式:了解Linux,MySQL 理解不足小伙伴帮忙指正
MySQL主备模式的数据一致性解决方案 数据一致性对于在线业务的重要性不言而喻,本专题系列,主要从阿里巴巴“去IOE”的后时代讲起,来看下阿里巴巴数据库在数据一致性解决方案
MySQL备份与主备配置 本文详细讲述了如何进行 MySQL 的全量备份、增量备份、主从备份、双主备份以及如何通过 binlog 对误操作数据进行恢复,包含大量代码和截图。
mysql 主备配置 mysql 主备配置 1、准备: master 192.168.40.129 slave 192.168.40.130 mysql版本 mysql5.7 mysql启动 service mysqld start 防火墙关闭 service iptables stop 2、修改配置 /etc/my.
雨客 微博@JavaChen,这里的所有博客文章来自http://blog.javachen.com/。
相关文章
- Windows系统下,HHDBCS辅助Mysql安装
- 快速安装MySQL数据库, 即刻体验数据库的强大功能(下载mysql数据库)
- 快速安装MySQL:使用Yum(yum安装mysql)
- 一键安装Mysql,快速简便搞定!(mysql一键安装包)
- MySQL 集群搭建:构建高可用系统的最佳方案.(mysql集群搭建方案)
- MySQL数据库文本导入指南(mysql文本导入)
- MySQL服务器安装指南(如何安装mysql服务器)
- MySQL连接串编程:用C快速实现(mysql连接串c)
- 后怎么开启phpmyadmin使用XAMPP启动MySQL并开启phpMyAdmin(xampp启动mysql)
- 开发MySQL类库开发:构建快速可靠的系统(mysql类库)
- Ruby安装MySQL:从零开始(ruby安装mysql)
- 格清理MySQL表格的简单指南(mysql 清楚表)
- MySQL日志路径详解:让你轻松掌握MySQL日志相关知识(mysql 日志路径)
- MySQL连接:利用联合查询打通数据库路径(mysql连接两个字段)
- 现代计算机环境中CPC安装MySQL新技术(cpc安装 mysql)
- C语言驱动MySQL增删查改简明实现(c mysql增删查改)
- CDH集群下快速安装MySQL(cdh集群安装mysql)
- CDH集群配置MySQL数据库安装指南(cdh mysql 安装)
- cmd命令查找MySQL安装位置(cmd获取mysql位置)
- 以BCB拓展访问MySQL数据库(bcb访问mysql)
- 数据库导入MySQL数据库Bak文件与MySQL的操作(bak怎么导入mysql)
- 解析如何在64位操作系统中安装MySQL(64位mysql怎么安装)
- MySQL 51安装指南全步骤指引(5.1mysql安装步骤)
- 如何使用CMD安装MySQL数据库(cmd安装mysql命令)
- 教程如何在中国下载MySQL国内加速器(mysql下载国内镜像)
- MySQL数据库降价潮(mysql下调价格)
- 如何解决MySQL创建连接池失败问题(mysql不能创建连接池)
- MySQL下载与安装指南(mysql下载后怎么弄)