《MysqL应用MysqL学习之数据备份与恢复》要点:
本文介绍了MysqL应用MysqL学习之数据备份与恢复,希望对您有用。如果有疑问,可以联系我们。
MysqL教程读锁问题:数据库(或者某个表)一旦进行读锁 *** 作则影响数据库的写 *** 作所以此时不能对数据库进行写 *** 作.之所以在数据备份的时候进行读锁 *** 作是为了保证备份数据的完整性一致性,在数据备份完成后会自动进行解锁.
MysqL教程更新日志问题:每次备份数据的时候新生成一个日志文件,这样数据库在备份一段时间后突然崩溃可以通过该bin-log日志还原该时间段的数据.数据恢复的步骤:恢复备份的数据+还原最新bin-log日志中的数据
二、使用MysqLdump进行书籍备份MysqL教程MysqLdump:命令将数据库中的数据备份成一个文本文件.表的结构和表中的数据将存储在生成的文本文件中.
MysqL教程MysqLdump命令的工作原理:它先查出需要备份的表的结构,再在文本文件中生成一个CREATE语句.然后,将表中的所有记录转换成一条INSERT语句.然后通过这些语句,就能够创建表并插入数据.
MysqL教程
MysqL教程将test数据库备份到/tmp/MysqL_back/目录下
MysqL教程 [root@localhost tmp]# MysqLdump -uroot -p111111 test -l -F > '/tmp/MysqL_back/test.sql';
MysqL教程参数解读:
MysqL教程1、MysqLdump MysqL数据备份的命令
MysqL教程2、-uroot -p111111 用户名密码
MysqL教程3、test:要备份的数据库名
MysqL教程4、-l:进行读锁控制
MysqL教程5、-F:生成新日志文件
MysqL教程执行该语句后会发现在 /var/lib/MysqL 目录下会生成一个新的bin-log日志 MysqL-bin.000002
MysqL教程6、/tmp/MysqL_back/test.sql :生成备份文件的位置及名称
三、数据恢复MysqL教程1、备份数据的恢复:
MysqL教程 [root@localhost tmp]# MysqL -uroot -p111111 test -v -f</tmp/MysqL_back/test.sql
MysqL教程 -v:查看导入的详细信息
MysqL教程 -f:导入过程中遇到错误时可以skip过,继续执行下面的语句.
MysqL教程2、bin-log日志中数据的还原:
MysqL教程 该日志在/var/lib/MysqL下MysqL-bin.000002日志中所有的记录
MysqL教程 [root@localhost MysqL]# MysqLbinlog --no-defaults MysqL-bin.000002 |MysqL -uroot -p111111 test;
MysqL教程3、还原bin-log日志中指定位置的数据
MysqL教程通过 position位置还原数据
BEGIN /*!*/; # at 175 #170206 22:55:48 server ID 1 end_log_pos 263 @R_404_5962@ thread_ID=17 exec_time=0 error_code=0 use `test`/*!*/; SET TIMESTAMP=1486392948/*!*/; insert into t1 values(10) /*!*/; # at 263 #170206 22:55:48 server ID 1 end_log_pos 290 XID = 178 COMMIT/*!*/; # at 290 #170206 22:55:54 server ID 1 end_log_pos 358 @R_404_5962@ thread_ID=17 exec_time=0 error_code=0 SET TIMESTAMP=1486392954/*!*/; BEGIN /*!*/; # at 358 #170206 22:55:54 server ID 1 end_log_pos 446 @R_404_5962@ thread_ID=17 exec_time=0 error_code=0 SET TIMESTAMP=1486392954/*!*/; insert into t1 values(12) /*!*/; # at 446 #170206 22:55:54 server ID 1 end_log_pos 473 XID = 179 COMMIT/*!*/; # at 473 #170206 22:56:42 server ID 1 end_log_pos 547 @R_404_5962@ thread_ID=17 exec_time=0 error_code=0 SET TIMESTAMP=1486393002/*!*/; truncate t1
MysqL教程还原该bin-log日志中position 位置在 172,473 中的数据(end_log_pos)
MysqL教程[root@localhost MysqL]# MysqLbinlog --no-defaults MysqL-bin.000002 --start-position="175" --stop-position="473"|MysqL -uroot -p111111 test;
MysqL教程4、还原bin-log日志中指定时间段的数据
MysqL教程格式:将3中即可
MysqL教程--start-position="175" 替换为 --start-date="2016-12-30 21:30:34"
MysqL教程--stop-position="473" 替换为 --stop-date="2016-12-30 23:30:34"
每天用心记录一点点.内容也许不重要,但习惯很重要! 总结以上是内存溢出为你收集整理的Mysql应用mysql学习之数据备份与恢复全部内容,希望文章能够帮你解决Mysql应用mysql学习之数据备份与恢复所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)