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

备份前使用FLUSH TABLES;更新事物

备份命令

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的恢复到制定时间点

查看binlog情况,ON为开启

mysql> show variables like 'log_bin';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| log_bin       | ON    |

+---------------+-------+

1 row in set, 1 warning (0.02 sec)

查看binlog清单

mysql> show binary logs;

+-----------------+-----------+

| Log_name        | File_size |

+-----------------+-----------+

| data-bin.000001 |       154 |

+-----------------+-----------+

1 row in set (0.00 sec)

比如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,

用use d1

source   log1.txt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值