• mysql主从复制


    我的环境是利用了两个数据库实例,关于数据库实例我的前几篇文章写了。下面这个只是参考作用,需要懂其原理才能理解下面配置,要不然会出错,出错可以私聊我。

    1、打开主库bin-log
    log-bin = /data/3306/mysql-bin
    2、确保server-id不一样
    3、检查一下,grep是显示不出来的
    [root@weiwei 3306]# egrep "log-bin|server-id" /data/3306/my.cnf 
    [mysqld]
    log-bin = /data/3306/mysql-bin
    server-id = 1
    4、查看log-bin是否开启
    show variables like 'log_bin';
    
    5、建立用于从库复制的账号rep,在主库上授权
    
    grant replication slave on *.* to 'rep'@'10.0.0.%' identified by 'oldboy123';
    
    flush privileges;
    
    
    6、在主库上做备份,下面是给主库加个读锁,不让用户写数据了,,,这个也可以不锁,这个是官方给出的方案,也可以在mysqldump的时候加上-x自动锁
    flush tables with read lock;   mysql5.1
    flush table with read lock;    mysql5.5
     
    7、另开一个窗口,做备份,另外在备份之前查看一下文件和位置
    mysql>show master status;        从此时的点开始备份,要记住,如果此时没有看这个,那么就在备份的时候加上master-data=1或者2,区别就是将来在change master to时要不要写文件和位置点,这个可以看上面的图
    mysql>show master logs;
    
    mysqldump -uroot -p123 -S /data/3306/mysql.sock -A -B --events|gzip  >/opt/rep.sql.gz    此处-A是所有数据,,-B是包含创库语句
    
    
    8、解锁
    unlock tables;
    
    9、将主库备份出来的数据传至从库,然后导入从库
    mysql -uroot -p123 -S /data/3307/mysql.sock </opt/rep.sql
    
    10、登录从库,写入配置
    CHANGE MASTER TO
    MASTER_HOST='10.0.0.7',
    MASTER_POST=3306,
    MASTER_USER='rep',
    MASTER_PASSWORD='123',
    MASTER_LOG_FILE='mysql-bin.000003',
    MASTER_LOG_POS=333;
    
    
    在从库的/data/3307的目录下会存再master.info,保存着登录主库的相关信息
    
    11、在从库中开启同步
    start slave;
    
    查看两个线程是否工作
    show slave statusG
    

      

    上述第六点锁表的命令的时间,在不同的引擎的情况下,会受下面参数的控制,锁表时,如果超过设置时间不操作会自动解锁,所以此参数要尽量设置大点

    interactive_timeout =60

    wait_timeout=60

    set gloable wait_timeout=28800……

    退出数据库后重进,就发现改了。

    可以查看超时时间  show variables like '%timeout%'

    mysql主从复制原理要点
    1、异步方式同步
    2、逻辑同步模式,多种模式,默认是通过sql语句执行
    3、主库通过记录binlog实现对从库的同步。binlog记录数据库的更新语句
    4、主库1个io线程,从库由1个io线程和一个sql线程来完成的
    5、从库关键文件master.info,relay-log,relay-info功能
    6、如果从库还想级联从库,需要打开log-bin和 log-slave-updates 参数
    
    生产环境快速配置mysql主从复制方案
    1、安装好要配置从库的数据库,配置好log-bin和server-id参数。
    2、无需配置主库的my.cnf文件,主库的log-bin和server-id参数默认就是配置好的。
    3、登录主库增加用于从库连接主库同步的账户例如:rep,并授权replication slave同步的权限。
    4、使用半夜mysqldump带--master-data=1备份的全备数据恢复到从库。
    5、在从库执行change master to……语句,无需binlog文件及对应位置点。
    6、从库开启同步开关,start slave。
    7、从库show slave statusG,检查同步状态,并在主库进行更新测试。
    

      

  • 相关阅读:
    Weblogic 部署注意事项
    Can't load IA 32-bit .dll on a AMD 64-bit platform
    getDeclaredFields()和getFields()
    EJB QI查询
    Git for windows 中文乱码解决方案
    gulp browser-sync自动刷新插件
    input默认提示取消
    devDependencies和dependencies的区别
    npm安装插件提示
    gulp.watch监听文件
  • 原文地址:https://www.cnblogs.com/bill2014/p/7231672.html
Copyright © 2020-2023  润新知