mysql数据库容灾实时备份主从

来源:互联网 发布:java十大常用设计模式 编辑:程序博客网 时间:2024/05/16 12:33

介绍:

        随着互联网时代的发展数据对于一个企业来说越来越重要,各种安全策略进行备份,同步都应用而生,技术发展也逐渐走向成熟,虽然我们不能100%保证数据的安全,但是我们可以采用副本复制、备份的机制达到尽可能的让数据不丢失,将损失减少到最小,所以实时备份是非常有必要的。

一、mysql数据库备份参数及命令说明

        1、server-id  服务器id (主从必须不一样)

        2、log-bin 存放服务执行过的sql语句,可以自定义

    3、replicate-do-db 指定需要记录那个数据库,作为同步数据库

    4、innodb_file_per_table 修改表空间模式,一张表生成一个文件,mysql默认一个data表空间,性能极差

    5、log_bin_trust_function_creators 开启支持创建函数function 语句,否则遇到函数同步报错

    6、innodb_flush_log_at_trx_commit  设置提交事务或其他指令将数据强行写入磁盘,如果为1表示每一次提交事务将执行sql强行写入,最多丢失一个事务的数据

    7、sync_binlog  刷新事务写入的次数,将数据丢失降到最低,与innodb_flush_log_at_trx_commit  组合使用

    8、innodb_support_xa 支持分布式事务,确保事务写入bin_log 日志文件

    9、log_slave_updates  用于控制把所有的操作动作指令写入bin_log 日志文件

二、部署主从服务器指令代码

a、主库配置:192.168.6.159,配置mysql中my.ini
        server-id=1
        log-bin=mysql-bin
        replicate-do-db=abc

        *****重启主库服务*****

b、从库配置:192.168.6.137,配置mysql中my.ini
        server-id=2
        log-bin=mysql-bin
        replicate-do-db=abc

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

        innodb_flush_log_at_trx_commit=1
        sync_binlog=1

        innodb_support_xa=1
        log_slave_updates=1



        *****重启从库服务*****

c、配置命令同步数据,先查看主库服务上的日志文件状态,
        mysql> show master status;
        +------------------+----------+--------------+------------------+
        | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
        +------------------+----------+--------------+------------------+
        | mysql-bin.000001 |      107 |              |                  |
        +------------------+----------+--------------+------------------+
d、在从库连接主库命令,启动从库数据同步主库数据
        change master to master_host='192.168.6.159',master_user='root',master_password='ysl',
         master_log_file='mysql-bin.000001',master_log_pos=107;
         
         ————————————————————————————————————————————————————————————————————————————————————————
         Query OK, 0 rows affected (2.55 sec)

        启动从库服务
        start slave;


    查看命令是否连接成功,其中 Slave_IO_Running:Yes,Slave_SQL_Running:Yes 有表示连接成功
            show slave status\G;
    
    ***********************以上内容就是单一的主从数据搭建完毕,数据库会定是同步,如果断开系统每隔1分钟自动连接**************
    
    
  e、然后在添加一台服务器,将上面的从库作为主库继续同步到当前新加入的这台服务器中,只需要在当前新服务器上mysql配置my.ini
          ******此处有两种情况***********
          a、如果你以前的从服务器已经开启日志记录,那么就不需要关闭192.168.6.137的同步服务,不用执行stop slave;
          b、如果你没有配置开启二进制日志文件记录,就需要停止stop slave服务,然后备份数据,然后将192.168.6.137服务器开启日志,重新导入数据,生成二进制日志文件
 
  1、配置内容:192.168.229.129
        server-id=3
        log-bin=mysql-bin
        replicate-do-db=abc
        relay-log-index=slave-relay-bin.index
        relay-log=slave-relay-bin
  2、重新启动mysql服务
  3、执行连接192.168.6.137的服务器同步配置命令
          change master to master_host='192.168.6.137',master_user='root',master_password='123456',
         master_log_file='mysql-bin.000001',master_log_pos=107
  4、启动服务,同步数据
          start slave;
 
  5、查看是否已经同步数据,其中 Slave_IO_Running:Yes,Slave_SQL_Running:Yes 有表示连接成功
            show slave status\G;
    
    






0 0