MySQL的双机热备份(一)--MySQL的主从复制-阿里云开发者社区

开发者社区> 科技小能手> 正文

MySQL的双机热备份(一)--MySQL的主从复制

简介:
+关注继续查看

MySQL的主从复制

   在这里分两个情况:1、两台服务器中都没有数据 2、主服务器上已经有数据,此时再开启从服务器
     一、两台服务器中都没有数据
   在复制结构中从服务器的mysql的版本要比主服务器的一样或者高也行。

1、修改配置文件:
在主服务器上
  修改/etc/my.cnf文件(配置文件所在由自己在安装时指定,不一定都在这个路径下 =。=)
vim /etc/my.cnf 
/修改: 
server-id = 1 (默认是1) 
开启二进制日志定位到:log-bin 
log-bin=mysql-bin 这个也是默认开启的 
修改完成后重新启动mysql服务 
# service mysqld restart

连接到mysql数据库创建用户并赋于复制的权限
mysql>GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO repl@'172.16.%.%' IDENTIFIED BY '123456';

2、在从服务器上
vim /etc/my.cnf 
修改:    
servier-id = 11   ## id号一定不能与主服务器的id号相同
关掉二进制日志 
#log-bin=mysql-bin 
添加如下内容:   ##这些是开启中继日志的
relay-log=relay-bin 
relay-log-index=relay-bin.index 
修改完成后重启一下服务 
# service mysqld restart
好了,配置文件修改完成了。

3、在主从服务器上各自清空一下日志,也是同时用命令:
在主服务器上:mysql>flush master;
在从服务器上:mysql> flush slave;

这样做要使主从服务器的日志位于同一个结点,否则这样会易出错。

4、清空日志后就可以在从服务器上连接到主服务器上了
mysql>    CHANGE MASTER TO MASTER_HOST='172.16.35.1',MASTER_USER='repl',MASTER_PASSWORD='123456';

用命令:mysql> show slave status\G 来查看一下是否已经连接上
如果出现以下结果表明连接成功,则连接失败。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

失败的原因有多种:
最常见的情况分别是:
1、在主服务器上的用户可能出错
2、没有重新滚动一下主从服务器的日志,在连接前有必要重新滚动一下。
下面就可以测试了。
在主服务器上创建或者删除数据库、表,就可以同步到从服务器上了。
在从服务器上也可以查看到从服务器要比主服务器慢多少时间用命令:
mysql> show slave status\G
定位到:Second_Behind_Master:0 (0,表示时间说明没有延迟)

下面来介绍一下较常见的情况
 二、主服务器上已经有数据,此时再开启从服务器

1 在开启从服务器之前要先把主服务器上的数据导入从服务器中。所以要先备份一下主服务器上的数据
# mysqldump --all-databases --lock-all-tables --master-data=2 > /tmp/slave.sql

2、将备份复制到从服务器中
# scp /tmp/slave.sql 172.16.35.2:/tmp/


3、在从服务器上,把备份导入服务器中
mysql> source /tmp/slave.sql
4、下面就可以连接了,但是在连接之前要先查看备份的文件
用命令head来查看
# head -30 /tmp/slave.sql ##查看前30行的 
有一行是: 
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=279; 
说明要备份的位置是:MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=279 
所以在连接之前一定要说明这个位置

5、下面来开始在从服务器上连接主服务器
mysql>CHANGE MASTER TO MASTER_HOST='172.16.35.1',MASTER_USER='repl',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=279; 
返回的结果:Query OK, 0 rows affected (0.02 sec) 
说明连接成功

6、下面就可以启动从服务器了
mysql>start slave; 
mysql>show slave status\G     ##查看从服务器的状态是否连接成功 
如下所示说明成功连接: 
Slave_IO_Running: Yes 
Slave_SQL_Running: Yes

mysql>start slave;
mysql>show slave status\G ##查看从服务器的状态是否连接成功
如下所示说明成功连接:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

最后再来测试一下。 在主服务器上创建或者删除数据库、表,就可以同步到从服务器上了。 
 MySQL的主从复制是MySqL双机热备份的比较常用的方法。但是从服务器不能有写操作。不过,还有一种备份方式主--主复制,也是双机热备份的一种方法,将在下篇博文介绍。
  如果有什么不正确的地方还请指出,以便尽快的更改。谢谢

本文转自 ZhouLS 51CTO博客,原文链接:http://blog.51cto.com/zhou123/834821

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
MSSQL-最佳实践-利用文件组实现冷热数据隔离备份方案
--- title: MSSQL-最佳实践-利用文件组实现冷热数据隔离备份方案 author: 风移 --- # 摘要 在SQL Server备份专题分享中,前四期我们分享了:三种常见的数据库备份、备份策略的制定、如何查找备份链以及数据库的三种恢复模式与备份之间的关系。本次月报我们分享SQL Server如何利用文件组技术来实现数据库冷热数据隔离备份的方案。 # 场景引入 假设某公司
15599 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
9564 0
备份恢复12——复制数据库与备用数据库
1、建立复制数据库: 分为用户管理的方式建立复制数据库和rman建立复制数据库。 对于用户管理的复制数据库来说,还可以分为本机建立复制数据库和不在本机建立复制数据库,但是这两个方式区别不大,建立 数据库的方法步骤与建库的方法基本类似。
1074 0
Centos-Mysql复制备份还原数据库
备份单个数据库的数据和结构(,数据库名mydb) mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 脚本名;导出整个数据库结构和数据 mysqldump -h localhost -uroot -p123456 database > dump.
2051 0
从远程Oracle服务器上同步复制数据到本地备份库
create or replace PROCEDURE "SYNC_DATA_FROM_DBLINK_DB" AS BEGIN DECLARE CURSOR c_TabNames IS SELECT TNAME FROM TAB; v_TabName c_TabNames%ROWTYPE; v_SQL VARCHAR2(500); v_rowcount NUMB
1570 0
23706
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载