小編給大家分享一下從MySQL DB轉(zhuǎn)儲(chǔ)文件中提取表備份的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的靜樂網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
mysqldump是mysql/mariadb為備份數(shù)據(jù)庫和表提供的實(shí)用程序。一般來說,我們會(huì)定期對(duì)數(shù)據(jù)庫進(jìn)行完整的轉(zhuǎn)儲(chǔ)并保存。但有時(shí)我們需要從備份中恢復(fù)單個(gè)或兩個(gè)表。問題是如何從完整備份文件中恢復(fù)特定表?本篇文章將介紹從完整的數(shù)據(jù)庫備份文件中提取表備份。此外,我們還可以在每個(gè)表中提取單個(gè)文件中的所有表備份。
第1步:下載MySQL dump拆分腳本
在單獨(dú)的表特定文件備份中拆分完整的mysqldump數(shù)據(jù)庫備份文件。創(chuàng)建一個(gè)名為splitdb.sh的文件,并在其中復(fù)制下面的腳本。
#!/bin/bash #### # Split MySQL dump SQL file into one file per table # based on http://blog.tty.nl/2011/12/28/splitting-a-database-dump #### if [ $# -lt 1 ] ; then echo "USAGE $0 DUMP_FILE [TABLE]" exit fi if [ $# -ge 2 ] ; then csplit -s -ftable $1 "/-- Table structure for table/" "%-- Table structure for table `$2`%" "/-- Table structure for table/" "%40103 SET TIME_ZONE=@OLD_TIME_ZONE%1" else csplit -s -ftable $1 "/-- Table structure for table/" {*} fi [ $? -eq 0 ] || exit mv table00 head FILE=`ls -1 table* | tail -n 1` if [ $# -ge 2 ] ; then mv $FILE foot else csplit -b '%d' -s -f$FILE $FILE "/40103 SET TIME_ZONE=@OLD_TIME_ZONE/" {*} mv ${FILE}1 foot fi for FILE in `ls -1 table*`; do NAME=`head -n1 $FILE | cut -d$'x60' -f2` cat head $FILE foot > "$NAME.sql" done rm head foot table*
第2步:從dump中提取所有表
對(duì)于這個(gè)例子,有一個(gè)名為mydb.sql的轉(zhuǎn)儲(chǔ)文件,要想在每個(gè)表的小備份中拆分。為此,需要?jiǎng)?chuàng)建了一個(gè)新目錄/ opt / splitdb,并在此目錄中復(fù)制了名為splitDB.sh的腳本?,F(xiàn)在使用以下命令提取單個(gè)備份文件中的所有表。
#cd / opt / splitdb #sh splitDB.sh mydb.sql
第3步:從dump中提取單個(gè)表
如果我們只想提取一個(gè)表,我們可以使用如下命令。例如,要想只拆分名為my_tbl1和my_tbl2的表。它將在當(dāng)前目錄中提取名為my_tbl1.sql和my_tbl2.sql的備份。
#cd / opt / splitdb #sh splitDB.sh mydb.sql my_tbl1 #sh splitDB.sh mydb.sql my_tbl2
看完了這篇文章,相信你對(duì)從MySQL DB轉(zhuǎn)儲(chǔ)文件中提取表備份的方法有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!