• Mysql主数据库+备份数据库部署教程


    转:http://www.111cn.net/database/mysql/76450.htm

    本文我们来讲讲Mysql主备如何部署,这里说的主是指Mysql主数据库,备是从数据库,备可以是多个,也可以是一个。
    本文说的mysql主备是指单向、异步的数据复制。可以是一个主、多个备。这样做的好处显而易见:有利于健壮性、速度和系统管理。备用数据库可以做为只读查询和备份的机器,减轻主用数据库的负担。


    实施前提:
    主用数据库的配置里至少有:

    [mysqld]
    log-bin=mysql-bin
    server-id=1

    建议主备的数据库版本一致。

    我所知道的最简单的实施方式(不需要停主库,甚至不需要长时间地禁止主库写入):

    主库操作:
    在主库里建一个复制用的用户:

    grant replication slave on *.* TO 'replication'@'备库地址' identified by 'replication';

    导出主库的数据,并记下当然日志文件和偏移:

    mysqldump --master-data=2 --single-transaction -uroot -p --all-databases >dumpfile

    这里是把数据以SQL的形式导出,并记下导出瞬间的日志文件和偏移(得益于--master-data=2参数),出来的dumpfile的前面会有一行类似以下的注释信息,就是文件名和偏移值了:

    -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000011', MASTER_LOG_POS=1061553673;

        对于这步,网络上一般采用的方法为:

        FLUSH TABLES WITH READ LOCK;--先把主库设置成只读,然后导出SQL或者直接复制数据文件
        SHOW MASTER STATUS; --记下日志文件和偏移
        UNLOCK TABLES;  --恢复主库写入

        这样,至少在复制数据的那段时间,主库是不可提供服务的。

    备库操作:
    复制主库的/etc/my.cnf和dumpfile。
    把主库配置里的 server-id 改成2(或者3、4,多个备库保存互不相同),再加上

    relay-log = slave-relay.log 
    relay-log-index = slave-relay-log.index

    导入数据:

     mysql <dumpfile

    进入mysql命令行执行:

    SLAVE STOP;
    CHANGE MASTER TO
    MASTER_HOST='主库地址',
    MASTER_PORT=3306,
    MASTER_USER='replication',
    MASTER_PASSWORD='密码',
    MASTER_LOG_FILE='mysql-bin.000011',
    MASTER_LOG_POS=1061553673;
    SLAVE START;

    然后,就搞定了,可以在备库执行

    SHOW PROCESSLIST;

    查看同步的状态,如果此命令的输出里有两个“system user”的进程,并且Command都是“Connect”的话,就差不多OK了,此时,任何对主库的修改,都能准实时地从备库里查询出来。

  • 相关阅读:
    OSI七层模型详解 TCP/IP协议
    ZT 第一范式,第二范式,第三范式
    思杰20140522
    Correspondence / ˏkɔris'pɔndәns / dictionary10-800.doc
    闲着没事,贴贴图
    心情闲适,发几个tatanic的图
    005 Python 基础特性
    017 虚拟内存 64位及内存对其 3
    004 Python 文件操作 字典 自定义函数
    003 Python list 索引
  • 原文地址:https://www.cnblogs.com/swing07/p/5922701.html
Copyright © 2020-2023  润新知