mysql复制工作方式

来源:互联网 发布:华南理工大学网络 编辑:程序博客网 时间:2024/06/05 20:09

mysql复制工作方式

  • 主服务器将变更写入二进制日志
  • 从服务器读取主服务器的二进制日志变更写入到relay_log中
  • 在从服务器上重放relay_log中的日志
  • 基于SQL段(statement)的日志是在从服务器上重新执行记录的SQL
  • 基于行的日志(row)则是在从库上直接应用对数据库行的修改

基于日志点的复制

基于日志点的复制步骤:

  1. 在主DB服务器上建立复制账号
CREATE USER 'repl'@'ip段' IDENTIFIED by 'youpassword';GRANT replication SLAVE ON *.* TO 'repl'@'ip段';

2 . 配置主数据库服务器

log_bin = mysql_bin max_binlog_size = 1000Mbinlog_formart = rowexpire_logs_day = 7sync_binlog = 1server_id = 100 #动态参数,集群中唯一

3 . 配置从数据库服务器

log_bin = mysql_binrelay_log = mysqld-relay-binserver_id = 101relay_id = mysql-relay-binlog_slave_update = on #可选read_only = on #可选

4.初始化从服务器数据

mysqldump --master-data=2 -single-transaction #innodbxtrabackup --slave-info #推荐的热备份工具

5 . 启动复制链路

CHANGE MASTER TO MASTER_HOST = 'master_host_ip',                 MASTER_USER = 'repl',                 MASTER_PASSWORD = 'youpassword',                 MASTER_LOG_FILE = 'mysql_log_file_name',                 MASTER_LOG_POS = 4;    start slave

优点:

  • 是Mysql最早支持的复制技术,bug相对较少
  • 对SQL查询没有任何限制
  • 故障处理比较容易

缺点:

  • 故障转移时重新获取新主的日志点信息比较困难
1 0