搭建主从复制

主机:

[mysqld] 下增加
vim /etc/my.cnf
## 设置 server_id,一般设置为 IP
server_id=8
# # 复制过滤:需要备份的数据库,输出 binlog
binlog-do-db=testdb
#复制过滤:不需要备份的数据库,不输出(mysql 库一般不同步)
binlog-ignore-db=mysql
# 开启二进制日志,以备 Slave 作为其它 Slave 的 Master 时使用
log-bin=master-log-1
binlog_cache_size = 1M
# 主从复制的格式(mixed,statement,row,默认格式是 statement)
binlog_format=mixed
# 二进制日志自动删除/过期的天数。默认值为 0,表示不自动删除。
expire_logs_days=7
#slave_skip_errors=1062
# # relay_log 配置中继日志
#relay_log=edu-mysql-relay-bin
#log_slave_updates 表示 slave 将复制事件写进自己的二进制日志
#log_slave_updates=1
# 防止改变数据(除了特殊的线程)
#read_only=1 然后在主机里创建一个用户授予同步权限,专门用来进行复制:
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'sync_user'@'192.168.0.%' IDENTIFIED BY 'root'; 然后show master status\G;
mysql> show master status\G;
*************************** 1. row ***************************
File: master-log-1.000002
Position: 584
Binlog_Do_DB: testdb 从机:
## 设置 server_id,一般设置为 IP
server_id=8
# # 复制过滤:需要备份的数据库,输出 binlog
binlog-do-db=testdb
# #复制过滤:不需要备份的数据库,不输出(mysql 库一般不同步)
binlog-ignore-db=mysql
# # 开启二进制日志,以备 Slave 作为其它 Slave 的 Master 时使用
log-bin=master-log-1
binlog_cache_size = 1M
# # 主从复制的格式(mixed,statement,row,默认格式是 statement)
binlog_format=mixed
# # 二进制日志自动删除/过期的天数。默认值为 0,表示不自动删除。
expire_logs_days=7 然后重启, 登录进去后配置主从关系组. master_log_file实时取上面的show master status 的File字段的值, master_log_pos 取Position的值,然后执行下面的命令:
mysql > stop slave;
mysql > change master to master_host='192.168.0.7',master_user='sync_user',master_password='root',master_log_file='master-log-1.000002',master_log_pos=120 ;
mysql > start slave; 最后查看 show slave status\G;
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.7
Master_User: sync_user
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: master-log-1.000002
Read_Master_Log_Pos: 120
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 286
Relay_Master_Log_File: master-log-1.000002
Slave_IO_Running: Yes
Slave_SQL_Running: Yes 其中 这两项都为Yes的话那就没什么问题了
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
直接开始主从同步吧


db快速回滚恢复,防止发生删库跑路.

一旦发生删库或其他危险性操作, 比如update不带条件式的修改(你又没开update保护), 那么跑路肯定不是第一选项的, 你起码得先尝试补救措施啊.

@1: 一小时延迟从库
  一小时间隔后重新连上主机把所有的数据全部同步过来,然后立马断开,这个从库会与主库保持1个小时的数据差距. 在搭好的主从同步的从机上执行: 
   mysql> stop slave;
   mysql> change master to master_delay = 1800; #1800s后才同步
   mysql> start slave;
  但这个有个缺点就是: 从库在连上主库进行同步的一小段时间内刚好发生了删库事故或其他update不带条件的灾难,这个时候根本无法恢复. 因此最好开设双份的1小时延迟同步: 即对第一台从机执行一次延时1小时的命令change master to master_delay=3600; 
  过过半小时后再对另一台从机执行change master to master_delay=3600;
那么现在这两台从机就有半小时的同步间隔时间,即使事故发生在第一台从机连接的时候,仍旧有半小时的补救时间. @2.另外就是全量备份 + 增量备份(用硬盘定时拷贝了)

 

搭建mysql主从复制和删库数据恢复策略的更多相关文章

  1. Docker搭建MySQL主从复制

    Docker搭建MySQL主从复制 主从服务器上分别安装Docker 1.1 Docker 要求 CentOS 系统的内核版本高于 3.10 [root@localhost ~]# uname -r ...

  2. MySQL(14)---Docker搭建MySQL主从复制(一主一从)

    Docker搭建MySQL主从复制(一主一从) 上一篇博客写了MYSQL主从复制原理 : MySQL(13)---MYSQL主从复制原理 这篇我们来写 Docker搭建MYSQL主从复制(一主一从) ...

  3. 两主机搭建MySQL主从复制后,show slave status显示:Last_IO_Error: error connecting to master ……

    两台主机A.B搭建mysql主从复制关系(A为master,B为slave)后,在slave上执行show slave status,结果中显示Last_IO_Error: error connect ...

  4. [置顶] 两主机搭建MySQL主从复制后,show slave status显示:Last_IO_Error: error connecting to master ……

    两台主机A.B搭建mysql主从复制关系(A为master,B为slave)后,在slave上执行show slave status,结果中显示Last_IO_Error: error connect ...

  5. Linux CentOS 安装MySql以及搭建MySql主从复制

    前言 在之前的博客中,有过几篇都写了关于mysql在linux下的搭建教程,可能以后还会再写,但是又不想重复在写, 于是便想单独将此抽出来,单独写成一篇博客,并详细记录一些安装过程以及遇到的问题解决办 ...

  6. 基于Docker搭建MySQL主从复制

    摘要: 本篇博文相对简单,因为是初次使用Docker,MySQL的主从复制之前也在Centos环境下搭建过,但是也忘的也差不多了,因此本次尝试在Docker中搭建. 本篇博文相对简单,因为是初次使用D ...

  7. my03_使用空数据库搭建Mysql主从复制

    无数据的主从复制,就搭建一套主从结构的空库,这个是最简单的,先说说这种主从的搭建思路,有利于理解Mysql主从复制1. 安装两套mysql单实例数据库,一个作为主库.一个作为从库:注意要设置两个数据库 ...

  8. 【大型网站技术实践】初级篇:搭建MySQL主从复制经典架构

    一.业务发展驱动数据发展 随着网站业务的不断发展,用户量的不断增加,数据量成倍地增长,数据库的访问量也呈线性地增长.特别是在用户访问高峰期间,并发访问量突然增大,数据库的负载压力也会增大,如果架构方案 ...

  9. MySQL 多实例删库脚本

    DB版本:5.5.14 OS:CentOS 6.3 在测试环境中,在一台服务器上创建多个实例,在每个实例中一个一个删库比较麻烦,因此用下面脚本,可以直接删除所有库,除了系统库以外: #!/bin/ba ...

随机推荐

  1. H5插入视频兼容主浏览器

    插入视频的方法有很多种,但是有一些方法不兼容. 方法1:DW插入视频利用DW插入的视频为flv格式,操作较简单,但是代码复杂,需要浏览器支持flash插件:火狐浏览器需要手动下载flash插件,比较麻 ...

  2. 常见ie6的浏览器兼容bug

    1.文字本身的大小不兼容 同样是font-size:14px的宋体文字,在不同浏览器下占的空间是不一样的, ie下实际占高16px,下留白3px ff 下实际占高17px,上留白1px,下留白3px ...

  3. Eclipse equinox implementation of OSGi

    Bundle package org.osgi.framework; public interface Bundle extends Comparable<Bundle> { int UN ...

  4. Highcharts - Pie Chart

    1. 饼状图(Pie Chart)示例: <div id="container" style="height: 400px"></div> ...

  5. Android studio 配置使用maven

    安装nexus(略) 启动nexus 打开web(admin;admin123) http://127.0.0.1:8081/nexus 创建的demo 1 2 3 对应的本地目录 配置maven / ...

  6. Spring Freamwork 开发初体验

    工具 eclipse 版本:Neon.3 Release (4.6.3) Spring Freamwork 版本:4.0.4.RELEASE 下载地址:http://repo.springsource ...

  7. 浅谈SQL Server中的事务日志(四)----在完整恢复模式下日志的角色

    简介 生产环境下的数据是如果可以写在资产负债表上的话,我想这个资产所占的数额一定不会小.而墨菲定律(事情如果有变坏的可能,无论这种可能性有多小,它总会发生)仿佛是给DBA量身定做的.在上篇文章介绍的简 ...

  8. js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版

    网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;网页可见区域宽: document.body.offset ...

  9. Asp.net网站优化【转】

    阅读目录 开始 配置OutputCache 启用内容过期 解决资源文件升级问题 启用压缩 删除无用的HttpModule 其它优化选项 本文将介绍一些方法用于优化ASP.NET网站性能,这些方法都是不 ...

  10. iOS UI(布局)约束是什么?view1.attr1 = view2.attr2 * multiplier + constant

    /* Create constraints explicitly.  Constraints are of the form "view1.attr1 = view2.attr2 * mul ...