MySQL 5.5主从复制(Replication)
简介
MySQL的主从复制(Replication),可以保持两台MySQL数据库的内容一致。因为其同步过程是异步的,所以备份数据库上做任何操作,都不会影响主数据库的性能。对游戏后台数据库而言,这是一个重大的优势:对备份数据库的查询、备份等操作都不会影响游戏的线上运行。配置主从复制有许多教程,但都很繁琐。我根据官方文档,总结出一个简单的配置流程。
配置
线上运行的数据库,称之为Master服务器;备份的数据库,称之为Slave服务器。
分别修改两台服务器上的MySQL配置文件/etc/mysql/my.cnf:
Master服务器上加入这两行(直接去掉注释即可):
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
然后重启MySQL:
service mysql restart
Slave服务器加入这一行:
server-id = 2
然后重启MySQL:
service mysql restart
把Master数据库备份传给Slave数据库:
方法一:MyISAM格式可以直接拷贝,速度快:
在Master服务器上备份数据库,可以只有指定的数据库,不同步mysql库:
mkdir /masterdb
mysqlhotcopy --resetmaster --flushlog --addtodest --regexp=<数据库匹配正则表达式> /masterdb
如果原来已经设置过slave,现在要恢复数据,那么
先在Slave服务器上mysql中停止slave模式并重置:
stop slave;
reset slave;
然后关闭mysql:
stop mysql
删除原有同名的数据库。
停止mysql后,把备份的Master数据库目录传到Slave服务器上的mysql目录中,可以用
scp命令拷贝:scp -r -P <端口> /masterdb/* root@<IP地址>:/Jpcq/MySQL/
拷贝到Slave的文件需要修改owner:
chown -R mysql:mysql *
修改Slave的my.cnf文件,禁止同步mysql库:
replicate-ignore-db=mysql
启动mysql:
start mysql
重新开启slave模式,在mysql中执行:
change master to master_host='<Master IP地址>', master_user='<用户名>', master_password='<密码>';
start slave;
方法二:使用mysqldump,通用,但是慢:
在Master服务器上备份数据库:
mysqldump --all-databases --master-data >apply_slave.sql
把备份文件dbdump.db传到Slave服务器上,恢复数据库:
mysql <apply_slave.sql
在Slave服务器上开启slave模式,在mysql中执行:
change master to master_host='<Master IP地址>', master_user='<用户名>', master_password='<密码>';
start slave;
维护
Slave显示同步状态:
show slave status\G;
显示进程列表:
show processlist\G;
Master显示正在同步的Slaves:
show slave hosts;
Master显示最新binlog位置:
show master status;
MySQL 5.5 - 5.7的改进
- MySQL 5.5的主从复制是单线程的,性能受限。
 - MySQL 5.6的不同数据库可以并行,单个数据库还是顺序执行的。
 - MySQL 5.7不再受限制,所有Master数据库并行执行的事务,Slave也可以并行执行。
 - MySQL 5.7的Slave还支持从多个Master同步数据库。
 
MySQL 5.5主从复制(Replication)的更多相关文章
- MySQL数据的主从复制、半同步复制和主主复制详解
		
一.MySQL复制概述 ⑴.MySQL数据的复制的基本介绍 目前MySQL数据库已经占去数据库市场上很大的份额,其一是由于MySQL数据的开源性和高性能,当然还有重要的一条就是免费~不过不知道还能免费 ...
 - MySQL数据的主从复制、半同步复制和主主复制详解-转
		
一.MySQL复制概述 ⑴.MySQL数据的复制的基本介绍 目前MySQL数据库已经占去数据库市场上很大的份额,其一是由于MySQL数据的开源性和高性能,当然还有重要的一条就是免费~不过不知道还能免费 ...
 - Mysql的ssl主从复制+半同步主从复制
		
Mysql的ssl主从复制+半同步主从复制 准备工作 1.主从服务器时间同步 [root@localhost ~]# crontab -e */30 * * * * /usr/sbin/ntpdate ...
 - 003.MySQL高可用主从复制新增slave
		
一 基础环境 主机名 系统版本 MySQL版本 主机IP master CentOS 6.8 MySQL 5.6 172.24.8.10 slave01 CentOS 6.8 MySQL 5.6 17 ...
 - MySQL 5.7主从复制从零开始设置及全面详解——实现多线程并行同步,解决主从复制延迟问题!
		
MySQL 5.7主从复制从零开始设置及全面详解——实现多线程并行同步,解决主从复制延迟问题!2017年06月15日 19:59:44 蓝色-鸢尾 阅读数:2062版权声明:本文为博主原创文章,如需转 ...
 - 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变
		
[Mysql主从复制]解决的问题数据分布:比如一共150台机器,分别往电信.网通.移动各放50台,这样无论在哪个网络访问都很快.其次按照地域,比如国内国外,北方南方,这样地域性访问解决了.负载均衡:M ...
 - 为什么mysql要做主从复制?
		
为什么MySQL要做主从复制(读写分离)? 通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低. 为了提升业务系统性能,优化用户体验,可以通过做主从复制(读写分离)来减轻主 ...
 - MySQL 5.6 GTID Replication【转】
		
一. MySQL 5.6引入了GTID的概念,那么GTID是何方神圣?其实也不复杂,就是一个全局事务标示符.使用GTID时,每次事务提交都会在binlog里生成1个唯一的标示符,它由UUID和事务ID ...
 - MySQL 5.5 主从复制
		
MySQL 5.5 主从复制的原理.过程 分为同步复制和异步复制,实际复制架构中大部分为异步复制.复制的基本过程如下: 1).Slave上面的IO进程连接上Master,并请求从指定日志文件的指 ...
 - maria(mysql)的主从复制
		
一.mariadb的基本操作 1.远程连接 mysql -uroot -p -h 127.0.0.1 mysql -uroot -p -h 192.168.226.128 2.赋予远程连接的权限 gr ...
 
随机推荐
- C# Bitmap长宽参数构造的图片对象的每个像素ARGB都是0
			
var img = new Bitmap(100 , 100); for (int i = 0; i < img.Width; i++) { for (int j = 0; j < i ...
 - mysql学习之路_连接查询
			
回顾 列属性:主键,自增长,唯一键. 关系:一对一,一对多,多对多 三层范式: 1NF:字段设计必须符合原子性 2NF:不存在部分依赖(没有复合主键) 3NF:不存在传递依赖(实体单独成表) 逆规范化 ...
 - SQL常用增删改查
			
转 http://www.cnblogs.com/daxueshan/p/6687521.html 1增 1.1[插入单行]insert [into] <表名> (列名) values ( ...
 - 自己写一个chrome扩展程序 - 右键菜单扩展
			
最近在学习Spring,心想dotnet如何实现类似形式呢.于是想认真学习Casetle组件,发现没有书籍!而spring的书多得很.于是只好找网上教程了.发现系统的文章不多.Terrylee好多文章 ...
 - AIX 批量更改密码
			
使用 chpasswd 可以使用 chpasswd 方便地更改单个或多个账户密码.这意味着不需要像平时一样在命令行上重复输入密码.尽管可以以交互方式使用 chpasswd,但是我建议以非交互方式使用它 ...
 - 初识Android的ReactiveX
			
初识Android的ReactiveX 开发一个复杂一点的Android应用都会用到网络请求,交互和动画.这些都意味着 要写很多的回调嵌套.这样的代码也被称为callback hell(回调地狱).这 ...
 - (多线程dp)Matrix (hdu 2686)
			
http://acm.hdu.edu.cn/showproblem.php?pid=2686 Problem Description Yifenfei very like play a num ...
 - [ X.XX]CF每日一题系列线下更新中
			
现在做的都好水啊,就不写博客了,线下有记录滴
 - <c:forEach varStatus="status">中 varStatus的属性简介
			
我们常会用c标签来遍历需要的数据,为了方便使用,varStatus属性可以方便我们实现一些与行数相关的功能,如:奇数行.偶数行差异:最后一行特殊处理等等.先就varStatus属性常用参数总结下: $ ...
 - E - Evaluate Matrix Sum
			
Description Given a matrix, the elements of which are all integer number from 0 to 50, you are requi ...