mysql-主从复制

三步骤:

1、master将改变记录到二进制日志。这些记录过程叫做二进制日志事件,binary log events

2、slave将master的binary log events拷贝到它的中继日志(relay log)

3、slave重做中继日志中的事件,将改变应用到自己的数据库中。mysql复制是异步的且串行化的

master和slave的mysql版本最好一致

原理:主服务器建立二进制日志,每产生语句或磁盘变化,写进日志;授权复制账号

从服务器建立中继日志;利用复制账号来监听主服务器的日志

实操步骤:

配置binlog日志文件和中继日志文件

主机

1、主服务器ID必须唯一:server_id = 1

2、必须启用二进制日志文件:

    log-bin=mysql-bin

    # 指定日志格式

    binlog-format=mixed # statement(语句)、 row(行)、 mixed(语句和行的混合)

3、启用错误日志

    log-error=/var/mysql/mysql-error.log

4、根目录

    basedir=指mysql的安装位置

    tmpdir= # 临时目录

    datadir= # 数据存储目录

read-only=0

binlog-format=mixed/row/

binlog-ignore-db=mysql

从机:

从服务器唯一ID:server-id=2

启用二进制日志:relay-log=mysql-relay # 开启中继日志


建立账户并授权slave

主机:

#grant replication slave on *.* to 'zhansan'@'zhuji' identified by 'new-password';

grant replication client,replication slave on *.* to 'repl'@'192.169.%.%' identified by 'new-password';

flush privileges;

start master;

show master status; # 取得File:mysqlbin.00001文件和Postion:331位置的值

从机:

change master to 

master_host='ip-address'

master_user='zhansan'

master_password='new-password'

master_log_file='mysqlbin.00001',master_log_pos=331;

start slave;

show status slave; # 查看slave_io_running和slave_sql_running是否开启,如果开启成功就是yes

reset slave; # 重置slave的状态

stop slave; # 停止slave

注意show slave status查看file和position位置的重要性

# 主主复制会出现主键冲突,该如何解决

set session auto_increment=2; # 每步增长2

set session auto_increment=1; # 从1开始增长

set global auto_increment_increment=2;

set global auto_increment_increment=1;


## log-bin二进制日志

日志配置:

开启:log-bin=mysql-bin

设置binlog的格式:binlog-format=mixed # statement,row,mixed

设置log能存储的最大值:max_binlog_size=104857200 # 10M

设置值保留几天的binlog日志:expire_logs_days=7

设置日志只记录指定库的更新:binlog-do-db=db_name

设置日志不记录指定库的更新:binlog-ignore-db=db_name

设置写缓冲多少次,刷一次磁盘,默认为0:sync_binlog=0

查看日志状态和事件:

查看日志是否开启:show variables like '%log_bin%'

查看binlog列表:show binary logs

查看最新的binlog:show master status

查看binlog执行的事件:show binlog events in 'mysql-bin.000001'

查看binlog日志的格式:show global variables like '%binlog-format%';

查看binlog的二进制文件:mysqlbinlog mysql-bin.000001 | more

### 通过mysqlbinlog命令手动恢复数据:

    1、show binary logs;

    2、show binlog events in 'mysql-bin.0000001'; # 找到pos的开始和结束位置

    3、mysqlbinlog --no-defaults --database=dblog--base64-output=decode-rows -vv --start-position=1359 --stop-position=5484  mysql-bin.000001 > backup.sql # 将1359 - 5484位点的数据恢复成自定义的sql文件

    -v:自动生成带注释的SQL语句

    -v -v|-vv:生成列的描述信息,会生成字段的类型、长度、是否为null等

    --base64-output=decode-rows:日志为rows类型时的解码操作

binlog-format的类型时row的情况下遇到的问题:

(1)、binlog出现读不懂的编码,可用--base64-output=decode-rows来解决

(2)、解码后的sql非原生sql,那么如何解决尼?

    show variables like 'binlog_rows_query_log_events';

    set binlog_rows_query_log_events=1;

    flush logs;

    参考链接:https://www.cnblogs.com/kerrycode/p/9315949.html

(3)、解码后发现insert、update、delete等操作被注释掉了?

    暂未找到解决方法,

    但是网上有用binlog2sql来解析二进制日志文件

    参考连接:https://www.cnblogs.com/rickiyang/p/13841811.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,123评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,031评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,723评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,357评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,412评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,760评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,904评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,672评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,118评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,456评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,599评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,264评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,857评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,731评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,956评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,286评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,465评论 2 348

推荐阅读更多精彩内容