新聞中心
數(shù)據(jù)庫是企業(yè)重要的數(shù)據(jù)存儲(chǔ)手段,而數(shù)據(jù)的安全也是企業(yè)發(fā)展和運(yùn)營的關(guān)鍵。因此,備份以及還原數(shù)據(jù)至關(guān)重要,尤其是在遇到了一些不可避免的災(zāi)難時(shí),這些災(zāi)難包括硬件損壞、人為破壞、網(wǎng)絡(luò)攻擊等等。在這種情況下,有一個(gè)可靠的備份還原工具是必要的,而mssql數(shù)據(jù)庫備份還原工具正是一個(gè)不可或缺的工具。

創(chuàng)新互聯(lián)從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元寶豐做網(wǎng)站,已為上家服務(wù),為寶豐各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220
MSSQL數(shù)據(jù)庫是微軟公司所開發(fā)的一款重要的數(shù)據(jù)庫軟件。隨著企業(yè)數(shù)據(jù)量的不斷增加,維護(hù)數(shù)據(jù)的安全性以及完整性變得尤為重要。其中,數(shù)據(jù)備份和還原是非常關(guān)鍵的一環(huán)。在備份和還原過程中,我們需要保證數(shù)據(jù)的正確性和完整性,以及恢復(fù)數(shù)據(jù)庫的時(shí)間盡可能短,更大程度地減小數(shù)據(jù)損失。而MSSQL數(shù)據(jù)庫備份還原工具就是幫助我們實(shí)現(xiàn)這些目標(biāo)的工具之一。
MSSQL數(shù)據(jù)庫備份還原工具的主要功能包括數(shù)據(jù)庫備份、還原和自動(dòng)備份。通過備份數(shù)據(jù)庫文件,我們可以在任何時(shí)間點(diǎn)恢復(fù)現(xiàn)有系統(tǒng)或復(fù)制到其他系統(tǒng),以生成與原始數(shù)據(jù)庫一致的數(shù)據(jù)。使用還原功能時(shí),我們可以引入之前備份的數(shù)據(jù)并恢復(fù)被刪除或丟失的文件。而自動(dòng)備份功能可以周期性地備份我們所需的數(shù)據(jù),從而減小人工參與備份工作的需要。
使用MSSQL數(shù)據(jù)庫備份還原工具可以幫助我們更大程度地降低數(shù)據(jù)丟失的風(fēng)險(xiǎn),保護(hù)我們數(shù)據(jù)的安全性和完整性。此外,MSSQL數(shù)據(jù)庫備份還原工具還擁有其他得心應(yīng)手的功能,包括 日志備份、差異備份、壓縮和加密等。這些高級功能可以根據(jù)我們的需求和想要實(shí)現(xiàn)的目標(biāo)來進(jìn)行調(diào)整和應(yīng)用。
值得注意的是,MSSQL數(shù)據(jù)庫備份還原工具只是一個(gè)輔助工具,我們必須時(shí)刻關(guān)注數(shù)據(jù)的安全并采取其他必要的安全措施,比如數(shù)據(jù)備份的存儲(chǔ)位置、網(wǎng)絡(luò)的安全防護(hù)以及備份周期等等。此外,我們也需要不斷更新備份策略,根據(jù)不同的場景和需求重新制定備份方案。
MSSQL數(shù)據(jù)庫備份還原工具是一款非常好用的數(shù)據(jù)備份和還原工具,可以幫助我們輕松備份和恢復(fù)數(shù)據(jù)庫,降低數(shù)據(jù)丟失的風(fēng)險(xiǎn)。然而,在使用這款工具之前,我們需要對備份和還原的流程以及相關(guān)安全措施有一個(gè)清晰的認(rèn)識(shí)。通過合理使用備份還原工具,我們能夠更好地保護(hù)和管理數(shù)據(jù),并最終實(shí)現(xiàn)數(shù)據(jù)安全無憂的效果。
相關(guān)問題拓展閱讀:
- mysql數(shù)據(jù)庫管理工具有哪些
- 如何有效地提高 MySQL 的備份和恢復(fù)速度
- 高手救命,通過phpmyadmin 誤刪除mysql數(shù)據(jù)庫 怎么恢復(fù)
mysql數(shù)據(jù)庫管理工具有哪些
MySQL 管理工具
本回答來自:
MySQL 管理工具_(dá)樹懶學(xué)堂
MySQL的標(biāo)準(zhǔn)安裝版本中沒有圖形化管理工具,雖然MySQL幾乎所有的任務(wù)都可以用命令提示符下的mysqladmin和mysql命令來完成,也會(huì)對MySQL留下“界面不友好”的壞印象,為解決這個(gè)問題,MySQL開發(fā)了多種圖形化的管理工具。下面介紹3個(gè)使用比較廣泛的MySQL圖形化管理工具。
Navicat for MySQL
Navicat for MySQL基于Windows平臺(tái),為MySQL量身定團(tuán)或做,提供類似于MySQL的用戶管理界面工具。此解決方案的出現(xiàn),將解放PHP、J2EE等程序員以及數(shù)據(jù)庫設(shè)計(jì)者、管理者的大腦,降低開發(fā)成本,為用戶帶來更高的開發(fā)效率。
Navicat for MySQL使用了極好的圖形用戶界面(GUI),可以用一種安全和更為容易的方式快速和容易地創(chuàng)建、組織、存取和共享信息。用戶可完全控制MySQL數(shù)據(jù)庫和顯示不同的管理資料,包括管理用戶和控制訪問權(quán)限,可方便的將數(shù)據(jù)從一個(gè)數(shù)據(jù)庫轉(zhuǎn)移到另一個(gè)數(shù)據(jù)庫中(Local to Remote、Remote to Remote、Remote to Local)進(jìn)行數(shù)據(jù)備份。
Navicat for MySQL支亂或襲持Unicode,以及本地或遠(yuǎn)程MySQL服務(wù)器多連接,用戶可瀏覽數(shù)據(jù)庫、建立和刪除數(shù)據(jù)庫、編輯數(shù)據(jù)、建立或執(zhí)行SQL queries、管理用戶權(quán)限(安全設(shè)定)、將數(shù)據(jù)庫備份/還原、導(dǎo)入/導(dǎo)出數(shù)據(jù)(支持CSV、TXT、DBF和XML數(shù)據(jù)格式)等。
phpMyAdmin
phpMyAdmin是基于php環(huán)境的web端管理工具,所以是通過瀏覽器來執(zhí)行具體的MySQL操作,而非客戶端軟件。更大的優(yōu)點(diǎn)就是便捷性。
phpMyAdmin可以運(yùn)行在各種版本的PHP及MySQL下,可以對數(shù)據(jù)庫進(jìn)行操作,如創(chuàng)建、修改和刪除數(shù)據(jù)庫、數(shù)據(jù)表及數(shù)據(jù)等。安裝完hpMyAdmin后,在瀏覽器中輸入phpMyAdmin訪問地址嘩兄,如
MySQL Administrator
MySQL Administrator是眾多MySQL圖形化管理工具中應(yīng)用最廣泛的一種,是用來執(zhí)行數(shù)據(jù)庫管理操作的程序,以及用來監(jiān)視和管理MySQL實(shí)例的數(shù)據(jù)庫、用戶的權(quán)限和數(shù)據(jù)的實(shí)用程序,比如MySQL服務(wù)的配置、控制、開啟和關(guān)閉,還可用于管理用戶和連接數(shù)據(jù)庫,執(zhí)行數(shù)據(jù)備份和其他的一些管理任務(wù)。它有這幾個(gè)優(yōu)點(diǎn):
(1)它的圖形化的用戶界面為用戶提供了非常直觀的接口。
(2)它提供了較好的全局設(shè)置,這對于MySQL服務(wù)器的可執(zhí)行性、可信度和安全性是相當(dāng)重要的。
(3)它提供了圖形化的性能顯示,使中止服務(wù)器和更改服務(wù)器的設(shè)置更加簡單。
mysql數(shù)據(jù)庫管理工具navicat for mysql,對于不怎么喜歡圖形界面或者不太方便使用SQL的時(shí)候。我們可以通過用這個(gè)圖形界面數(shù)據(jù)庫管理工具來管理mysql,本經(jīng)驗(yàn)咗嚛就簡單介紹一下怎么用navicat for mysql管理連接mysql數(shù)據(jù)庫
工具/原料
navicat for mysql
Navicate for mysql
下載安裝軟件
使用navicate for mysl 之前當(dāng)然先下載該軟件,可以通過百度搜索查找 navicate 特別注意一下,請認(rèn)準(zhǔn)百度安全驗(yàn)證更好到官方網(wǎng)站,或者正規(guī)軟件下載站下載
下載好軟件之后,進(jìn)行安裝navicat for mysql(安裝過程之間嘩纖派注意一下插件的自定義選擇)
Navicat for mysql 怎么用?
連接數(shù)據(jù)庫
打開navicat for mysql之后找到,文件—-新建連接– 如下圖
連接參數(shù)填寫
在出現(xiàn)的連接設(shè)置里面,有很多選項(xiàng)都是針對需要連接的數(shù)據(jù)庫的賬號信息
連接名:可以任意填寫,方便以后識(shí)別區(qū)分即可
主機(jī)名或IP: 填寫服務(wù)器的主機(jī)名(必須要能解析的)或者服務(wù)器IP地址,如果是本機(jī)可 以填寫localhost 或 127.0.0.1
端口:默認(rèn)是3306 如果修改了其他端口,需要對應(yīng)
密碼:就是用戶名root密碼或者其他mysql用戶的密碼
設(shè)置好連接數(shù)據(jù)庫的參數(shù)之后,點(diǎn)擊下方的“連接”如圖出現(xiàn)豎巧“連接成功”即設(shè)置成功
數(shù)據(jù)庫管理
連接上數(shù)據(jù)庫之后,在左側(cè)會(huì)顯示當(dāng)前mysql所有的數(shù)據(jù)庫。點(diǎn)擊對應(yīng)的數(shù)據(jù)庫,能查看當(dāng)前數(shù)據(jù)庫下面的表
添加刪除數(shù)據(jù)庫
如果需要添加刪除數(shù)據(jù)庫的話,很簡單選擇需要操作的數(shù)據(jù)庫,鼠標(biāo)右鍵選擇操作即可
添加刪除表
同樣對于數(shù)據(jù)庫下方的表,如果要新建的話點(diǎn)擊選擇 表—新建
對于新建的表,名和類型都可以手動(dòng)輸入指定選擇。設(shè)置好之后,點(diǎn)擊保存輸入表名即可完成操作
點(diǎn)擊添加好的表,或數(shù)據(jù)庫的表。雙擊之后右側(cè)會(huì)列出當(dāng)前表的詳細(xì)列項(xiàng)目和屬性
如何使用命令行
雖然是圖形化管理工具,但是對于很多操作其實(shí)還是需要SQL命令會(huì)更加方便。進(jìn)入sql命令行界面,點(diǎn)擊“工具”–“命令列界面”如下圖箭頭位置
隨后在右下方空白區(qū)域進(jìn)入了SQL命令行界面,操作方法和普通進(jìn)入mysql命令行界面一樣使用命令。如果需要清除當(dāng)前屏幕內(nèi)容,可以點(diǎn)擊“清除”即可
其他功能
對于之前數(shù)據(jù)庫已經(jīng)導(dǎo)出的sql文件,或者寫好的sql命令語句??梢酝ㄟ^選擇需要導(dǎo)入的數(shù)據(jù)庫,或表 右鍵選項(xiàng)“運(yùn)行sql文件”
END
注意事項(xiàng)
navicat for mysql圖形管理工具,還有很多各種高級設(shè)置功能。咗嚛本經(jīng)驗(yàn)就截圖介紹部分常用的數(shù)亂賀據(jù)庫操作方法,后續(xù)有相關(guān)小技巧請留意咗嚛經(jīng)驗(yàn),謝謝!
本經(jīng)驗(yàn)為咗嚛原創(chuàng)操作截圖,百度經(jīng)驗(yàn)首發(fā)。未經(jīng)許可,謝絕轉(zhuǎn)載!如果有疑問請給小編留言,謝謝多多支持!
MySQL 管理工具
MySQL的標(biāo)準(zhǔn)安裝版本中沒有圖形化管理工具,雖然MySQL幾乎所有的任務(wù)都可以用命令提示符下的mysqladmin和mysql命令來完成,也會(huì)對MySQL留下“界面不友好”的壞印象。
Navicat for MySQL
Navicat for MySQL基于Windows平臺(tái),為MySQL量身定做,提供類似于MySQL的用戶管理界面工具。此解決方案的出現(xiàn),將解放PHP、J2EE等程序員以及數(shù)據(jù)庫設(shè)計(jì)者、管理者的大腦,降低開發(fā)成本,為用戶帶來更高的開發(fā)效率。
Navicat for MySQL使用了極好的圖形用戶界面(GUI),可以用一種安全和更為容易的方式快速和容易地創(chuàng)建、組織、存取和共享信息。用戶可完全控制MySQL數(shù)據(jù)庫和顯示不同的管理資料,包括管理用戶和控制訪問權(quán)限,可方便的將數(shù)據(jù)從一個(gè)數(shù)據(jù)庫轉(zhuǎn)移到另一個(gè)數(shù)據(jù)庫中(Local to Remote、Remote to Remote、Remote to Local)進(jìn)行數(shù)據(jù)備份。
Navicat for MySQL支持Unicode,以及本地或遠(yuǎn)程MySQL服務(wù)器多連接,用戶可瀏覽數(shù)據(jù)庫、建立和刪除數(shù)據(jù)庫、編輯數(shù)據(jù)、建立或執(zhí)行SQL queries、管稿棚理用戶權(quán)限(安全設(shè)定)、茄咐將數(shù)據(jù)庫備份/還原、導(dǎo)入/導(dǎo)出數(shù)據(jù)(支持CSV、TXT、顫敬純DBF和XML數(shù)據(jù)格式)等。
如何有效地提高 MySQL 的備份和恢復(fù)速度
一 加速備份
1、 加了single-transaction參數(shù) 備份時(shí) 需要先flush table with read lock 這個(gè)過程中會(huì)有一個(gè)鎖表的過程,如果有事務(wù)或語句正在執(zhí)行,沒有結(jié)束,那么備份進(jìn)程會(huì)一直等待,并且阻塞別的事務(wù),那么也會(huì)影響業(yè)務(wù)。所以要先確認(rèn)備份的時(shí)候沒有大的事務(wù)在運(yùn)行。具體 single-transaction的加鎖可以參考 我的博客:mysqldump備份時(shí)加single-transaction會(huì)不會(huì)加鎖
2 、mysqldump是單進(jìn)程的,沒有辦法并行蔽友,但現(xiàn)在機(jī)器的瓶頸多是出現(xiàn)在IO方面,可以使用更了的IO設(shè)備加快速度
3 、mysqldump時(shí)如果空間夠的話,不要邊壓縮邊備份
二扮并敏 加速恢復(fù)
1 關(guān)閉binlog:不寫入Binlog會(huì)大大的加快數(shù)據(jù)導(dǎo)入的速度
2 innodb_flush_log_at_trx_commit=0
3 更好的配置
建議:
如果非要使用邏輯備份,可以考慮mysqldumper, mysqlpump(5.7)這兩個(gè)工具去備份,這兩個(gè)在備份的時(shí)候支持并行操作,mysqldumper還可以對單表進(jìn)行恢復(fù),在只需要恢復(fù)單表的情況下,恢復(fù)速度會(huì)大大加快
使用物理備份 xtrabackup (open source),MEB(oracle提供,收費(fèi)): 他們的備份原理是基于mysql crash recover, 備份速度 是和邏輯備份的相差不太大。但是恢復(fù)速度卻有很大的提升。
邏輯備份 備出來的是sql語句文件,恢復(fù)時(shí)需要一條一條的執(zhí)行sql,所以恢復(fù)很慢。
而物理備份和還原的速度 相當(dāng)于直接copy文件,所以恢復(fù)的時(shí)候性能有很大的提升
并且這兩個(gè)軟件還支持并行,效果更好。
邏輯備份更大的優(yōu)點(diǎn)是 備份好的文件經(jīng)壓縮后占用空間較小,更大缺點(diǎn)恢復(fù)太慢
物理備份可以很快的恢復(fù),但是備份好的文件壓縮后占用空間比邏輯備份廳枝要大。
1. mysqldump: 最早,也是最成熟的邏輯備份工具,是 MySQL 原生的用來備份整個(gè)數(shù)據(jù)蠢如庫實(shí)例、單個(gè)數(shù)據(jù)庫模戚、單張表的邏輯備份工具, 上手簡單,學(xué)習(xí)成本幾乎為 0。備份簡單,恢復(fù)也簡單。
比如導(dǎo)出單個(gè)數(shù)據(jù)庫 ytt: mysqldump ytt > /tmp/ytt.sql;
恢復(fù)也非常簡單:mysql
缺點(diǎn)是備份速度慢。在整個(gè)備份過程中,是單線程運(yùn)行;備份出來的數(shù)據(jù)集要恢復(fù)的話同樣也是單線程運(yùn)行,恢復(fù)速度也慢。除非對同一時(shí)刻的所有表單獨(dú)備份出來,自己寫額外腳本進(jìn)行多線程恢復(fù)。
2. mysqlpump:MySQL 5.7 GA 后推出的 mysqldump工具的增強(qiáng)版。可以對同一個(gè)數(shù)據(jù)集多個(gè)線程并發(fā)備份,備份速度很快。
其他缺點(diǎn)和 mysqldump 一樣。
3. MySQL Shell UTIL 對象附帶的備份工具:隨 MySQL 8.0.21 最新版本捆旦檔陵綁發(fā)布,自帶多線程備份以及多線程恢復(fù)功能, 可以直接替代 mysqldump/mysqlpump。
dump_instance/dumpInstance 用來多線程備份 MySQL 整個(gè)單機(jī)實(shí)例
dump_schemas/dumpSchemas 用來多線程備份 MySQL 單個(gè)數(shù)據(jù)庫
load_dump/loadDump 用來多線程恢復(fù)之前兩個(gè)工具導(dǎo)出的數(shù)據(jù)集文件
高手救命,通過phpmyadmin 誤刪除mysql數(shù)據(jù)庫 怎么恢復(fù)
看到一個(gè)這樣的解決方式不知道能不能幫助你:
phpmyadmin的后臺(tái)數(shù)據(jù)庫是mysql,下面或許有用。
《mysql數(shù)據(jù)恢復(fù)工具-mysqlbinlog 使用說明》
要使用此功能,首先必須確保mysql
配置文件
“My.ini”中的
log-bin=log_name #開啟
二進(jìn)制
日志(其中l(wèi)og_name自己定義)
開啟的作用就是開啟mysql的二進(jìn)制日志,然后才可以使用mysqlbinlog工具
恢復(fù)數(shù)據(jù)
,
開啟之后通過在mysql中運(yùn)行:
SHOW BINLOG EVENTS
來確認(rèn)二進(jìn)制日志的開啟情況
mysqlbinlog有兩種方式來恢復(fù)數(shù)據(jù):(Mysqldatalog.exe在“MySql\bin\”目錄下)
1.通過指定時(shí)間:
Mysqldatalog> mysqlbinlog –start-date=”:01:00″ –stop-date=”:59:59″ log_name.> D:\01.txt
2.通過指定位置:
參數(shù)說明:
?–start-position=N 從二進(jìn)制日志中第1個(gè)位置等于N參量時(shí)的事件開始讀。
?–stop-position=N 從二進(jìn)制日志中第1個(gè)位置等于和大于N參量時(shí)野純的事件起停止讀。
Mysqldatalog> mysqlbinlog –start-position=123 –end-position=456 log_name.> D:\01.txt
關(guān)于position的說明:position可以通過執(zhí)行SHOW BINLOG EVENTS命令來查看 然后進(jìn)入mysql中執(zhí)行source 命令 mysql>source D:\01.txt 恢復(fù)數(shù)據(jù)完成。
最后說明:mysqlbinlog工具雖然很強(qiáng)大,但是為保數(shù)據(jù)不丟失更好還是跟備份數(shù)據(jù)同步使用。這樣恢告悄復(fù)數(shù)據(jù)就可以僅從最后一次備份開始到事故發(fā)生時(shí)間。
個(gè)人現(xiàn)在備份數(shù)據(jù)庫都是采用“多備份”的多襪脊渣
云盤
自動(dòng)備份,在怎么誤刪除也可以找的回來,有個(gè)好工具還是需要的
除非在你刪除前有備份,不然是沒辦法恢復(fù)的!
每個(gè) DBA 是不是都有過刪庫的經(jīng)歷?刪庫了沒有備份怎散高么辦?備份恢復(fù)后無法啟動(dòng)服務(wù)什么情況?表定義損壞數(shù)據(jù)無法讀取怎么辦?
我曾遇到某初創(chuàng)互聯(lián)網(wǎng)企業(yè),因維護(hù)人員不規(guī)范的備份恢復(fù)操作,導(dǎo)致系統(tǒng)表空間文件被初始化,上萬張表無法讀取,花了數(shù)小時(shí)才搶救回來。
當(dāng)你發(fā)現(xiàn)數(shù)據(jù)無法讀取時(shí),也許并非數(shù)據(jù)丟失了,可能是 DBMS 找不到描述數(shù)據(jù)的信息。
背景
先來了解下幾張關(guān)鍵的 InnoDB 數(shù)據(jù)字典表,衫基它們保存了部分表定義信息,在我們恢復(fù)表結(jié)構(gòu)時(shí)需要用到。
SYS_TABLES 描述 InnoDB 表信息CREATE TABLE `SYS_TABLES` (`NAME` varchar(255) NOT NULL DEFAULT ”, 表名`ID` bigint(20) unsigned NOT NULL DEFAULT ‘0’, 表id`N_COLS` int(10) DEFAULT NULL,`TYPE` int(10) unsigned DEFAULT NULL,`MIX_ID` bigint(20) unsigned DEFAULT NULL,`MIX_LEN` int(10) unsigned DEFAULT NULL,`CLUSTER_NAME` varchar(255) DEFAULT NULL,`SPACE` int(10) unsigned DEFAULT NULL, 表空間idPRIMARY KEY (`NAME`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;SYS_INDEXES 描述 InnoDB 索引信息CREATE TABLE `SYS_INDEXES` ( `TABLE_ID` bigint(20) unsigned NOT NULL DEFAULT ‘0’, 與sys_tables的id對應(yīng) `ID` bigint(20) unsigned NOT NULL DEFAULT ‘0’, 索引id `NAME` varchar(120) DEFAULT NULL,索引名稱 `N_FIELDS` int(10) unsigned DEFAULT NULL, 索引包含字段的個(gè)數(shù) `TYPE` int(10) unsigned DEFAULT NULL, `SPACE` int(10) unsigned DEFAULT NULL, 存儲(chǔ)索引的表空間id `PAGE_NO` int(10) unsigned DEFAULT NULL, 索引的root page id PRIMARY KEY (`TABLE_ID`,`ID`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;SYS_COLUMNS 描述 InnoDB 表沖塌尺的字段信息CREATE TABLE `SYS_COLUMNS` ( `TABLE_ID` bigint(20) unsigned NOT NULL, 與sys_tables的id對應(yīng) `POS` int(10) unsigned NOT NULL, 字段相對位置 `NAME` varchar(255) DEFAULT NULL, 字段名稱 `MTYPE` int(10) unsigned DEFAULT NULL, 字段編碼 `PRTYPE` int(10) unsigned DEFAULT NULL, 字段校驗(yàn)類型 `LEN` int(10) unsigned DEFAULT NULL, 字段字節(jié)長度 `PREC` int(10) unsigned DEFAULT NULL, 字段精度 PRIMARY KEY (`TABLE_ID`,`POS`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;SYS_FIELDS 描述全部索引的字段列CREATE TABLE `SYS_FIELDS` ( `INDEX_ID` bigint(20) unsigned NOT NULL, `POS` int(10) unsigned NOT NULL, `COL_NAME` varchar(255) DEFAULT NULL, PRIMARY KEY (`INDEX_ID`,`POS`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;./storage/innobase/include/dict0boot.h 文件定義了每個(gè)字典表的 index id,對應(yīng) id 的 page 中存儲(chǔ)著字典表的數(shù)據(jù)。
這里我們需要借助 undrop-for-innodb 工具恢復(fù)數(shù)據(jù),它能讀取表空間信息得到 page,將數(shù)據(jù)從 page 中提取出來。
# wget yum install -y gcc flex bison# make# make sys_parser
# ./sys_parser 讀取表結(jié)構(gòu)信息
sys_parser databases/table
stream_parser 讀取 InnoDB page 從 ibdata1 或 ibd 或分區(qū)表
# ./stream_parserYou must specify file with -f optionUsage: ./stream_parser -f Where: -hPrint this help -V or -g – Print debug information -s size – Amount of memory used for disk cache (allowed examples 1G 10M). Default 100M -Tretrieves only pages with index id = NM (N – high word, M – low word of id) -t size – Size of InnoDB tablespace to scan. Use it only if the parser can’t determine it by himself.
c_parser 從 innodb page 中讀取記錄保存到文件
# ./c_parserError: Usage: ./c_parser -4|-5|-6 -f -t table.sql Where -f — InnoDB page or directory with pages(all pages should have same index_id) -t — CREATE statement of a table -o — Save dump in this file. Otherwise print to stdout -l — Save SQL statements in this file. Otherwise print to stderr -h — Print this help -d — Process only those pages which potentially could have deleted records (default = NO) -D — Recover deleted rows only (default = NO) -U — Recover UNdeleted rows only (default = YES) -V — Verbose mode (lots of debug information)innodb_datafile is in REDUNDANT formatinnodb_datafile is in COMPACT formatinnodb_datafile is in MySQL 5.6 format -T — retrieves only pages with index id = NM (N – high word, M – low word of id) -b — Directory where external pages can be found. Usually it is pages-XXX/FIL_PAGE_TYPE_BLOB/ -i — Read external pages at their offsets from . -p prefix — Use prefix for a directory name in LOAD DATA INFILE command
接下來,我們演示場景的幾種數(shù)據(jù)恢復(fù)場景。
場景1:drop table
是否啟用了 innodb_file_per_table 其恢復(fù)方法有所差異,當(dāng)發(fā)生誤刪表時(shí),應(yīng)盡快停止MySQL服務(wù),不要啟動(dòng)。若 innodb_file_per_table=ON,更好只讀方式重新掛載文件系統(tǒng),防止其他進(jìn)程寫入數(shù)據(jù)覆蓋之前塊設(shè)備的數(shù)據(jù)。
如果評估記錄是否被覆蓋,可以表中某些記錄的作為關(guān)鍵字看是否能從 ibdata1 中篩選出。
# grep WOODYHOFFMAN ibdata1
Binary file ibdata1 matches
也可以使用 bvi(適用于較小文件)或 hexdump -C(適用于較大文件)工具
以表 sakila.actor 為例CREATE TABLE `actor` (`actor_id` allint(5) unsigned NOT NULL AUTO_INCREMENT,`first_name` varchar(45) NOT NULL,`last_name` varchar(45) NOT NULL,`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`actor_id`),KEY `idx_actor_last_name` (`last_name`)) ENGINE=InnoDB AUTO_INCREMENT=201 DEFAULT CHARSET=utf8
首先恢復(fù)表結(jié)構(gòu)信息1. 解析系統(tǒng)表空間獲取 page 信息
./stream_parser -f /var/lib/mysql/ibdata1
2. 新建一個(gè) schema,把系統(tǒng)字典表的 DDL 導(dǎo)入
cat dictionary/SYS_* | mysql recovered
3. 創(chuàng)建恢復(fù)目錄
mkdir -p dumps/default
4. 解析系統(tǒng)表空間包含的字典表信息,
./c_parser -4f pages-ibdata1/FIL_PAGE_INDEX/01.page -t dictionary/SYS_TABLES.sql > dumps/default/SYS_TABLES 2> dumps/default/SYS_TABLES.sql./c_parser -4f pages-ibdata1/FIL_PAGE_INDEX/02.page -t dictionary/SYS_COLUMNS.sql > dumps/default/SYS_COLUMNS 2> dumps/default/SYS_COLUMNS.sql./c_parser -4f pages-ibdata1/FIL_PAGE_INDEX/03.page -t dictionary/SYS_INDEXES.sql > dumps/default/SYS_INDEXES 2> dumps/default/SYS_INDEXES.sql./c_parser -4f pages-ibdata1/FIL_PAGE_INDEX/04.page -t dictionary/SYS_FIELDS.sql > dumps/default/SYS_FIELDS 2> dumps/default/SYS_FIELDS.sql
5. 導(dǎo)入恢復(fù)的數(shù)據(jù)字典
cat dumps/default/*.sql | mysql recovered
6. 讀取恢復(fù)后的表結(jié)構(gòu)信息
./sys_parser -pmsandbox -d recovered sakila/actor
由于 5.x 版本 innodb 引擎并非完整記錄表結(jié)構(gòu)信息,會(huì)丟失 AUTO_INCREMENT 屬性、二級索引和外鍵約束, DECIMAL 精度等信息。
若是 mysql 5.5 版本 frm 文件被從系統(tǒng)刪除,在原目錄下 touch 與原表名相同的 frm 文件,還能讀取表結(jié)構(gòu)信息和數(shù)據(jù)。若只有 frm 文件,想要獲得表結(jié)構(gòu)信息,可使用 mysqlfrm –diagnostic /path/to/xxx.frm,連接 mysql 會(huì)顯示字符集信息。
innodb_file_per_table=OFF
因?yàn)槭枪蚕肀砜臻g模式,數(shù)據(jù)頁都存儲(chǔ)在 ibdata1,可以從 ibdata1 文件中提取數(shù)據(jù)。
1. 獲取表的 table id,sys_table 存有表的 table id,sys_table 表 index id 是1,所以從01.page 獲取表 id./c_parser -4Df pages-ibdata1/FIL_PAGE_INDEX/01.page -t dictionary/SYS_TABLES.sql | grep sakila/actorB28 2AD4D SYS_TABLES “sakila/actor” 0 “”B28 2AD4D SYS_TABLES “sakila/actor” 0 “” 0
2. 利用 table id 獲取表的主鍵 id,sys_indexes 存有表索引信息,innodb 索引組織表,找到主鍵 id 即找到數(shù)據(jù),sys_indexes 的 index id 是3,所以從03.page 獲取主鍵 id
./c_parser -4Df pages-ibdata1/FIL_PAGE_INDEX/03.page -t dictionary/SYS_INDEXES.sql | grepBABCA SYS_INDEXES”PRIMARY”BAC3C SYS_INDEXES”idx_actor_last_name”BABCA SYS_INDEXES”PRIMARY”BAC3C SYS_INDEXES”idx_actor_last_name”
3. 知道了主鍵 id,就可以從對應(yīng) page 中提取表數(shù)據(jù),并生成 sql 文件。
./c_parser -4f pages-ibdata1/FIL_PAGE_INDEX/76.page -t sakila/actor.sql > dumps/default/actor 2> dumps/default/actor_load.sql
4. 最后導(dǎo)入恢復(fù)的數(shù)據(jù)
cat dumps/default/*.sql | mysql sakila
更多詳細(xì)情況點(diǎn)擊
網(wǎng)頁鏈接
mssql數(shù)據(jù)庫備份還原工具的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于mssql數(shù)據(jù)庫備份還原工具,MSSQL數(shù)據(jù)庫備份還原工具——讓數(shù)據(jù)安全無憂,mysql數(shù)據(jù)庫管理工具有哪些,如何有效地提高 MySQL 的備份和恢復(fù)速度,高手救命,通過phpmyadmin 誤刪除mysql數(shù)據(jù)庫 怎么恢復(fù)的信息別忘了在本站進(jìn)行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
網(wǎng)頁標(biāo)題:MSSQL數(shù)據(jù)庫備份還原工具——讓數(shù)據(jù)安全無憂(mssql數(shù)據(jù)庫備份還原工具)
文章來源:http://www.dlmjj.cn/article/dphecss.html


咨詢
建站咨詢
