mysql从全库备份中恢复指定的表及mysql备份文件一般加密方法

随着业务上线的时间越来越久,mysql的库也会越来越大,这会导致恢复备份的时间延长,碰到紧急状态,往往会手足无措。对于平时习惯备份全库的同学,当需要恢复某一张表的时候,一般做法是找一个新的mysql,从备份文件恢复整个库,再导出需要恢复的那张表,这样效率很低下,其实我们可以从备份文件中直接提取需要恢复的表数据。

那么如何从全库备份中抽取某张表呢?其实可以用shell命令来提取表数据,shell还是很强大的,废话不多,直接上命令:

第一步,提取建表命令

sed -e '/./{H;$!d;}' -e 'x;/CREATE TABLE `表名`/!d;q' mysqldump.sql(备份文件的文件名)

mysql从全库备份中恢复指定的表及mysql备份文件一般加密方法_第1张图片

第二步,提取表数据

grep 'INSERT INTO `表名`' mysqldump.sql(备份文件的文件名) > table_data.sql

注意:表名 此处的引号是键盘左上角那个(波浪号同一个键位)

第三步,去数据库里建表,然后导入文件里的数据

这样就把整库备份文件里的某一个表恢复到了现网数据库。

此处附上mysql备份文件加密的方法仅供参考
tar -zcf - $DATE --remove-files | openssl des3 -salt -k $PASSWORD | dd of="$DATE".tar.gz

同样附上解压命令

dd if=filename | openssl des3 -d -k $PASSWORD | tar zxf -

你可能感兴趣的:(运维)