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

[经验分享] mysql 下的 复写

[复制链接]

尚未签到

发表于 2018-10-3 11:40:35 | 显示全部楼层 |阅读模式
  windows下配置
  主服务器下设置my.ini文件(C:\Program?Files\MySQL\MySQL?Server?5.1)
  文件末尾添加以下代码:
  server-id=252# 唯一表示码,建议使用 IP 最后一栏
  log-bin=D:\mysqlback# 日记文件名
  bin-do-db=mydb;# 需要 replication 的 DB ,多个则多条对应语句
  从服务器下设置my.ini文件(C:\Program?Files\MySQL\MySQL?Server?5.1)
  server-id=253
  master-host=192.168.198.252
  master-user=rep_user
  master-password=rep_user
  master-port=3306
  master-connect-retry=60# 宕机或连接丢失的情况下,从服务器重新连接的秒数
  replicate-do-db=mydb# 告诉从服务器限制默认数据库为mydb的语句复制,多个则多条语句
  slave-skip-errors=all# 忽略错误
  主服务器下开放一个用户,用于从服务器 replicate 访问

  GRANT REPLICATION SLAVE ON *.* TO 'rep_user'@'192.168.198.%'>
  GRANT SUPER,>  # GRANT SELECT, FILE, REPLICATION SLAVE ON *.* TO 'rep_user'@'192.168.198.%'
  在主服务器下,拷贝数据库文件目录Data ,到从服务器下 (可以在my.ini下修改数据库的保存路径)
  路径 (C:\Program Files\MySQL\MySQL Server 5.1\data) # 本次使用的数据库引擎MyISAM,可以直接拷贝
  分别重启主从服务器....
  在从服务器 mysql 命令行下,输入命令: load data master
  在主服务器 mysql 命令行下,查看结果:show master status;
  在从服务器 mysql 命令行下,执行:
  slave start;
  show slave status \G;
  可以看到 “Waiting for master to send event ”的字眼,表示成功
  说明:在第一次设置完成master,slave之后,如果要修改slave的my.ini里master的设置必须先删除data下面的master.info文件,重启服务才能生效。否则服务器会以master.info中的信息为准。
  //****************************************************************
  //** for linux
  //** 设置大致与 windows 下相同
  //** 设置my.cnf文件
  //****************************************************************
  在实际的应用过程中,如果所有slave都直接连到master 上,所有的slave都会从master上接受binglog的内容,而当你业务扩张的时候,slave 节点的不断增加,这必然会对master增加负担,容易达到瓶颈。
  有一种提高Replication性能的方法,就是增加mysql Replication结构的深度,就是一个master 只Replication给一个slave,在由这个slave 复制给其他的slave。
  结构为:master1-->master2-->slave1....
  (Mysql的版本都是5.6.9)
  环境:
  Maste1 :
  Hostname:media
  Ip:172.72.15.41
  Master2:
  Hostname:rac1
  Ip:172.72.15.151
  Slave1:
  Hostname:rac2
  Ip:172.72.15.152
  详细步骤:
  一:导出数据:
  在导出数据之前把数据库的表都锁上,并置于read only状态
  mysql> flush tables with read lock;
  Query OK, 0 rows affected (0.00 sec)
  mysql> set global read_only=on;
  Query OK, 0 rows affected (0.00 sec)
  再开始maste1上面把数据导出来,由于5.6版本增加了gtid的功能,所以在用mysqldump导出的时候,可以通过 --set-gtid-purged 这个选项控制是否要用gtids来恢复,默认是开启的!
  [root@media ~]# mysqldump -u root -psbcenter -B new1 > /tmp/new1.sql
  Warning: Using a password on the command line interface can be insecure.
  Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events.
  [root@media ~]# scp /tmp/new1.sql 172.72.15.151:/root/(scp 复制文件,不同linux下)
  root@172.72.15.151's password:
  new1.sql                                                                                                                             100% 8346     8.2KB/s   00:00
  二:到maste2,slave1上导入数据
  如果mysqldump 导出数据的时候 --set-gtid-purged 没有设置成off,那么master2启动mysqld 的时候需要 启用gtid_mode=on
  Master2上导入数据
  [root@rac1 ~]# mysql < new1.sql
  Slave1 上导入数据
  [root@rac2 ~]# mysql < /root/new1.sql
  三:创建复制用户
  在master 1 上创建master2的复制用户

  mysql> GRANT REPLICATION SLAVE ON *.* TO 'rep1'@'172.72.15.151'>  mysql> flush privileges ;
  Query OK, 0 rows affected (0.00 sec)
  在master2上创建slave1 的复制用户

  mysql> GRANT REPLICATION SLAVE ON *.* TO 'rep1'@'172.72.15.152'>  mysql> flush privileges;
  Query OK, 0 rows affected (0.00 sec)
  四:在master2和slave1 上配置master属性
  在master2上配置master属性
  mysql> change master to
  -> master_host='172.72.15.41',
  -> master_user='rep1',
  -> master_password='123456',
  -> master_auto_position=1;
  Query OK, 0 rows affected, 2 warnings (0.17 sec)
  mysql>start slave;
  在slave1 上配置master属性
  mysql> change master to
  -> master_host='172.72.15.152',
  -> master_user='rep1',
  -> master_password='123456',
  -> master_auto_position=1;
  Query OK, 0 rows affected, 2 warnings (0.17 sec)
  mysql>start slave;
  整个过程就是这样,另外要提及的一点是如果mysql 版本是5.6以下的或者是没开启gtids
  的,需要在master2上配置log-slave-updates 参数,这个参数的作用是master2接受到master1的binlog到relay日志中去时,也会更新到自己的binlog中去,以便给它的slave使用!


运维网声明 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-609238-1-1.html 上篇帖子: mysql 查看表 下篇帖子: mysql同步的那些事
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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