快捷搜索:
来自 网络数据库 2019-11-17 13:47 的文章
当前位置: 67677新澳门手机版 > 网络数据库 > 正文

mysql学习之数据备份与恢复

该文使用mysql5.5 centos6.5 64个人(自己使用rpm安装mysql,数据库的装置目录暗许卡塔尔国

后生可畏、数据备份注意事项

读锁难题:数据库(也许有个别表卡塔 尔(英语:State of Qatar)风流倜傥旦举行读锁操作则影响数据库的写操作所以这时无法对数据库实行写操作。之所以在数据备份的时候进行读锁操作是为着确定保证备份数据的完整性大器晚成致性,在数据备份完毕后会自动实行解锁。

履新日志难点:每一回备份数据的时候新生成三个日记文件,那样数据库在备份一段时间后忽地崩溃能够经过该bin-log日志还原该时间段的多寡。数据苏醒的步子:复苏备份的多寡 还原最新bin-log日志中的数据

二、使用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 :生成备份文件的职位及称号

三、数据复苏

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 263     Query    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     Query    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     Query    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     Query    thread_id=17    exec_time=0    error_code=0
SET 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="2016-12-30 21:30:34"

--stop-position="473" 替换为 --stop-date="2016-12-30 23:30:34"

本文由67677新澳门手机版发布于网络数据库,转载请注明出处:mysql学习之数据备份与恢复

关键词: