• MySQL 主从-主主服务器备份配置


    前提:本教程只备份指定数据库mis

          主服务器IP:192.168.1.10

          从服务器IP:192.168.1.20

    1:主服务器锁定数据库,避免Position变化

          flush tables with read lock;

    2:主服务器将要备份的数据库导出到备份文件,导入到从服务器,使得两个服务器的数据库有相同的初态,否则Slave_SQL_Running 不等于YES

    3:备份完成后,解锁主服务器数据库

          unlock tables;

    4:配置从服务器数据库配置文件

          [mysqld]

          server-id = 2                              # 服务器唯一编号,比主服务器小,主服务器一般是1,必须

          log-bin = mysql-bin                    # 开启mysql binlog功能,二进制日志,必须

          replicate_wild_do_table=mis.% # 只同步mis 库下的表,非必须

          relay_log=mysqld-relay-bin        # 记录中继日志,非必须

          log-slave-updates=YES              # 从服务器同步后记录日志,非必须

          修改完成后重启mysql服务。

    5:查看主服务器数据库状态

          show master status

     6:主服务器创建允许从服务器同步数据的账户:

          创建用户:CREATE USER 'bakuser'@'%' IDENTIFIED BY 'password';

          授权用户:GRANT REPLICATION SLAVE ON mis.* TO 'bakuser'@'%';

    7:从服务器开启同步:

          change master to  

                master_host='192.168.1.10',

                master_user='bakuser',

                master_password='password',

                master_log_file='mysql-bin.000092',

                master_log_pos=1167;

          运行成功 --->配置完以上后,重启从服务器mysql服务。

    8:查看从服务器是否已经成功开启同步:

          show slave status

           其中:Slave_IO_Running和Slave_SQL_Running的状态都是YES,说明同步开启成功。

    到这一步,主从服务器已配置完毕,更改主服务器mis 数据库内容,从服务器也会相应更改,但是从服务器更改时,主服务器不会更改,所以要保住两个数据相互一致,需要配置主主服务器


    在主从配置的基础上实现双主备份

    9:从服务器创建允许主服务器同步数据的账户:同步骤6

    10:配置主服务器数据库配置文件:同步骤4,server-id 得比从服务器数据库配置的小

    11:记录从服务器二进制日志文件名与位置:同步骤5

    12:主服务器开启同步:同步骤7

    13:重启mysqld服务后,查看主服务器是否已经成功开启同步:同步骤8

    问题:

    1:Position 值变化原因:Position 值随着mysql 有增删改查 ,bin-log日志就增加,那么Position 肯定会变化

    答:FLUSH TABLE WITH READ LOCK; 锁库position就停了,配置完成前再解锁可保证Position 同步变化

    2:为什么要设置replicate_wild_do_table(指定同步的数据库)

    答:replicate_do_db 跨数据执行sql 语句不会被执行,默认只执行当前数据库语句,replicate_wild_do_table可以确保需要同步的数据库实时更新,不需要的数据库被排除在外

    3:Slave_IO_Running = Connecting

    答:1:网络不同,始终处于待连接状态,相互ping 主从服务器,观察连接状态,互相开启端口3306 通讯;

           2:用户权限不够,配置的用户没有配置允许同步数据,或者用户允许连接的IP有所指定,可以改成正确的指定IP或者%(通配)

           3:配置文件问题,检查以上配置是否都正常,检查是否有【bind-address】(数据库绑定了IP,指定IP才能访问,应当注释掉)

    4:Slave_IO_Running = No

    答:主从同步配置错误,例如:启动一次数据库,就会产生新的mysql-bin 文件,导致配置的master_log_file 不可用,或者Position 变化导致配置的master_log_pos 不可用

    5:Slave_SQL_Running = No

    答:主从数据库初态内容不一致照成的,例如:数据库重启或者有增删改查等操作在配置未完成前,Position 变化导致配置的master_log_pos 不可用

    参考:https://www.cnblogs.com/yixiao21/p/8372214.html

  • 相关阅读:
    这不是线性表
    定义线性表
    这不是线性表
    API函数的参数
    定义线性表
    [原创 js] 自定义页面功能
    YUI3 学习笔记(1) 
    YUI3学习笔记 ( 2 )
    含有变量的正则表达式使用方法
    YUI3学习笔记 ( 3 )
  • 原文地址:https://www.cnblogs.com/wa502/p/14780610.html
Copyright © 2020-2023  润新知