mysql從全庫備份中恢復指定的表及mysql備份文件一般加密方法

隨着業務上線的時間越來越久,mysql的庫也會越來越大,這會導致恢復備份的時間延長,碰到緊急狀態,往往會手足無措。對於平時習慣備份全庫的同學,當需要恢復某一張表的時候,一般做法是找一個新的mysql,從備份文件恢復整個庫,再導出需要恢復的那張表,這樣效率很低下,其實我們可以從備份文件中直接提取需要恢復的表數據。

那麼如何從全庫備份中抽取某張表呢?其實可以用shell命令來提取表數據,shell還是很強大的,廢話不多,直接上命令:

第一步,提取建表命令

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

這裏寫圖片描述

第二步,提取表數據

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 -

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章