设为首页 收藏本站
查看: 1440|回复: 0

[经验分享] 玩转mysql主从和主主

[复制链接]

尚未签到

发表于 2018-10-11 06:36:24 | 显示全部楼层 |阅读模式
  ++++++++++++++++++++++++ 在master上处理 ++++++++++++++++
  #1 配置文件中添加并保证唯一
  server-id=1
  log-bin=/var/lib/mysql/mysql-bin
  #2 重启
  /etc/init.d/mysqld restart
  #3 建立用于同步的账号rep

  grant replication slave on *.* to 'rep'@'192.168.11.%'>  flush privileges;
  show grants for rep@'192.168.11.%’;
  注意: replication slave 为mysql 同步的必须权限,此处不要授权all容易被******。
  #4 进行导库操作(对数据库锁表只读) 当前窗口不要关闭
  注意:生产环境时,操作主从复制,需要申请停机时间。数据量很大锁表会影响业务。
  flush table with read lock;
  提示: 这个锁表命令的时间,在不同的引擎的情况,会受下面参数控制,锁表时,如果超过设置时间不操作会自动解锁。
  受二参数限制:interactive_timeout = 60  wait_timeout = 60
  默认情况下时长: show variables like '%timeout%';
  #5 查询bin-log日志在哪里 查询主库状态
  show master status;
  查询主库状态,即当前binlog日志文件名和二进制binlog日志偏移量。
  表示我现在主库往bin-log里写数据写到了 000001这个文件的342位置点
  #6 备份所有库 即导出数据库所有数据
  mysqldump -u root -p123456 --events --compact --default-character-set=utf8  -A -B -F |gzip >  mysql_all_$(date +%F).sql.gz
  #7 解锁
  unlock table
  ++++++++++++++++++++++++ 在slave上处理 ++++++++++++++++
  #1 配置文件中设置server-id 并关闭bin-log参数配置
  server-id=2
  #log-bin=/var/lib/mysql/mysql-bin
  #2 重启
  /etc/init.d/mysqld restart
  #3 将主库的数据库拉取到本地导进数据库
  scp root@192.168.11.16:/home/yeqing/mysql_all_2017-01-18.sql.gz .
  gzip -d mysql_all_2017-01-18.sql.gz
  注意: 有外键的表不好导,mysql等系统表不要导
  #4 配置同步参数(根据show master status设置)
  mysql> CHANGE MASTER TO
  -> MASTER_HOST='192.168.11.16',
  -> MASTER_PORT=3306,
  -> MASTER_USER='rep',
  -> MASTER_PASSWORD='123456',
  -> MASTER_LOG_FILE='mysql-bin.000001',
  -> MASTER_LOG_POS=342;
  Query OK, 0 rows affected (0.11 sec)
  #5 检查是否有master.info
  cat /var/lib/mysql/master.info
  #6 执行同步开关啦
  slave start;
  #7 检查是否已经同步
  show slave status\G;
  io和sql进程要yes:
  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes
  延迟要为0
  Seconds_Behind_Master:0
  #8 如果遇到IO进程和sql进程有不是YES,进行如下处理:
  方案1:
  1. 在master上
  清除bin-log: reset master;
  重新查看位置点:show master status;
  2. 在slave上
  关闭同步:slave stop
  清除bin-log: rester
  对照master位置点重新进行配置同步参数
  重新开启同步: slave start;
  再次查看是否同步: show slave status\G;
  方案二:
  差异小的情况下直接通过navicat的数据对比功能 找出来 给从库补上
  关闭同步:slave stop
  清除bin-log: rester
  重新开启同步: slave start;
  方案三:
  差异大的情况下,直接重新做主从同步。
  #9 测试同步
  在master上:
  create table test_2(id int);
  mysqlbinlog mysql-bin.*|egrep -v '#|*!'
  在slave上:
  show tables;
  +++++++++++++++++++++++++++++++++++ 主主配置++++++++++
  master-1:
  relay_log_info_file=/var/lib/mysql/relay-log.info
  relay-log-purge = 1
  log-slave-updates
  relay-log-recovery =1
  auto_increment_offset = 1
  auto_increment_increment = 2
  master-2:
  relay_log_info_file=/var/lib/mysql/relay-log.info
  relay-log-purge=1
  relay-log-recovery=1
  log-slave-updates
  auto_increment_offset = 2
  auto_increment_increment = 2
  分别重启mysql 并 slave stop /start


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-620079-1-1.html 上篇帖子: 二进制安装MySQL-5.5.33-LULU 下篇帖子: MySQL-5.5.33主从复制
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表