Heim  >  Artikel  >  Datenbank  >  mysql实现增量备份

mysql实现增量备份

WBOY
WBOYOriginal
2016-06-07 16:38:311039Durchsuche

有点要注意 如果你误删了表 想通过这个恢复 必须恢复日志里面有创建表的日志 不然的话是无法回复的 ?就是必须是从你开始创建表的时候就已经记录日志了? 恢复到哪个位置 就按照哪个位置来计算 mysql ?5.0不支持增量备份 增量备份定义 ? ? mysql数据库会以二进



有点要注意 如果你误删了表 想通过这个恢复 必须恢复日志里面有创建表的日志 不然的话是无法回复的 ?就是必须是从你开始创建表的时候就已经记录日志了?


恢复到哪个位置 就按照哪个位置来计算


mysql ?5.0不支持增量备份


增量备份定义


? ? mysql数据库会以二进制形式 自动把用户对mysql数据库的操作 记录到文件 当用户希望恢复的时候可以使用备份文件 进行回复


? ? 增量备份会记录 (dml 语句 建表语句 不会记录select语句)

? ? 记录的 (a 操作语句本身 b 操作的时间 ?c 操作的位置 position)


实例

? ? 配置 my.ini文件 或者 my.conf 启用二进制备份

???log-bin=e:/mysqldb/logbin.log ? ?先设置mysql日志存放位置


? ? 配置好后 再启动模样上去了 就会在备份目录多了2个文件?

? ? logbin.index ?这个是索引文件 有哪些增量备份

????logbin.000001 ? 存放用户对数据库操作的文件


? ? 如果你想看看 这个 里面是什么东西 我们可以使用 mysql的bin目录下面的一个工具查看?

? ? 就是 mysqlbinlog.exe ?这个东西看?

????

? ? 首先用cmd进入 mysql的 bin目录下面 然后执行

? ? mysqlbinlog e:/mysqldb/logbin.000001

????

mysql 对于你的每一次操作 都会记录一次时间 同时 给你分配一个位置 (pos)

换句话说 以后我们恢复 可以根据时间点来恢复 或者根据位置来恢复


比如说 我们把一个表个drop 了 那么我们只要把表恢复到 drop之前就好了?


时间点恢复

? ? 我们可以画个流程图

? ? logbin.000001

? ? insert ...... ? 3 ? ? ? 2013-07-23 17:57:00

? ? update ..... ? 4 ? ?2013-07-23 17:59:00

?????insert ...... ? 100 ? ? ? 2013-07-23 19:57:00

? ? drop ?... ? ? ? ?101 ? ?2013-07-23 20:57:00

????

? ? 恢复的话可以这么写

? ? mysqlbinlog ?--stop-datatime="2013-07-23 20:50:00"?e:/mysqldb/logbin.000001

? ? 上面这句的意思是 一直恢复到?2013-07-23 20:50:00 ?停止

?????mysqlbinlog ?--start-datatime="2013-07-23 20:50:00"?e:/mysqldb/logbin.000001

? ? 上面这句的意思是 从2013-07-23 20:50:00 ?开始恢复


按照位置来恢复

??????? mysqlbinlog ?--stop-position="100"?e:/mysqldb/logbin.000001? |?

????? ? 上面这个语句意思是 恢复到100的位置


真实性恢复

按照位置恢复

mysqlbinlog ?--stop-position=4590?e:/mysqldb/logbin.000001? | mysql -uroot -p

按照时间恢复

mysqlbinlog ?--stop-datetime="2013-07-24 18:17:19"?e:/mysqldb/logbin.000001? | mysql -uroot -p



可以控制从什么时候开始 到什么是结束

mysqlbinlog?--start -position=4? --stop-position=106 yueliangd
ao_binglog.000001 > c:\\test1.txt




在工作中 可以每周一做一个全备份 就是 mysqldump ?

然后 启用我们的增量备份 把过期时间设为 大于等于7天

如果数据库崩溃了 就可以通过时间和位置来恢复









如何关闭 mysql 自动记录日志

找到log-bin=mysql-bin,前面添加#即可。

个别版本需要关闭

binlog_format=mixed前面添加#,否则会出现mysql无法启动。

















作者:ebw123 发表于2013-7-24 22:27:12 原文链接

阅读:109 评论:0 查看评论

mysql实现增量备份

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn