本帖最后由 牵网线的 于 2022-8-18 12:06 编辑
- mysqldump -u root -p test>/home/bak/test.sql
复制代码此时,已成功将数据库test备份到/home/bak目录下的test.sql中。
二. 还原整个数据库(如: test):
1.第一种方法
- mysql -u root -p test < /home/bak/test.sql
复制代码
2.第二种方法 先登录mysql数据库,输入命令 mysql -u root -p,输入密码即可. 再使用数据库test, use test; 导入备份文件. source /home/bak/test.sql;
三.恢复全备数据库中某张表 恢复思路: 我们用全量备份+binlog备份,恢复t1表,需要处理全备,在全备中截取create.sql+insert.sql+binlog.sql
在全备中截取建表语句(路径根据自己的修改) - sed -n '/CREATE TABLE `t1` /,/\;/p' /data/backup/all.sql >/data/backup/create.sql
复制代码
在全备中截取插入语句(路径根据自己的修改) - grep -i 'INSERT INTO `t1`' /data/backup/all.sql >/data/backup/insert.sql
复制代码
在全备中截取binlog(路径根据自己的修改) 在全备all.sql中查找binlog文件名和起点 查找binlog最后位置点,用mysqlbinlog解析日志,找到drop之前最后操作的位置点 - mysqlbinlog mysql_bin.000007
复制代码
截取binlog的日志(路径根据自己的修改) - mysqlbinlog --skip-gtids --start-position=1775 --stop-position=2152 /data/3306/log/mysqlbinlog/mysql_bin.000007> /data/backup/binlog.sql
复制代码
恢复数据(create.sql+insert.sql+binlog.sql) - use db01;
- set sql_log_bin=0;
- source /data/backup/create.sql
- source /data/backup/insert.sql
- commit;
- source /data/backup/binlog.sql
- set sql_log_bin=1;
复制代码
|