首页 > 代码库 > mysql学习之旅-数据迁移-备份-恢复

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=http://www.mamicode.com/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学习之旅-数据迁移-备份-恢复