MySQL使用全庫備份數(shù)據(jù)恢復(fù)單表數(shù)據(jù)的方法
前言
備份數(shù)據(jù)庫時,采用了全庫備份,但是因?yàn)槟承┰蛐枰貪L一個表的數(shù)據(jù)到備份數(shù)據(jù)庫上,如果回滾整個庫就比較費(fèi)時間,因?yàn)榭赡苓@個表只有幾十M,但是其它表可能有十幾上百G,這時候就需要將需要恢復(fù)的表提取出來了
我們在實(shí)際工作中都遇到過這種情況,一個MySQL實(shí)例中可能有多個database。而我們備份時,通常采用完全備份,將所有database都備份到一個文件中。
但是,偶爾會遇到只恢復(fù)一個database或者一個表的情況。怎么解決呢?
現(xiàn)在有備份庫fdcsqlmysql-2018_11_30-03_00_01.sql,里面有多張表,現(xiàn)在需要恢復(fù)其中fdc_document這張表的數(shù)據(jù)
提取建表語句
sed -e '/./{H;$!d;}' -e 'x;/CREATE TABLE `表名`/!d;q' mysqldump.sql(備份文件的文件名)
sed -e '/./{H;$!d;}' -e 'x;/CREATE TABLE `fdc_document`/!d;q' fdcsqlmysql-2018_11_30-03_00_01.sql DROP TABLE IF EXISTS `fdc_document`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `fdc_document` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '文檔ID', `uid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '用戶ID', `name` char(40) NOT NULL DEFAULT '' COMMENT '標(biāo)識', ... ... ... `entrust_rule` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT ' 經(jīng)紀(jì)人點(diǎn)擊是否和用戶簽委托協(xié)議:1為有;0為沒有', `audit` tinyint(3) NOT NULL DEFAULT '0' COMMENT '審核:0為未審核;1為圖片已審核;2為描述已審核;3為圖片和描述都已審核', PRIMARY KEY (`id`), KEY `idx_area_house` (`partition`,`category_id`,`status`,`is_off`) USING BTREE, KEY `idx_model_house` (`model_id`,`status`,`is_off`) USING BTREE, KEY `idx_community_house` (`community_id`,`estate`,`status`,`is_off`) USING BTREE, KEY `idx_uid_house` (`uid`,`model_id`,`is_off`) USING BTREE, KEY `idx_pid_house` (`id`,`pid`,`status`,`is_off`) USING BTREE, KEY `is_video` (`is_video`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=211138 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */;
提取表數(shù)據(jù)
grep 'INSERT INTO表名' mysqldump.sql(備份文件的文件名) > table_data.sql
這里應(yīng)該執(zhí)行grep 'INSERT INTOfdc_document' fdcsqlmysql-2018_11_30-03_00_01.sql > document.sql
執(zhí)行完后會得到文件document.sql,這就是需要的單獨(dú)的表文件,就可以正常恢復(fù)表數(shù)據(jù)了
建庫建表
先創(chuàng)建數(shù)據(jù)庫,再根據(jù)上面的SQL語句創(chuàng)建表fdc_document
導(dǎo)入表數(shù)據(jù)
MySQL [document]> souce /data/backup/mysql/document.sql
OK,完工!
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
連接MySQL出現(xiàn)Host is not allowed to con
這篇文章主要給大家介紹了連接MySQL出現(xiàn)Host is not allowed to connect to this MySQL server 解決方法,文中有詳細(xì)的解決步驟,需要的朋友可以參考下2023-08-08MySQL數(shù)據(jù)庫show processlist指令使用解析
這篇文章主要介紹了MySQL數(shù)據(jù)庫show processlist指令使用解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11MySQL 遷移后無法快速導(dǎo)數(shù)據(jù)問題解決
這篇文章主要為大家介紹了MySQL 遷移后無法快速導(dǎo)數(shù)據(jù)問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10將 Ghost 從 SQLite3 數(shù)據(jù)庫遷移到 MySQL 數(shù)據(jù)庫
如果網(wǎng)站流量小,直接使用 Ghost 默認(rèn)的 SQLite 數(shù)據(jù)庫還是很方便的,能夠省去安裝、配置數(shù)據(jù)庫的繁瑣步驟。但是,隨著網(wǎng)站流量的增加, SQLite 就慢慢頂不住了,這時最好的選擇就是使用 MySQL 數(shù)據(jù)庫。2014-07-07mysql學(xué)習(xí)筆記之完整的select語句用法實(shí)例詳解
這篇文章主要介紹了mysql學(xué)習(xí)筆記之完整的select語句用法,結(jié)合實(shí)例形式詳細(xì)分析了mysql select語句各種常見參數(shù)、使用方法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04Mysql復(fù)制表結(jié)構(gòu)、表數(shù)據(jù)的方法
這篇文章主要介紹了Mysql復(fù)制表結(jié)構(gòu)、表數(shù)據(jù)的方法,需要的朋友可以參考下2015-10-10