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

創(chuàng)新互聯(lián)從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都做網(wǎng)站、網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元寶豐做網(wǎng)站,已為上家服務(wù),為寶豐各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220
MSSQL數(shù)據(jù)庫是微軟公司所開發(fā)的一款重要的數(shù)據(jù)庫軟件。隨著企業(yè)數(shù)據(jù)量的不斷增加,維護數(shù)據(jù)的安全性以及完整性變得尤為重要。其中,數(shù)據(jù)備份和還原是非常關(guān)鍵的一環(huán)。在備份和還原過程中,我們需要保證數(shù)據(jù)的正確性和完整性,以及恢復(fù)數(shù)據(jù)庫的時間盡可能短,更大程度地減小數(shù)據(jù)損失。而MSSQL數(shù)據(jù)庫備份還原工具就是幫助我們實現(xiàn)這些目標(biāo)的工具之一。
MSSQL數(shù)據(jù)庫備份還原工具的主要功能包括數(shù)據(jù)庫備份、還原和自動備份。通過備份數(shù)據(jù)庫文件,我們可以在任何時間點恢復(fù)現(xiàn)有系統(tǒng)或復(fù)制到其他系統(tǒng),以生成與原始數(shù)據(jù)庫一致的數(shù)據(jù)。使用還原功能時,我們可以引入之前備份的數(shù)據(jù)并恢復(fù)被刪除或丟失的文件。而自動備份功能可以周期性地備份我們所需的數(shù)據(jù),從而減小人工參與備份工作的需要。
使用MSSQL數(shù)據(jù)庫備份還原工具可以幫助我們更大程度地降低數(shù)據(jù)丟失的風(fēng)險,保護我們數(shù)據(jù)的安全性和完整性。此外,MSSQL數(shù)據(jù)庫備份還原工具還擁有其他得心應(yīng)手的功能,包括 日志備份、差異備份、壓縮和加密等。這些高級功能可以根據(jù)我們的需求和想要實現(xiàn)的目標(biāo)來進行調(diào)整和應(yīng)用。
值得注意的是,MSSQL數(shù)據(jù)庫備份還原工具只是一個輔助工具,我們必須時刻關(guān)注數(shù)據(jù)的安全并采取其他必要的安全措施,比如數(shù)據(jù)備份的存儲位置、網(wǎng)絡(luò)的安全防護以及備份周期等等。此外,我們也需要不斷更新備份策略,根據(jù)不同的場景和需求重新制定備份方案。
MSSQL數(shù)據(jù)庫備份還原工具是一款非常好用的數(shù)據(jù)備份和還原工具,可以幫助我們輕松備份和恢復(fù)數(shù)據(jù)庫,降低數(shù)據(jù)丟失的風(fēng)險。然而,在使用這款工具之前,我們需要對備份和還原的流程以及相關(guān)安全措施有一個清晰的認(rèn)識。通過合理使用備份還原工具,我們能夠更好地保護和管理數(shù)據(jù),并最終實現(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命令來完成,也會對MySQL留下“界面不友好”的壞印象,為解決這個問題,MySQL開發(fā)了多種圖形化的管理工具。下面介紹3個使用比較廣泛的MySQL圖形化管理工具。
Navicat for MySQL
Navicat for MySQL基于Windows平臺,為MySQL量身定團或做,提供類似于MySQL的用戶管理界面工具。此解決方案的出現(xiàn),將解放PHP、J2EE等程序員以及數(shù)據(jù)庫設(shè)計者、管理者的大腦,降低開發(fā)成本,為用戶帶來更高的開發(fā)效率。
Navicat for MySQL使用了極好的圖形用戶界面(GUI),可以用一種安全和更為容易的方式快速和容易地創(chuàng)建、組織、存取和共享信息。用戶可完全控制MySQL數(shù)據(jù)庫和顯示不同的管理資料,包括管理用戶和控制訪問權(quán)限,可方便的將數(shù)據(jù)從一個數(shù)據(jù)庫轉(zhuǎn)移到另一個數(shù)據(jù)庫中(Local to Remote、Remote to Remote、Remote to Local)進行數(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)點就是便捷性。
phpMyAdmin可以運行在各種版本的PHP及MySQL下,可以對數(shù)據(jù)庫進行操作,如創(chuàng)建、修改和刪除數(shù)據(jù)庫、數(shù)據(jù)表及數(shù)據(jù)等。安裝完hpMyAdmin后,在瀏覽器中輸入phpMyAdmin訪問地址嘩兄,如
MySQL Administrator
MySQL Administrator是眾多MySQL圖形化管理工具中應(yīng)用最廣泛的一種,是用來執(zhí)行數(shù)據(jù)庫管理操作的程序,以及用來監(jiān)視和管理MySQL實例的數(shù)據(jù)庫、用戶的權(quán)限和數(shù)據(jù)的實用程序,比如MySQL服務(wù)的配置、控制、開啟和關(guān)閉,還可用于管理用戶和連接數(shù)據(jù)庫,執(zhí)行數(shù)據(jù)備份和其他的一些管理任務(wù)。它有這幾個優(yōu)點:
(1)它的圖形化的用戶界面為用戶提供了非常直觀的接口。
(2)它提供了較好的全局設(shè)置,這對于MySQL服務(wù)器的可執(zhí)行性、可信度和安全性是相當(dāng)重要的。
(3)它提供了圖形化的性能顯示,使中止服務(wù)器和更改服務(wù)器的設(shè)置更加簡單。
mysql數(shù)據(jù)庫管理工具navicat for mysql,對于不怎么喜歡圖形界面或者不太方便使用SQL的時候。我們可以通過用這個圖形界面數(shù)據(jù)庫管理工具來管理mysql,本經(jīng)驗咗嚛就簡單介紹一下怎么用navicat for mysql管理連接mysql數(shù)據(jù)庫
工具/原料
navicat for mysql
Navicate for mysql
下載安裝軟件
使用navicate for mysl 之前當(dāng)然先下載該軟件,可以通過百度搜索查找 navicate 特別注意一下,請認(rèn)準(zhǔn)百度安全驗證更好到官方網(wǎng)站,或者正規(guī)軟件下載站下載
下載好軟件之后,進行安裝navicat for mysql(安裝過程之間嘩纖派注意一下插件的自定義選擇)
Navicat for mysql 怎么用?
連接數(shù)據(jù)庫
打開navicat for mysql之后找到,文件—-新建連接– 如下圖
連接參數(shù)填寫
在出現(xiàn)的連接設(shè)置里面,有很多選項都是針對需要連接的數(shù)據(jù)庫的賬號信息
連接名:可以任意填寫,方便以后識別區(qū)分即可
主機名或IP: 填寫服務(wù)器的主機名(必須要能解析的)或者服務(wù)器IP地址,如果是本機可 以填寫localhost 或 127.0.0.1
端口:默認(rèn)是3306 如果修改了其他端口,需要對應(yīng)
密碼:就是用戶名root密碼或者其他mysql用戶的密碼
設(shè)置好連接數(shù)據(jù)庫的參數(shù)之后,點擊下方的“連接”如圖出現(xiàn)豎巧“連接成功”即設(shè)置成功
數(shù)據(jù)庫管理
連接上數(shù)據(jù)庫之后,在左側(cè)會顯示當(dāng)前mysql所有的數(shù)據(jù)庫。點擊對應(yīng)的數(shù)據(jù)庫,能查看當(dāng)前數(shù)據(jù)庫下面的表
添加刪除數(shù)據(jù)庫
如果需要添加刪除數(shù)據(jù)庫的話,很簡單選擇需要操作的數(shù)據(jù)庫,鼠標(biāo)右鍵選擇操作即可
添加刪除表
同樣對于數(shù)據(jù)庫下方的表,如果要新建的話點擊選擇 表—新建
對于新建的表,名和類型都可以手動輸入指定選擇。設(shè)置好之后,點擊保存輸入表名即可完成操作
點擊添加好的表,或數(shù)據(jù)庫的表。雙擊之后右側(cè)會列出當(dāng)前表的詳細(xì)列項目和屬性
如何使用命令行
雖然是圖形化管理工具,但是對于很多操作其實還是需要SQL命令會更加方便。進入sql命令行界面,點擊“工具”–“命令列界面”如下圖箭頭位置
隨后在右下方空白區(qū)域進入了SQL命令行界面,操作方法和普通進入mysql命令行界面一樣使用命令。如果需要清除當(dāng)前屏幕內(nèi)容,可以點擊“清除”即可
其他功能
對于之前數(shù)據(jù)庫已經(jīng)導(dǎo)出的sql文件,或者寫好的sql命令語句??梢酝ㄟ^選擇需要導(dǎo)入的數(shù)據(jù)庫,或表 右鍵選項“運行sql文件”
END
注意事項
navicat for mysql圖形管理工具,還有很多各種高級設(shè)置功能。咗嚛本經(jīng)驗就截圖介紹部分常用的數(shù)亂賀據(jù)庫操作方法,后續(xù)有相關(guān)小技巧請留意咗嚛經(jīng)驗,謝謝!
本經(jīng)驗為咗嚛原創(chuàng)操作截圖,百度經(jīng)驗首發(fā)。未經(jīng)許可,謝絕轉(zhuǎn)載!如果有疑問請給小編留言,謝謝多多支持!
MySQL 管理工具
MySQL的標(biāo)準(zhǔn)安裝版本中沒有圖形化管理工具,雖然MySQL幾乎所有的任務(wù)都可以用命令提示符下的mysqladmin和mysql命令來完成,也會對MySQL留下“界面不友好”的壞印象。
Navicat for MySQL
Navicat for MySQL基于Windows平臺,為MySQL量身定做,提供類似于MySQL的用戶管理界面工具。此解決方案的出現(xiàn),將解放PHP、J2EE等程序員以及數(shù)據(jù)庫設(shè)計者、管理者的大腦,降低開發(fā)成本,為用戶帶來更高的開發(fā)效率。
Navicat for MySQL使用了極好的圖形用戶界面(GUI),可以用一種安全和更為容易的方式快速和容易地創(chuàng)建、組織、存取和共享信息。用戶可完全控制MySQL數(shù)據(jù)庫和顯示不同的管理資料,包括管理用戶和控制訪問權(quán)限,可方便的將數(shù)據(jù)從一個數(shù)據(jù)庫轉(zhuǎn)移到另一個數(shù)據(jù)庫中(Local to Remote、Remote to Remote、Remote to Local)進行數(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ù) 備份時 需要先flush table with read lock 這個過程中會有一個鎖表的過程,如果有事務(wù)或語句正在執(zhí)行,沒有結(jié)束,那么備份進程會一直等待,并且阻塞別的事務(wù),那么也會影響業(yè)務(wù)。所以要先確認(rèn)備份的時候沒有大的事務(wù)在運行。具體 single-transaction的加鎖可以參考 我的博客:mysqldump備份時加single-transaction會不會加鎖
2 、mysqldump是單進程的,沒有辦法并行蔽友,但現(xiàn)在機器的瓶頸多是出現(xiàn)在IO方面,可以使用更了的IO設(shè)備加快速度
3 、mysqldump時如果空間夠的話,不要邊壓縮邊備份
二扮并敏 加速恢復(fù)
1 關(guān)閉binlog:不寫入Binlog會大大的加快數(shù)據(jù)導(dǎo)入的速度
2 innodb_flush_log_at_trx_commit=0
3 更好的配置
建議:
如果非要使用邏輯備份,可以考慮mysqldumper, mysqlpump(5.7)這兩個工具去備份,這兩個在備份的時候支持并行操作,mysqldumper還可以對單表進行恢復(fù),在只需要恢復(fù)單表的情況下,恢復(fù)速度會大大加快
使用物理備份 xtrabackup (open source),MEB(oracle提供,收費): 他們的備份原理是基于mysql crash recover, 備份速度 是和邏輯備份的相差不太大。但是恢復(fù)速度卻有很大的提升。
邏輯備份 備出來的是sql語句文件,恢復(fù)時需要一條一條的執(zhí)行sql,所以恢復(fù)很慢。
而物理備份和還原的速度 相當(dāng)于直接copy文件,所以恢復(fù)的時候性能有很大的提升
并且這兩個軟件還支持并行,效果更好。
邏輯備份更大的優(yōu)點是 備份好的文件經(jīng)壓縮后占用空間較小,更大缺點恢復(fù)太慢
物理備份可以很快的恢復(fù),但是備份好的文件壓縮后占用空間比邏輯備份廳枝要大。
1. mysqldump: 最早,也是最成熟的邏輯備份工具,是 MySQL 原生的用來備份整個數(shù)據(jù)蠢如庫實例、單個數(shù)據(jù)庫模戚、單張表的邏輯備份工具, 上手簡單,學(xué)習(xí)成本幾乎為 0。備份簡單,恢復(fù)也簡單。
比如導(dǎo)出單個數(shù)據(jù)庫 ytt: mysqldump ytt > /tmp/ytt.sql;
恢復(fù)也非常簡單:mysql
缺點是備份速度慢。在整個備份過程中,是單線程運行;備份出來的數(shù)據(jù)集要恢復(fù)的話同樣也是單線程運行,恢復(fù)速度也慢。除非對同一時刻的所有表單獨備份出來,自己寫額外腳本進行多線程恢復(fù)。
2. mysqlpump:MySQL 5.7 GA 后推出的 mysqldump工具的增強版??梢詫ν粋€數(shù)據(jù)集多個線程并發(fā)備份,備份速度很快。
其他缺點和 mysqldump 一樣。
3. MySQL Shell UTIL 對象附帶的備份工具:隨 MySQL 8.0.21 最新版本捆旦檔陵綁發(fā)布,自帶多線程備份以及多線程恢復(fù)功能, 可以直接替代 mysqldump/mysqlpump。
dump_instance/dumpInstance 用來多線程備份 MySQL 整個單機實例
dump_schemas/dumpSchemas 用來多線程備份 MySQL 單個數(shù)據(jù)庫
load_dump/loadDump 用來多線程恢復(fù)之前兩個工具導(dǎo)出的數(shù)據(jù)集文件
高手救命,通過phpmyadmin 誤刪除mysql數(shù)據(jù)庫 怎么恢復(fù)
看到一個這樣的解決方式不知道能不能幫助你:
phpmyadmin的后臺數(shù)據(jù)庫是mysql,下面或許有用。
《mysql數(shù)據(jù)恢復(fù)工具-mysqlbinlog 使用說明》
要使用此功能,首先必須確保mysql
配置文件
“My.ini”中的
log-bin=log_name #開啟
二進制
日志(其中l(wèi)og_name自己定義)
開啟的作用就是開啟mysql的二進制日志,然后才可以使用mysqlbinlog工具
恢復(fù)數(shù)據(jù)
,
開啟之后通過在mysql中運行:
SHOW BINLOG EVENTS
來確認(rèn)二進制日志的開啟情況
mysqlbinlog有兩種方式來恢復(fù)數(shù)據(jù):(Mysqldatalog.exe在“MySql\bin\”目錄下)
1.通過指定時間:
Mysqldatalog> mysqlbinlog –start-date=”:01:00″ –stop-date=”:59:59″ log_name.> D:\01.txt
2.通過指定位置:
參數(shù)說明:
?–start-position=N 從二進制日志中第1個位置等于N參量時的事件開始讀。
?–stop-position=N 從二進制日志中第1個位置等于和大于N參量時野純的事件起停止讀。
Mysqldatalog> mysqlbinlog –start-position=123 –end-position=456 log_name.> D:\01.txt
關(guān)于position的說明:position可以通過執(zhí)行SHOW BINLOG EVENTS命令來查看 然后進入mysql中執(zhí)行source 命令 mysql>source D:\01.txt 恢復(fù)數(shù)據(jù)完成。
最后說明:mysqlbinlog工具雖然很強大,但是為保數(shù)據(jù)不丟失更好還是跟備份數(shù)據(jù)同步使用。這樣恢告悄復(fù)數(shù)據(jù)就可以僅從最后一次備份開始到事故發(fā)生時間。
個人現(xiàn)在備份數(shù)據(jù)庫都是采用“多備份”的多襪脊渣
云盤
自動備份,在怎么誤刪除也可以找的回來,有個好工具還是需要的
除非在你刪除前有備份,不然是沒辦法恢復(fù)的!
每個 DBA 是不是都有過刪庫的經(jīng)歷?刪庫了沒有備份怎散高么辦?備份恢復(fù)后無法啟動服務(wù)什么情況?表定義損壞數(shù)據(jù)無法讀取怎么辦?
我曾遇到某初創(chuàng)互聯(lián)網(wǎng)企業(yè),因維護人員不規(guī)范的備份恢復(fù)操作,導(dǎo)致系統(tǒng)表空間文件被初始化,上萬張表無法讀取,花了數(shù)小時才搶救回來。
當(dāng)你發(fā)現(xiàn)數(shù)據(jù)無法讀取時,也許并非數(shù)據(jù)丟失了,可能是 DBMS 找不到描述數(shù)據(jù)的信息。
背景
先來了解下幾張關(guān)鍵的 InnoDB 數(shù)據(jù)字典表,衫基它們保存了部分表定義信息,在我們恢復(fù)表結(jié)構(gòu)時需要用到。
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, 索引包含字段的個數(shù) `TYPE` int(10) unsigned DEFAULT NULL, `SPACE` int(10) unsigned DEFAULT NULL, 存儲索引的表空間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, 字段校驗類型 `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 文件定義了每個字典表的 index id,對應(yīng) id 的 page 中存儲著字典表的數(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ā)生誤刪表時,應(yīng)盡快停止MySQL服務(wù),不要啟動。若 innodb_file_per_table=ON,更好只讀方式重新掛載文件系統(tǒng),防止其他進程寫入數(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. 新建一個 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)信息,會丟失 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 會顯示字符集信息。
innodb_file_per_table=OFF
因為是共享表空間模式,數(shù)據(jù)頁都存儲在 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ì)情況點擊
網(wǎng)頁鏈接
mssql數(shù)據(jù)庫備份還原工具的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于mssql數(shù)據(jù)庫備份還原工具,MSSQL數(shù)據(jù)庫備份還原工具——讓數(shù)據(jù)安全無憂,mysql數(shù)據(jù)庫管理工具有哪些,如何有效地提高 MySQL 的備份和恢復(fù)速度,高手救命,通過phpmyadmin 誤刪除mysql數(shù)據(jù)庫 怎么恢復(fù)的信息別忘了在本站進行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
標(biāo)題名稱:MSSQL數(shù)據(jù)庫備份還原工具——讓數(shù)據(jù)安全無憂(mssql數(shù)據(jù)庫備份還原工具)
文章轉(zhuǎn)載:http://fisionsoft.com.cn/article/dphecss.html


咨詢
建站咨詢
