失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 详解mysql之数据备份与恢复

详解mysql之数据备份与恢复

时间:2020-01-26 18:11:43

相关推荐

详解mysql之数据备份与恢复

数据库|mysql教程

mysql,备份,恢复

数据库-mysql教程

该文使用mysql5.5 centos6.5 64位(本人使用rpm安装mysql,数据库的安装目录默认)

分类信息网.net源码,ubuntu连接自动断,tomcat怎么一开就退,爬虫模拟登录lt,php网站程序开发文档介绍内容,seo训练教学lzw

A、数据备份注意事项

读锁问题:数据库(或者某个表)一旦进行读锁操作则影响数据库的写操作所以此时不能对数据库进行写操作。之所以在数据备份的时候进行读锁操作是为了保证备份数据的完整性一致性,在数据备份完成后会自动进行解锁。

前端管理系统源码,ubuntu的at命令,爬虫深度和宽度,php将数据写入页面中单元格,seo灰色面试lzw

更新日志问题:每次备份数据的时候新生成一个日志文件,这样数据库在备份一段时间后突然崩溃可以通过该bin-log日志还原该时间段的数据。数据恢复的步骤:恢复备份的数据+还原最新bin-log日志中的数据

基于.net开发的系统源码下载,vscode接收输入值,ubuntu界面刷新,tomcat9外网,爬虫 寄养,php 手机发送短信,惠州快速seo优化公司,网站源码及数据库下载地址,手机web端模板下载地址lzw

B、使用mysqldump进行书籍备份

mysqldump:命令将数据库中的数据备份成一个文本文件。表的结构和表中的数据将存储在生成的文本文件中。

mysqldump命令的工作原理:它先查出需要备份的表的结构,再在文本文件中生成一个CREATE语句。然后,将表中的所有记录转换成一条INSERT语句。然后通过这些语句,就能够创建表并插入数据。

将test数据库备份到/tmp/mysql_back/目录下

[root@localhost tmp]# mysqldump -uroot -p111111 test -l -F > /tmp/mysql_back/test.sql;

参数解读:

1、mysqldump mysql数据备份的命令

2、-uroot -p111111 用户名密码

3、test:要备份的数据库名

4、-l:进行读锁控制

5、-F:生成新日志文件

执行该语句后会发现在 /var/lib/mysql 目录下会生成一个新的bin-log日志 mysql-bin.000002

6、/tmp/mysql_back/test.sql :生成备份文件的位置及名称

C、数据恢复

1、备份数据的恢复:

[root@localhost tmp]# mysql -uroot -p111111 test -v -f</tmp/mysql_back/test.sql

-v:查看导入的详细信息

-f:导入过程中遇到错误时可以skip过,继续执行下面的语句。

2、bin-log日志中数据的还原:

该日志在/var/lib/mysql下mysql-bin.000002日志中所有的记录

[root@localhost mysql]# mysqlbinlog –no-defaults mysql-bin.000002 |mysql -uroot -p111111 test;

3、还原bin-log日志中指定位置的数据

通过 position位置还原数据

BEGIN/*!*/;# at 175#170206 22:55:48 server id 1 end_log_pos 263Query thread_id=17 exec_time=0 error_code=0use `test`/*!*/;SET TIMESTAMP=1486392948/*!*/;insert into t1 values(10)/*!*/;# at 263#170206 22:55:48 server id 1 end_log_pos 290Xid = 178COMMIT/*!*/;# at 290#170206 22:55:54 server id 1 end_log_pos 358Query thread_id=17 exec_time=0 error_code=0SET TIMESTAMP=1486392954/*!*/;BEGIN/*!*/;# at 358#170206 22:55:54 server id 1 end_log_pos 446Query thread_id=17 exec_time=0 error_code=0SET TIMESTAMP=1486392954/*!*/;insert into t1 values(12)/*!*/;# at 446#170206 22:55:54 server id 1 end_log_pos 473Xid = 179COMMIT/*!*/;# at 473#170206 22:56:42 server id 1 end_log_pos 547Query thread_id=17 exec_time=0 error_code=0SET TIMESTAMP=1486393002/*!*/;truncate t1

还原该bin-log日志中position 位置在 172,473 中的数据(end_log_pos)

[root@localhost mysql]# mysqlbinlog –no-defaults mysql-bin.000002 –start-position=”175″ –stop-position=”473″|mysql -uroot -p111111 test;

4、还原bin-log日志中指定时间段的数据

格式:将3中即可

–start-position=”175″ 替换为 –start-date=”-12-30 21:30:34″

–stop-position=”473″ 替换为 –stop-date=”-12-30 23:30:34″

如果觉得《详解mysql之数据备份与恢复》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。