mysql恢复数据
1、崩溃恢复:
突然断电、宕机,导致mysql无法正常启动:
(1) 关闭数据库。
(2) Vim /etc/my.cnf 添加:innodb_force_recovery=1 默认为0。
1(SRV_FORCE_IGNORE_CORRUPT):忽略检查到的corrupt页。
2(SRV_FORCE_NO_BACKGROUND):阻止主线程的运行,如主线程需要执行full purge操作,会导致crash。
3(SRV_FORCE_NO_TRX_UNDO):不执行事务回滚操作。
4(SRV_FORCE_NO_IBUF_MERGE):不执行插入缓冲的合并操作。
5(SRV_FORCE_NO_UNDO_LOG_SCAN):不查看重做日志,InnoDB存储引擎会将未提交的事务视为已提交。
6(SRV_FORCE_NO_LOG_REDO):不执行前滚的操作。
(3) 启动mysql,如果启动失败则依次按照1-6顺序配置innodb_force_recovery参数
(4) 做全量备份。
(5) 删除ib_logfile0、ib_logfile1、ibdata1
2、利用二进制日志恢复(前提是二进制日志都在):
(1)利用时间或position进行恢复:
mysqlbinlog --start-positon= --stop-positon= mysql-bin.000022 | mysql -uroot -p
mysqlbinlog --start-datetime="2016-9-25 22:01:08" --stop-datetime="2019-9-25 22:09:46" | mysql -uroot -p
(2)利用二进制日志转换成为.sql文件恢复;
mysqlbinlog --base64-output=decode-rows -v mysql-bin.000012 > ~/bin.sql
mysql -uroot -p < ~/bin.sql
3、利用历史备份+二进制日志还原:
(1)导入历史备份数据:
mysql -uroot -p123456 < all.sql
这时已经还原为备份时的数据库状态。
(2)找到历史备份数据的时间点,比如历史数据是昨晚0点备份的,那么就是0点。然后从二进制日志中找到昨晚0点的数据,利用mysqlbinlog命令进行还原。
mysqlbinlog --start-positon= --stop-positon= mysql-bin.000022 | mysql -uroot -p
mysqlbinlog --start-datetime="2016-9-25 22:01:08" --stop-datetime="2019-9-25 22:09:46" | mysql -uroot -p
4、没有备份的历史数据的时候,可以只利用二进制日志恢复。前提是二进制日志必须都存在。
(1)做一个slave机,并启动服务。
(2)找到已经删除了或者清空了表的建表二进制日志名称。如:该表建表语句在mysql-bin.000009。找到删除操作前的position,也就是DROP或TRUNCATE语句前一个的position,如:语句在:mysql-bin.000061 position在73154
(3)在slave机上创建好数据库,然后change master to master_log_file='mysql-bin.000009',master_log_pos=107,master_port=3306;
START SLAVE UNTIL MASTER_LOG_FILE='mysql-bin.000061',MASTER_LOG_POS=73154; 开始启动slave并指定二进制日志的终点。
mysql恢复数据的更多相关文章
- mysql 恢复数据时中文乱码
mysql恢复数据时中文乱码,解决办法. 用source命令导入mysql数据库怎么设置中文编码 1.导出数据时指定编码在导出mysql sql执行文件的时候,指定一下编码格式: mysqldump ...
- mysql 恢复数据
前提:保存了需要恢复数据库的文件 .frm 和 .ibd 文件 条件:InnoDB 类型的 恢复表结构1.新建一个数据库--新建一个表,表名和列数和需要恢复数据库相同2.停止mysql服务器 serv ...
- mysql学习(4)-mysqldump备份和恢复数据
背景 最近在公司做数据迁移方面的工作,使用mysql数据库在测试环境模拟数据迁移,在迁移测试的过程中需要做数据备份和恢复 mysql数据备份和恢复比较简单,可以选择mysqldump工具,这里简单提一 ...
- 解说mysql之binlog日志以及利用binlog日志恢复数据
众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废 ...
- 不小心删除数据--利用MySQL的binlog恢复数据
MySQL Binary Log也就是常说的bin-log, ,是mysql执行改动产生的二进制日志文件,其主要作用有两个: * 数据回复 * 主从数据库.用于slave端执行增删改,保持与maste ...
- 【MySQL】InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据
参考:http://my.oschina.net/sansom/blog/179116 参考:http://www.jb51.net/article/43282.htm 注意!此方法只适用于innod ...
- mysql使用二进制日志恢复数据
一.恢复到某个二进制文件 1.开启二进制日志 在mysqld的配置节点下添加如下配置 log-bin="E:/Mysql57BinLog/binlog"(windows下的路径,l ...
- MySql在生产环境中是用mysqldump还是xtrabackup备份和恢复数据
如题,究竟该使用mysqldump还是xtrabackup,要说用,两个都能备份,都支持热备,但是生产环境我们要考虑的是效率,就是不管备份还是恢复,都要快,要稳定. 之前我在维护mysql数据库的时候 ...
- MySQL学习(三)主备分库分表和恢复数据 --- 2019年2月
1.MySQL主备切换 readonly 设置对超级(super)权限是无效的,而用于同步更新的线程,就拥有超级权限. 建议在做主备数据库的时候,将备用数据库设置为只读.(反向用readonly来判断 ...
随机推荐
- SVG动画 -- 描边动画
代码说明:纯CSS实现,无JS <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
- pyrcharm 编程规范
正常变量赋值, 等号左右各一个空格: 参数赋值, 等号左右都没有空格: 注释#后面一个空格 类定义和函数定义,前后各两行,而在类的里面定义成员函数,只需要空一行 文件最后一个空行 变量.函数.类最好都 ...
- hbase-shell + hbase的java api
本博文的主要内容有 .HBase的单机模式(1节点)安装 .HBase的单机模式(1节点)的启动 .HBase的伪分布模式(1节点)安装 .HBase的伪分布模式(1节点)的启动 .HBas ...
- deque双向队列
对于双向队列,与队列queue以及vector容器的区别就在于,名字不同,也就是它是双向的,可以从头开始操作,也可以从末尾开始操作. 双向队列的常用方法跟队列queue差不多: 头文件: #inclu ...
- 写一个类继承socket时遇到的问题(TCP)
主要为题出在服务器端的accept()函数,他返回两个参数,一个套接字和一个客户端的ip和端口组成的元组. 问题就出在这个套接字这里,我们继承了socket这个类,这个套接字创建的时候是通过socke ...
- Educational Codeforces Round 46 (Rated for Div. 2) C. Covered Points Count
Bryce1010模板 http://codeforces.com/problemset/problem/1000/C 题意:问你从[l,r]区间的被多少条线覆盖,列出所有答案. 思路:类似括号匹配的 ...
- Chips CodeForces - 333B
Chips CodeForces - 333B 题意:有一个n*n的棋盘,其中有m个格子被禁止.在游戏开始前要将一些芯片(?)放到四条边上(但不能是角上).游戏开始后,每次操作将每一个芯片移动到它四周 ...
- android 7.0 应用间文件共享FileProvider
1.官方教程 Android 7.0 以后安全系数提高,应用间文件共享要使用FileProvider.原来的 file:/// Uri 替换为 content://Uri https://devel ...
- E. Anton and Tree 数组开大点
http://codeforces.com/contest/734/problem/E 看了题解,缩点 + 树的直径. 然而一直wa14. 注意到, 缩点后重建图,在5的时候,5和6建了一条边,然后6 ...
- 使用css3 制作switch开关
使用css3来实现switch开关的效果: html代码: <!--switch开关--><div class="switch-btn"> <inpu ...