搭建mysql主从复制和删库数据恢复策略
搭建主从复制
主机:
[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主从复制和删库数据恢复策略的更多相关文章
- Docker搭建MySQL主从复制
Docker搭建MySQL主从复制 主从服务器上分别安装Docker 1.1 Docker 要求 CentOS 系统的内核版本高于 3.10 [root@localhost ~]# uname -r ...
- MySQL(14)---Docker搭建MySQL主从复制(一主一从)
Docker搭建MySQL主从复制(一主一从) 上一篇博客写了MYSQL主从复制原理 : MySQL(13)---MYSQL主从复制原理 这篇我们来写 Docker搭建MYSQL主从复制(一主一从) ...
- 两主机搭建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 ...
- [置顶] 两主机搭建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 ...
- Linux CentOS 安装MySql以及搭建MySql主从复制
前言 在之前的博客中,有过几篇都写了关于mysql在linux下的搭建教程,可能以后还会再写,但是又不想重复在写, 于是便想单独将此抽出来,单独写成一篇博客,并详细记录一些安装过程以及遇到的问题解决办 ...
- 基于Docker搭建MySQL主从复制
摘要: 本篇博文相对简单,因为是初次使用Docker,MySQL的主从复制之前也在Centos环境下搭建过,但是也忘的也差不多了,因此本次尝试在Docker中搭建. 本篇博文相对简单,因为是初次使用D ...
- my03_使用空数据库搭建Mysql主从复制
无数据的主从复制,就搭建一套主从结构的空库,这个是最简单的,先说说这种主从的搭建思路,有利于理解Mysql主从复制1. 安装两套mysql单实例数据库,一个作为主库.一个作为从库:注意要设置两个数据库 ...
- 【大型网站技术实践】初级篇:搭建MySQL主从复制经典架构
一.业务发展驱动数据发展 随着网站业务的不断发展,用户量的不断增加,数据量成倍地增长,数据库的访问量也呈线性地增长.特别是在用户访问高峰期间,并发访问量突然增大,数据库的负载压力也会增大,如果架构方案 ...
- MySQL 多实例删库脚本
DB版本:5.5.14 OS:CentOS 6.3 在测试环境中,在一台服务器上创建多个实例,在每个实例中一个一个删库比较麻烦,因此用下面脚本,可以直接删除所有库,除了系统库以外: #!/bin/ba ...
随机推荐
- 1.zookeeper的安装
1.解压zk压缩包 tar -zxvf (zk压缩包路径名) -C (解压目标目录路径) 2.在zk解压目录下新建data文件夹 mkdir data 3.在data文件夹下新建myid vi myi ...
- html-标题标签、水平线标签和特殊字符
标题标签 <h1></h1> <h2></h2> ...... <h6></h6> 从h1到h6,大小是依次变小,同时会自动换 ...
- scss-比较运算符
与JavaScript类似,scss中也有比较运算符,下面就分别做一下介绍. 一.==相等和!=不相等运算符: 此运算符用来判断两个操作数是否相等. 特别说明: 上面两个运算符,支持类似于JavaSc ...
- CSS的两种格式化上下文:BFC和IFC
CSS的两种格式化上下文 文章包含很多个人理解,如果错误,欢迎指出~ 在看本文之前,你要对CSS的盒子模型,Block-Level元素,Inline-Level元素有所了解,具体可参考CSS的 ...
- PHP性能检测与优化—XHProf 数据阅读
PHP性能检测与优化—XHProf 数据阅读 一. 效果如下 请求总揽 函数调用情况 二. 参数含义 Inclusive Time 包括子函数所有执行时间 ...
- Eclipse中搭建Android开发环境
一.搭建Android开发环境 准备工作:下载Eclipse.JDK.Android SDK.ADT插件 下载地址:Eclipse:http://www.eclipse.org/downloads/ ...
- 【Leetcode】【Easy】Length of Last Word
Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the l ...
- 探索grep命令
grep是linux的一款搜索工具,基本啥linux版本都有自带此工具.下面部分参数若没有说明,表示功力不够,理解不了. 选择匹配器 -E 正则表达式(相当于egrep命令) -F 将pattern当 ...
- poj 1753、2965枚举
1753题目链接 题目大意: 一个4乘4的棋盘,上面放满了正反两面分别为黑和白的棋子,翻转一个棋子会让这个棋子上下左右的棋子也翻转,给定一个初始状态,求使所有棋子颜色相同所需的最少翻转次数. 解题思路 ...
- SAP HANA Hint简介
我发现Google和百度上关于HANA DB Hint的中文介绍比较少,所以就写了这一篇.本文部分内容来自SAP note 2142945 – FAQ: SAP HANA Hints. 什么是SAP ...