Mysql主从复制/双机热备

Mysql主从复制

  1. MySQL 主从复制概念

MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。

  1. MySQL 主从复制好处
  • 可以作为备用数据库进行操作,当主数据库出现故障之后,从数据库可以替代主数据库继续工作,不影响业务流程

  • 读写分离,将读和写应用在不同的数据库与服务器上。一般读写的数据库环境配置为,一个写入的数据库,一个或多个读的数据库,各个数据库分别位于不同的服务器上,充分利用服务器性能和数据库性能;当然,其中会涉及到如何保证读写数据库的数据一致,这个就可以利用主从复制技术来完成。

一主一从/一主多从配置

  1. 设置主机数据库的my.cnf,设置主机标识的service-id

    必填项:

    server_id=1#主机的标识,每台主机标识不能重复

    log-bin=mysql-bin.log#确保可写入的日志文件

    可选项:

    binlog_format=mixed#二进制日志的格式

    binlog-do-db=master#允许主从复制数据库

    binlog-ignore-db=mysql#不允许主从复制的数据库

重新启动mysql服务

  1. 主节点锁表,查询master的状态,挂载从节点后解锁
  (1)flush tables with read lock;#(只读,防止positon改变挂载失败)
  (2)show master status;#(查看当前bin-log日志的位置点)
  (3)unlock tables;
  1. 挂载从节点
  • 填写show master status中master_log_file/master_log_pos
  change  master to master_host='10.42.124.62',
  master_user='root', #不使用root可以单独新建用户
  master_password='password',
  master_log_file='mysql-bin.000001',
  master_log_pos=120;
  • 记得启动slave start slave;
  1. 查看从节点状态
    show slave status;
  • 当Slave_IO_Running和Slave_SQL_Running线程都为yes是主从复制配置成功

Slave_SQL_Running为no可能是因为 挂载slave之后,master更改了挂载slave之前的内容,此时需要重新挂载

  1. 挂载多个slave

    按挂载第一个从节点操作即可

双机热备配置

即两台主机互为从节点

  1. 前提要求
  • master必须开启二进制日志

  • master和slave的server-id必须不一样 范围(2^23-1)

  • master和slave的初始数据一致(否则更改挂载点前数据会导致挂载失效)


#扩展说明:有时候,我们只是想master向slave上面同步某一个库,那么就可以使用下面的参数,同样是加在/etc/my.conf配置文件里面:
binlog-do-db=需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
binlog-ignore-db=不需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可


示例:
master的/etc/my.conf
server-id = 1
log-bin=mysql-bin     #开启二进制,设定生成的log文件名;
binlog-do-db=demo    #需要同步的二进制数据库名;
binlog-ignore-db=information_schema    #不同步的二进制数据库名,如果不设置可以将其注释掉;
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=test
log-slave-update    #把更新的记录写到二进制文件中;

slave的/etc/my.conf
server-id = 2    # 如果有多个 依次添加即可,不能相同
log-bin=mysql-bin
relay-log=/data/DB/relay.log #中继日志文件,中继日志是连接mastert和slave的信息,它是复制的核心,I/O线程将来自master的事件存储到中继日志中,中继日志充当缓冲,这样master不必等待slave执行完成就可以发送下一个事件

#如果想要做级联架构,也就是master复制到slave上面,slave再复制到slave2上面,同样在slave上面也可以控制需要复制的数据库,
replicate-ignore-db=mysql
replicate-do-db=demo
log-slave-update    # 级联 中级slave必须开启此参数

#MySQL主从复制参数大全 参考:https://www.cnblogs.com/qianniao12/p/8011222.html
  1. 互相挂载

步骤与一主一从配置相同,互相挂载即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值