美文网首页
MySQL主从复制实战

MySQL主从复制实战

作者: 我问你瓜保熟吗 | 来源:发表于2020-04-27 11:19 被阅读0次

    一、主数据库设置


    • 主mysql增加如下配置到[msqld]
    server-id=1
    log-bin=/var/log/mysql/mysql-bin
    
    gtid_mode = on
    enforce_gtid_consistency = 1
    log_slave_updates = 1
    
    # 优化参数:非必要
    #innodb_flush_log_at_trx_commit = 1 # InnoDB 在事务提交后从buffer写入二进制日志并flush到磁盘的频率, InnoDB 引擎特有。默认值为1,可不用显示配置。
    #sync_binlog = 0 # 二进制日志同步到磁盘的频率,默认为0,可不用显示配置。
    
    # 优化参数:非必要
    #binlog-do-db=  # 需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可,如果不添加此项则默认复制所有数据库。
    #binlog-ignore-db=  # 不需要复制的数据库苦命,如果复制多个数据库,重复设置这个选项即可
    
    • 优化参数解释:

    sync_binlog默认值是 0,不主动同步,而依赖操作系统本身不定期把文件内容 flush 到磁盘。设为1最安全,在每个语句或事务后同步一次binary log
    推荐设置为0或100。对于支付服务推荐 sync_binlog = 1

    innodb_flush_log_at_trx_commit 取值为 0 的时候,log buffer 会 每秒写入到日志文件并刷写(flush)到磁盘
    当取值为 1 时,每次事务提交时,log buffer 会被写入到日志文件并刷写到磁盘。这也是默认值。这是最安全的配置,但由于每次事务都需要进行磁盘I/O,所以也最慢。
    当取值为 2 时,每次事务提交会写入日志文件,但并不会立即刷写到磁盘,日志文件会每秒刷写一次到磁盘。这时如果 mysqld 进程崩溃,由于日志已经写入到系统缓存,所以并不会丢失数据;在操作系统崩溃的情况下,通常会导致最后 1s 的日志丢失。

    • 创建二进制日志存放目录
    mkdir /var/log/mysql
    chown mysql.mysql /var/log/mysql
    
    • 创建具有复制权限的mysql账号
    CREATE USER 'copy'@'%' 
    GRANT REPLICATION SLAVE ON *.*  TO  'copy'@'%'  identified by 'copy';
    
    • 备份主服务器数据(如果有的话)
    mysqldump  --master-data=2 --flush-logs --all-databases > /root/`date +%F-%H-%M-%S`.sql
    

    myisam引擎加上:--lock-all-tables
    innodb引擎加上:--single-transaction

    二、从数据库设置


    • 从服务器配置里,[mysqld]添加如下内容
    server_id=22
    read-only=on  # 开启只读,对拥有super权限的用户无效   
    
    gtid_mode = on
    enforce_gtid_consistency = 1
    log_slave_updates = 1
    
    #replicate-do-db=需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
    #replicate-ignore-db=需要忽略复制的数据库名,如果复制多个数据库,重复设置这个选项即可
    
    • 导入备份
    mysql -uroot -proot < /root/2016.sql
    
    • 连接主服务器
    CHANGE MASTER TO MASTER_HOST = '10.*.*.36', MASTER_USER = 'repl', MASTER_PASSWORD = 'replpassword', MASTER_PORT = 3306, MASTER_AUTO_POSITION = 1;
    
    • 启停、重置复制功能

    start slave;
    stop slave;
    reset slave;

    相关文章

      网友评论

          本文标题:MySQL主从复制实战

          本文链接:https://www.haomeiwen.com/subject/kcwewhtx.html