mysql学习之旅-数据迁移-备份-恢复

Posted Yunier

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql学习之旅-数据迁移-备份-恢复相关的知识,希望对你有一定的参考价值。

1、数据迁移

将/tmp/t3.txt中的数据导入到t3表中,数据以逗号为分割符

load data infile ‘/tmp/t3.txt’ into table t3 fields terminated by ‘,‘;

将table2表中的数据导出为文件data.txt,以逗号为分隔符

SELECT * INTO OUTFILE ‘data.txt‘

->     FIELDS TERMINATED BY ‘,‘

->     FROM table2;

  #####在mysql命令行内执行   ?  select     查看select命令的帮助信息

 

2、逻辑备份

查看mysqldump的帮助,使用方法

mysqldump --help

备份命令

mysqldump -uroot -p d1 > /tmp/d1.sql

恢复命令,要先create 数据库 d1

mysql -uroot -p d1 < /tmp/d1.sql

在操作系统命令窗口执行sql语句的方式

mysql -uroot -p d1 -e ‘show tables;‘

 

 3、物理备份

先停止服务

cp data文件夹

如果出现问题需要恢复就把备份的文件夹 重命名为data放到该放的位置

要修改文件夹的属主属组为原来的属主属组,比如mysql:mysql

chown -R mysql:mysql data

再启动已经就没问题了,而且数据已经恢复

 

4、基于binlog的恢复到制定时间点

比如7点时,进行了数据库的mysqldump的备份

mysqldump -uroot -p d1 --master-data=2 > d1-7.sql

之后,在d1库中又建了两张表,t4和t5

但是在9点的时候,有人不小心把t4表删除掉了

现在要求数据库恢复到t5,t4刚创建时候的状态

恢复

先看dump备份时,日志走到了哪里?

MASTER_LOG_FILE=‘mysql-bin-0000009‘       MASTER_LOG_POS=325

用mysqlbinlog解析mysql-bin-000009  

找到时间点at  325,拆分出日志文件

mysqlbinlog mysql-bin-000009  --start-position=325 --stop-position=511 > log1.txt

检查日志是否符合要求,用用cat log1.txt

使用拆分的日志文件restore

 

以上是关于mysql学习之旅-数据迁移-备份-恢复的主要内容,如果未能解决你的问题,请参考以下文章

mysql学习之旅-数据库自动备份-测试环境搭建

MySQL的学习之旅

python的学习之旅---Mysql数据库

Python学习之旅—Mysql数据库之数据类型和约束

mysql学习之旅-日志

Redis学习之旅--持久化