广

MYSQL

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

    mysql 双机热备实战 --安恒网管员手记

    2018-05-07 10:25:04 次阅读 稿源:互联网
    零七网广告
    全网推广平台,软文发布

    mysql实现双机热备,原理是通过更新日志,用mysql的SELECT的文件操作功能,备机实时抓取主机的更新日志,当然这只是其原理,实际上并不需要我们自己去处理日志,明白了原理,实施就比较容易理解了。

    这样,在主机端需要开一个账号,这个账号是备机用来抓取主机的更新日志。需要有文件访问权限,在早期,刚开始实现双机热备时,就是用的文件权限。

    从mysql4 开始,添加了一个专门的权限,用来做热备,这个权限本质应该还是文件读取权限,但是应该只能用来读取日志,防止一些漏洞。

    对于客户端来说,就是设置这个账号,密码,主服务器地址,还有要同步的数据库名。这只是单向的,再配置一个对等的同步通道,就支持双向的热备了。

    通过热备,还可以备端从主端load全部数据。这个在同步出错时可以使用。load权限是一个单独的mysql权限,这样跟热备有关的mysql的权限有2个,日志抓取和数据载入(REPLICATION SLAVE, REPLICATION CLIENT )

    在服务器端开备份账号

    GRANT REPLICATION SLAVE , REPLICATION CLIENT ON * . * TO "backup"@ "192.168.1.2"IDENTIFIED BY "*****"WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 ;

    在服务器端打开日志功能

    /etc/mysql/my.cnf
    [mysqld]
    server-id = 1
    log-bin
    binlog-do-db = pa
    max_binlog_size = 104857600
    -------------------------------------------- 这样,mysql会在数据目录放置pa这个库的更新日志。等待备机来抓取。

    客户端设置:
    /etc/mysql/my.cnf
    master-host=192.168.1.1
    master-user=backup
    master-password=12345
    master-port=3306
    master-connect-retry=60
    replicate-do-db=pa

    客户端会到服务器抓取pa库的更新日志,来更新本地的pa库。

    几个跟热备有关的mysql命令:(需要在mysql命令行界面或query )

    stop slave

        #停止同步

    start slave

        #开始同步,从日志终止的位置开始更新。 SET SQL_LOG_BIN=0|1  #主机端运行,需要super权限,用来开停日志,随意开停,会造成主机从机数据不一致,造成错误 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=n  # 客户端运行,用来跳过几个事件,只有当同步进程出现错误而停止的时候才可以执行。 RESET MASTER  #主机端运行,清除所有的日志,这条命令就是原来的FLUSH MASTER RESET SLAVE

       #从机运行,清除日志同步位置标志,并重新生成master.info

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七网广告
    零七网广告
    零七网广告
    零七网广告