博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
14.18 InnoDB Backup and Recovery 备份和恢复:
阅读量:4486 次
发布时间:2019-06-08

本文共 2634 字,大约阅读时间需要 8 分钟。

14.18 InnoDB Backup and Recovery  备份和恢复:安全数据库管理的关键是 做定期的备份,依赖你的数据卷,MySQL server的数量和数据库的负载,你可以使用那些技术,单独的或者组合:使用MySQL  企业版进行热备份; 当关闭Mysql 数据库的时候通过拷贝文件进行冷备份,物理备份对于快速操作(特别对于恢复)逻辑备份对于小的数据量或者恢复schema对象的结构Hot Backups mysqlbackup 命令, MySQL 企业备份组件部分,让你备份运行的MySQL 实例, 包含InnoDB和MyISAM 表,以最小的中断操作来产生一个一致性数据库快照。当mysqlbackup  是复制InnoDB 表,读和写在InnoDB和MyISAM 表是可以继续的。在复制MyISAM表的时候,读(但是不是写) 到那些表是允许的。MySQL 企业备份可以创建压缩的备份文件,备份表和数据库的子集。和MySQL的binary log的组合,用户可以执行按时间点恢复。MySQL Enterprise Backup  是MySQL Enterprise的一部分Cold Backups 冷备份:如果你可以关闭你的MySQL server, 你可以做一个binary backup 所有的文件用于管理它的表,使用下面的过程:1. 做一个慢的MySQL server 关闭和确保它停止没有报错2.复制所有的InnoDB 数据文件(ibdata文件和.ibd文件)到一个安全的地方3.复制所有的.frm 文件对于InnoDB 表到安全的地方4.复制所有的InnoDB log files(ib_logfile files)到一个安全的地方5.复制你的my.cnf 配置文件或者文件到安全的地方选择备份类型:除了前面描述的2进制备份, 使用mysqldump 定期的进行dump.一个binary 文件可能会损坏在你没有注意的时候Dumped tables  是存储在文本文件,它们是人可读的,因此发现表腐败变的很容易。此外,由于格式更简单,严重的数据损坏的机会会更小。mysqldump 也可以有一个 --single-transaction option来做一个一致性快照在不锁定其他的客户端复制工作,你可以使用MySQL 复制功能来保留你的数据库的拷贝Performing Recovery恢复你的InnoDB 数据库到现在从2进制备份的时间点,你必须让你的MySQL server 的binary logging 打开,甚至在备份前。为了完成基于时间点的恢复在恢复一个备份,你可以应用binary log的改变 在备份完成之后为了从一个MySQL server的crash 恢复, 唯一的需求时重启它。InnoDB 会自动的检查logs和执行一个数据库的前滚到现在InnoDB 自动回滚没有提交的事务, 在crash时在recovery期间,mysqld 显示输出这样的东西:InnoDB: Database was not shut down normally.InnoDB: Starting recovery from log files...InnoDB: Starting log scan based on checkpoint atInnoDB: log sequence number 0 13674004InnoDB: Doing recovery: scanned up to log sequence number 0 13739520InnoDB: Doing recovery: scanned up to log sequence number 0 13805056InnoDB: Doing recovery: scanned up to log sequence number 0 13870592InnoDB: Doing recovery: scanned up to log sequence number 0 13936128...InnoDB: Doing recovery: scanned up to log sequence number 0 20555264InnoDB: Doing recovery: scanned up to log sequence number 0 20620800InnoDB: Doing recovery: scanned up to log sequence number 0 20664692InnoDB: 1 uncommitted transaction(s) which must be rolled backInnoDB: Starting rollback of uncommitted transactionsInnoDB: Rolling back trx no 16745InnoDB: Rolling back of trx no 16745 completedInnoDB: Rollback of uncommitted transactions completedInnoDB: Starting an apply batch of log records to the database...InnoDB: Apply batch completedInnoDB: Startedmysqld: ready for connections如果你的数据库变的损坏或者磁盘故障,你必须使用备份来执行一个recovery.在腐败的情况下,首先找到一个备份是不损坏的,在恢复基础备份后,做一个基于时间点的恢复从binary log files 使用mysqlbinlog和mysql 来恢复在备份后的改变在某些数据库腐败的情况下,它是足够的只是转储,drop和重建创建一个或者一些腐败的表。你可以使用CHECK TABLE SQL语句来检查一个表是否是腐败的,虽然CHECK TABLE 自然的检测每种可能的腐败。在某些情况下,明显的数据库页腐败实际上由于操作系统腐败它自己的文件cache,数据在磁盘可能是好的。

转载于:https://www.cnblogs.com/zhaoyangjian724/p/6199673.html

你可能感兴趣的文章
libevent源码深度剖析一
查看>>
SSH隧道技术简介
查看>>
PAT乙级1025
查看>>
找的好网站(macdow语法,扫描二维码,)
查看>>
浏览器插件开发遇到的问题
查看>>
JS之正则表达式
查看>>
EF Core 1.0 和 SQLServer 2008 分页的问题
查看>>
BZOJ1798: [Ahoi2009]Seq 维护序列seq
查看>>
PS--人物黄金色调
查看>>
开启ucosii的移植之旅
查看>>
推荐一款能写原创诗词的小程序
查看>>
Codeforces Round #496 (Div. 3) ABCDE1
查看>>
Bundle display name 与 Bundle name 的区别
查看>>
MySQL创建外键关联错误 - errno:150
查看>>
谈 jquery中.band() .live() .delegate() .on()的区别
查看>>
POJ 3267 The Cow Lexicon 简单DP
查看>>
线性代数(矩阵乘法):NOI 2007 生成树计数
查看>>
问题 B: 合并车厢
查看>>
linux 下tomcat 开机自启动
查看>>
201521123018 《Java程序设计》第11周学习总结
查看>>