mysql replication 问题

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

今天又犯二了,居然把mysql的复制给忘了,也算醉了,再次总结mysql 主从:

公司的db01-fk(172.33.4.155)机器出了问题,需要换新的机器。这台机器上的mysql也是从中国db01复制的,所以解决思路:1、从中国db01备份数据库,并将备份文件传至FK;2、在FK site 新db01-fk上还原数据库,并设置master地址及相关参数,实现复制;

具体操作如下:

1、CN db01 备份数据库,并传至新db01-fk,操作如下:

[root@db01-mb ~]# mysqldump -A  --master-data=1 --single-transaction --events | gzip > /tmp/fulldb-16-12-05.sql.gz

[root@db01-mb ~]# ll -h /tmp/fulldb-16-12-05.sql.gz

-rw-r--r-- 1 root root 411M Dec  5 15:15 /tmp/fulldb-16-12-05.sql.gz

[root@db01-mb ~]# aws s3 cp /tmp/fulldb-16-12-05.sql.gz  s3://yeecalllogs-mb/

upload: ../tmp/fulldb-16-12-05.sql.gz to s3://yeecalllogs-mb/fulldb-16-12-05.sql.gz

[root@db01-mb ~]#


2、在db01-fk(new) 复制原db01-fk的配置文件、密钥文件,启动服务,设置远程master主机的相关参数

[root@db01-fk ~]# rsync -avzoptgl --progress  172.33.4.155:/home/mysql/  /home/mysql/

[root@db01-fk ~]# rsync -avzoptgl --progress  172.33.4.155:/etc/my.cnf  /etc/my.cnf

[root@db01-fk ~]# service mysqld start

[root@db01-fk ~]# mysql

mysql> change master to

    -> master_host='1.1.1.1',

    -> master_user='repl',

    -> master_password='123456789',

    -> master_port=13306,

    -> master_ssl=1,

    -> master_ssl_ca='/home/mysql/ssl/ca.crt',

    -> master_ssl_cert='/home/mysql/ssl/4.idc.ycall.com.crt',

    -> master_ssl_key='/home/mysql/ssl/4.idc.ycall.com.key';

Query OK, 0 rows affected (0.02 sec)

mysql> exit

db01-fk(new)上还原数据库,进行复制 

[root@db01-fk ~]# aws s3 cp s3://yeecalllogs-mb/fulldb-16-12-05.sql.gz /tmp/

download: s3://yeecalllogs-mb/fulldb-16-12-05.sql.gz to ../tmp/fulldb-16-12-05.sql.gz

[root@db01-fk ~]# gzip -d /tmp/fulldb-16-12-05.sql.gz

[root@db01-fk ~]# grep -P -io "change master to .*\d;$" /tmp/fulldb-16-12-05.sql

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000069', MASTER_LOG_POS=8105870;

[root@db01-fk ~]# mysql < /tmp/fulldb-16-12-05.sql

[root@db01-fk ~]# mysql

mysql> start slave ;

mysql> show slave status \G 

[root@db01-fk ~]#


说明:

mysqldump --help

--master-data[=#]  This causes the binary log position and filename to be 

                      appended to the output. If equal to 1, will print it as a 

                      CHANGE MASTER command; if equal to 2, that command will 

                      be prefixed with a comment symbol. This option will turn 

                      --lock-all-tables on, unless --single-transaction is 

                      specified too (in which case a global read lock is only 

                      taken a short time at the beginning of the dump; don't 

                      forget to read about --single-transaction below). In all 

                      cases, any action on logs will happen at the exact moment 

                      of the dump. Option automatically turns --lock-tables 

                      off.

--master-data[=#]      在备份导出的文件里追加二进制binlog文件的位置和名称 

                        如果值等于1,就会添加一个CHANGE MASTER语句 

                        如果值等于2,就会在CHANGE MASTER语句前添加注释 

                        这个参数会--lock-all-tables锁表,除非指定了--single-transaction 

                        这种情况下,锁表只会在dump开始的时候持续一小段时间,照理说 

                        dump的时候,任何动作都会影响到binlog文件 

                        dump结束之后,选项会自动关闭锁表功能

    分析:如果在恢复DB之前指定  change master to  host port .....,然后再恢复DB 这样 dump 文件中带的  master_log_file  master_log_pos 才会生效。因为一旦修改master host(即使修改前后的值相同),就会生成新的filepos,原来dump文件的语句就被冲掉了。所以这种方式必须首先指定host,然后恢复,最后 start slave; 

    当然:我上次操作,在mysqldump时没加这两参数,使用了-x 锁表功能 ,但在mysqldump过程中,在主库上 show master status  , 查看了 position  logfile,然后记下这两项值,以便在从库change master to 操作时指定这些参数。










本文转自 meteor_hy 51CTO博客,原文链接:http://blog.51cto.com/caiyuanji/1881451,如需转载请自行联系原作者
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
网络协议 算法 关系型数据库
解读 MySQL Client/Server Protocol: Connection & Replication(上)
解读 MySQL Client/Server Protocol: Connection & Replication
167 0
|
6月前
|
监控 负载均衡 关系型数据库
MySQL技能完整学习列表13、MySQL高级特性——1、分区表(Partitioning)——2、复制(Replication)——3、集群(Clustering)
MySQL技能完整学习列表13、MySQL高级特性——1、分区表(Partitioning)——2、复制(Replication)——3、集群(Clustering)
90 0
|
SQL 存储 关系型数据库
解读 MySQL Client/Server Protocol: Connection & Replication(下)
解读 MySQL Client/Server Protocol: Connection & Replication
145 1
|
存储 NoSQL 关系型数据库
An Overview of PostgreSQL & MySQL Cross Replication
An Overview of PostgreSQL & MySQL Cross Replication
103 0
|
关系型数据库 MySQL
《从理论到实践,深度解析MySQL Group Replication》电子版地址
从理论到实践,深度解析MySQL Group Replication
100 0
《从理论到实践,深度解析MySQL Group Replication》电子版地址
|
关系型数据库 MySQL
MySQL Group Replication
MySQL Group Replication
108 0
|
监控 关系型数据库 MySQL
[MySQL FAQ]系列 — 大数据量时如何部署MySQL Replication从库
[MySQL FAQ]系列 — 大数据量时如何部署MySQL Replication从库
118 0
|
监控 关系型数据库 MySQL
[MySQL FAQ]系列 — 大数据量时如何部署MySQL Replication从库
[MySQL FAQ]系列 — 大数据量时如何部署MySQL Replication从库
|
监控 关系型数据库 MySQL
Mysql配置Replication主从复制-实现读写分离
概述:Mysql集群的方式可以是很多的,主从,一主多从,多组多从,主从的策略还可以进一步选择和配置。可以说是很灵活了。本文介绍的Replication是异步复制同步方案,分别有基于日志的还有基于GTID的。
2352 0