新聞中心
隨著信息化、數(shù)字化浪潮的不斷發(fā)展,企業(yè)與個人越來越離不開數(shù)據(jù)的支持。然而,數(shù)據(jù)安全問題在這一進(jìn)程中不斷浮現(xiàn):利益的驅(qū)使和技術(shù)漏洞為黑客藍(lán)海提供了無限空間,從而導(dǎo)致各種數(shù)據(jù)被竊取、篡改、刪除等問題。這些安全問題不僅會給生產(chǎn)生活帶來極大的損失,也會對企業(yè)或個人的名譽(yù)造成極大的影響,甚至引起法律糾紛。因此,數(shù)據(jù)庫全恢復(fù)技術(shù)的重要性顯得格外突出。

蕪湖網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),蕪湖網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為蕪湖數(shù)千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個售后服務(wù)好的蕪湖做網(wǎng)站的公司定做!
數(shù)據(jù)庫全恢復(fù)技術(shù)是指在排除硬件、軟件等因素導(dǎo)致數(shù)據(jù)庫故障后,恢復(fù)數(shù)據(jù)庫到故障出現(xiàn)之前的狀態(tài)。通過全恢復(fù)技術(shù),可以保證數(shù)據(jù)的安全性和完整性,并大大減少企業(yè)和個人在數(shù)據(jù)安全方面的風(fēng)險和損失。下面我們來分析一下數(shù)據(jù)庫全恢復(fù)技術(shù)的重要性。
數(shù)據(jù)庫全恢復(fù)能夠避免數(shù)據(jù)丟失?,F(xiàn)代數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)量龐大,甚至其中一小部分的丟失都會引起災(zāi)難性的后果。比如,銀行的數(shù)據(jù)系統(tǒng)因為系統(tǒng)故障等原因,造成客戶賬戶資金丟失,不僅會影響用戶權(quán)益,也會影響銀行業(yè)務(wù)的穩(wěn)定和發(fā)展。而數(shù)據(jù)庫全恢復(fù)技術(shù)則可以使已丟失的數(shù)據(jù)得到全部或部分恢復(fù),減少數(shù)據(jù)的丟失和損失。
數(shù)據(jù)庫全恢復(fù)可以保證數(shù)據(jù)的完整性。數(shù)據(jù)庫數(shù)據(jù)有著各種不同的表、字段、索引等等,這些數(shù)據(jù)很容易受到各種軟件漏洞、黑客攻擊等等的攻擊而被篡改。如果數(shù)據(jù)被篡改,那么數(shù)據(jù)完整性就已經(jīng)嚴(yán)重受損。而數(shù)據(jù)庫全恢復(fù)技術(shù)通過將數(shù)據(jù)庫恢復(fù)到故障之前,保證了數(shù)據(jù)的完整性,大大保障了數(shù)據(jù)的安全性。
數(shù)據(jù)庫全恢復(fù)可以提升數(shù)據(jù)的可用性。在業(yè)務(wù)高峰時段,系統(tǒng)的訪問“瓶頸”很容易受到破壞,導(dǎo)致運行出現(xiàn)問題。此時,通過數(shù)據(jù)庫全恢復(fù)技術(shù)可以快速恢復(fù)其在故障前的狀態(tài),從而保障系統(tǒng)的高效運行。
綜上所述,數(shù)據(jù)庫全恢復(fù)技術(shù)是一項非常重要的技術(shù),它可以使得數(shù)據(jù)安全無憂。數(shù)據(jù)的安全問題需要我們付出更多的關(guān)注和努力,而數(shù)據(jù)庫全恢復(fù)技術(shù)就是維護(hù)這個安全的重要手段之一。
值得注意的是,數(shù)據(jù)庫全恢復(fù)技術(shù)的實施需要專業(yè)人員,需要有完善的系統(tǒng)、設(shè)備和備份措施作為支撐。在技術(shù)不斷進(jìn)步的今天,專業(yè)的技術(shù)團(tuán)隊和完善的技術(shù)保障體系對于個人和企業(yè)來說都非常必要,尤其對于大型企業(yè)和重要行業(yè),一定要高度重視數(shù)據(jù)安全問題。只有這樣才能真正讓數(shù)據(jù)安全無憂。
相關(guān)問題拓展閱讀:
- mysql整個數(shù)據(jù)庫被刪除了怎么恢復(fù)
- 淺談IBMDB2的數(shù)據(jù)庫備份與恢復(fù)
mysql整個數(shù)據(jù)庫被刪除了怎么恢復(fù)
1 找個別的機(jī)器安裝個同版本的mysql或從已安裝同版本的其他機(jī)器上(非同版本的也可以試下):
拷貝 mysql/data/mysql 目錄到你的mysql/data/ 下吧
2 試著啟動mysql服務(wù),如果能啟動了,理論上應(yīng)該丟失的只有用戶、授權(quán)等一些系統(tǒng)掘槐信息,不影響你的使用的數(shù)據(jù);
如果不能啟動,看錯誤日志,爭取啟動了。
3 趕緊把數(shù)據(jù)備份一份出來,重新把判滲友所有喊兄庫(只是你后來創(chuàng)建的業(yè)務(wù)相關(guān)的庫,不包括mysql庫)都刪了,重新導(dǎo)入一遍。理論上不這樣也可以,但只是非生產(chǎn)重要的環(huán)境下。
4 重新做用戶授權(quán)。
有沒有完整備份?
每個 DBA 是不是粗皮都有過刪庫的經(jīng)歷?刪庫了沒有備份怎么辦?備份恢復(fù)后無法啟動服務(wù)什么情況?表定義損壞數(shù)據(jù)無法讀取怎么辦?逗凳液
我曾遇到某初創(chuàng)互聯(lián)網(wǎng)企業(yè),因維護(hù)人員不規(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),防止其他進(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. 新建一個 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)頁鏈接
網(wǎng)頁鏈接
請點擊輸入圖片描述
淺談IBMDB2的數(shù)據(jù)庫備份與恢復(fù)
摘要 本文探討了基于 IBM DB 的各種數(shù)據(jù)庫備份與恢復(fù)策略 并附有完整的實驗步驟 本文試圖通過具體的實驗使讀者領(lǐng)會各種數(shù)據(jù)庫備份方式的優(yōu)劣和異同 并掌握 IBM DB 的數(shù)據(jù)庫備份與恢復(fù)技術(shù)
若無特殊說明 以下數(shù)據(jù)庫備份與恢復(fù)的試驗環(huán)境均為 Windows XP + IBM DB V 企業(yè)版 同樣的語句也在 AIX + IBM DB V 上驗證通過
叢宏舉一 數(shù)據(jù)庫備份的重要性
在信息日趨發(fā)達(dá)的時代 數(shù)據(jù)顯得尤其重要 如何保障數(shù)據(jù)的完整性和安全性呢?如何避免數(shù)據(jù)災(zāi)難事故的發(fā)生呢?數(shù)據(jù)庫備份作為數(shù)據(jù)安全和完整最有利保障手段的重要性就不言而喻了
數(shù)據(jù)庫絕穗備份的重要性主要體現(xiàn)在
提高系統(tǒng)的高可用性和災(zāi)難可恢復(fù)性 (在數(shù)據(jù)庫系統(tǒng)崩潰的時候 沒有數(shù)據(jù)庫備份怎么辦???)
使用數(shù)據(jù)庫備份還原數(shù)據(jù)庫是數(shù)據(jù)庫系統(tǒng)崩潰時提供數(shù)據(jù)恢復(fù)最小代價的更優(yōu)方案 (總不能讓客戶重新填報數(shù)據(jù)吧???)
沒有數(shù)據(jù)就沒有一切 數(shù)據(jù)庫備份就是一種防范災(zāi)難于未然的強(qiáng)力手段 (沒有了數(shù)據(jù) 應(yīng)用再花哨也是鏡中花水中月)
對于DBA來說 最首要也是最重要的任務(wù)就是數(shù)據(jù)庫備份
二 DB 數(shù)據(jù)庫備份的方式與分類
按照數(shù)據(jù)庫備份對數(shù)據(jù)庫的使用影響來劃分
A 聯(lián)機(jī)備份(也稱熱備份或在線備份)
B 脫機(jī)備份(也稱冷備份或離線備份)
說明 聯(lián)機(jī)備份和脫機(jī)備份更大的不同在于 聯(lián)機(jī)備份數(shù)據(jù)庫時 數(shù)據(jù)庫仍然可以供用戶使用 而脫機(jī)備份數(shù)據(jù)庫則不行 脫機(jī)備份數(shù)據(jù)庫時 必須斷開所有與數(shù)據(jù)庫有連接的應(yīng)用后才能進(jìn)行
按照數(shù)據(jù)庫的數(shù)據(jù)備份范圍來劃分
A 完全備份
B 增量備份
說明 完全備份數(shù)據(jù)庫是指備份數(shù)據(jù)庫中的所有數(shù)據(jù) 而增量備份只是備份數(shù)據(jù)庫中的部分?jǐn)?shù)據(jù) 至于增量備份到底備份哪些數(shù)據(jù) 稍候會提到
增量備份的兩種實現(xiàn)方式
A 增量備份(也稱累計備份)
B delta備份
說明 這兩種備份方式的嚴(yán)格定義如下
增量備份是自最近成功的完全備份以來所有更改的數(shù)據(jù)的備份
delta 備份則是上一次成功的完全 增量或 delta 備份以后所做更改的數(shù)據(jù)的備份
這里請讀者們仔細(xì)的看上面兩個增量備份方式的定義 注意這兩種備滲碧份方式的細(xì)微差別 這里我們舉一個例子來說明
假設(shè)有一個數(shù)據(jù)庫 它每天都有部分?jǐn)?shù)據(jù)在發(fā)生變化 我們星期一晚上對該數(shù)據(jù)庫做了一次完全備份 星期二晚上對該數(shù)據(jù)庫做了一次增量備份A(注 這里的增量備份是指累計備份 下同) 星期三晚上又做了一次增量備份B 星期四則做了一次delta 備份
那么 我們可以得出以下結(jié)論
星期一的數(shù)據(jù)庫備份包含了所有的數(shù)據(jù)
星期二沒有變動過的數(shù)據(jù)沒有發(fā)生備份 在星期二變動過的數(shù)據(jù)會備份 并且備份到增量備份A中
星期三的備份中含有自星期一完全備份以來發(fā)生過變動的所有數(shù)據(jù) 包含了星期二和星期三發(fā)生過變動的數(shù)據(jù) 顯然 增量備份A 被 增量備份 B 包含
星期四做的是delta備份 注意 它會也只會備份自星期三備份之后變動過的數(shù)據(jù)
三 DB 備份文件的結(jié)構(gòu)介紹
在不同的操作系統(tǒng)下 DB 的備份文件的結(jié)構(gòu)是不同的 這里概要地介紹一下
Windows 操作系統(tǒng)下的數(shù)據(jù)庫備份文件結(jié)構(gòu)
說明 Windows 操作系統(tǒng)下的數(shù)據(jù)庫備份文件是嵌套在一系列文件夾之下的特殊結(jié)構(gòu) 上例中 D:\DB _Train 是指備份目錄 TESTDB 是指數(shù)據(jù)庫名稱為 TESTDB DB 是指實例名稱 NODE 是指節(jié)點名稱 CATN 是指編目名稱 是指備份發(fā)生的年月日 形如YYYYMMDD 是指備份發(fā)生的時間 精確到秒 也就是指 點 分 秒 形如HHMMSS 最后的 則是備份文件的一個序列號
Unix 操作系統(tǒng)下的數(shù)據(jù)庫備份文件結(jié)構(gòu)
說明 Unix 操作系統(tǒng)下的數(shù)據(jù)庫備份文件就是一個文件 上例中 HTDC 是指數(shù)據(jù)庫名稱 db inst 是指實例名稱 NODE 是指節(jié)點名稱 CATN 是指編目名稱 是指備份發(fā)生的具體時間 形如YYYYMMDDHHMMSS 同樣地 它的時間精確到秒 也就是指 年 月 日 點 分 秒發(fā)生備份 最后的 則是備份文件的一個序列號
四 DB 數(shù)據(jù)庫備份實驗(附完整命令腳本清單)
DB 數(shù)據(jù)庫實驗準(zhǔn)備工作
( ) Step 創(chuàng)建測試數(shù)據(jù)庫 TestDB
腳本清單CREATE DATABASE TestDBON D:USING CODESET GBK TERRITORY CNWITH Pjj s Test DB ;}
?。?) Step 創(chuàng)建數(shù)據(jù)庫管理表空間 Data_SP(注意路徑 如果沒有請創(chuàng)建)
腳本清單CREATE REGULAR TABLESPACE Data_SPPAGESIZE KMANAGED BY DATABASEUSING ( FILE D:\DB \Container\TestDB\UserData\UserData )BUFFERPOOL IBMDEFAULTBP;
說明 上面的腳本創(chuàng)建了一個名為 Data_SP 的數(shù)據(jù)庫管理表空間 該表空間使用的緩沖池為 IBMDEFAULTBP 存儲路徑為 D:\DB \Container\TestDB\UserData\ 存儲文件名為 UserData 大小為 * K = M 頁大小為 K
( ) Step 創(chuàng)建測試表 TestTable 并插入測試數(shù)據(jù)
腳本清單
CREATE TABLE TestTable(ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH INCREMENT BY NO CACHE )Message VARCHAR( )PRIMARY KEY(ID))IN Data_SP;
插入測試數(shù)據(jù) INSERT INTO TestTable(Message) VALUES( 測試表建立成功 );
說明 建立測試表并插入數(shù)據(jù)是為了稍候驗證數(shù)據(jù)庫恢復(fù)的時候用的
?。?) Step 創(chuàng)建測試表 TestTable 并插入測試數(shù)據(jù)
腳本清單CREATE TABLE TestTable(ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH INCREMENT BY NO CACHE )Message VARCHAR( )PRIMARY KEY(ID))IN Data_SP;
插入測試數(shù)據(jù)INSERT INTO TestTable(Message)VALUES( 測試表建立成功 );
DB 數(shù)據(jù)庫脫機(jī)備份與恢復(fù)實驗
腳本清單
Step 完全備份數(shù)據(jù)庫(脫機(jī) 備份時間戳記為 )
db backup db TestDB to D:\DB _Train
Step 模擬災(zāi)難 強(qiáng)制刪除數(shù)據(jù)庫
db drop db TestDB
Step 根據(jù)該數(shù)據(jù)庫完全備份還原數(shù)據(jù)庫
db restore db TestDB from D:\DB _Train taken at
DB 數(shù)據(jù)庫增量備份與恢復(fù)實驗
腳本清單
數(shù)據(jù)庫增量備份以及還原實驗
修改數(shù)據(jù)庫參數(shù) TrackMod 使之支持?jǐn)?shù)據(jù)庫進(jìn)行增量備份
db update db cfg using TrackMod YES
更改參數(shù)后必須完全離線備份數(shù)據(jù)庫(脫機(jī) 備份時間戳記為 )
db backup db TestDB to D:\DB _Train
插入測試數(shù)據(jù)
INSERT INTO TestTable(Message)VALUES( 開始增量數(shù)據(jù)庫備份測試 );
開始增量備份(脫機(jī) 備份時間戳記為 )
db backup db TestDB incremental to D:\DB _Train
刪除數(shù)據(jù)庫 模擬數(shù)據(jù)災(zāi)難
db drop db TestDB
首先還原至完全離線備份狀態(tài)
db restore db TestDB from D:\DB _Train taken at
還原至增量離線備份狀態(tài)
db restore db TestDB incremental automatic from D:\DB _Train taken at
注意 上述語句中 有一個 automatic 它表示無論有多少個增量備份 系統(tǒng)將全自動檢索恢復(fù)數(shù)據(jù)庫的順序并自動恢復(fù)數(shù)據(jù)庫 如果沒有 automatic 則需要多次手動恢復(fù)數(shù)據(jù)庫 很麻煩而且容易出錯
Step 根據(jù)該數(shù)據(jù)庫完全備份還原數(shù)據(jù)庫
db restore db TestDB from D:\DB _Train taken at
還原數(shù)據(jù)庫后查詢測試表數(shù)據(jù)檢驗數(shù)據(jù)是否恢復(fù)成功
DB 數(shù)據(jù)庫聯(lián)機(jī)機(jī)備份與恢復(fù)實驗
說明 聯(lián)機(jī)備份數(shù)據(jù)庫可以使數(shù)據(jù)庫在備份的同時仍然保持在可用狀態(tài) 要讓數(shù)據(jù)庫支持聯(lián)機(jī)備份 必須更改數(shù)據(jù)庫的日志歸檔方式 在脫機(jī)備份模式下 數(shù)據(jù)庫采用循環(huán)日志方式記錄數(shù)據(jù)庫日志 在聯(lián)機(jī)備份模式下 數(shù)據(jù)庫則采用歸檔日志的方式備份數(shù)據(jù)庫日志 另外 對于聯(lián)機(jī)備份的數(shù)據(jù)庫來說 活動日志和歸檔日志就很重要了 一定要經(jīng)常備份 保存
腳本清單
數(shù)據(jù)庫聯(lián)機(jī)備份以及還原實驗
連接至數(shù)據(jù)庫并插入測試數(shù)據(jù)
db connect to TestDB
插入測試數(shù)據(jù)
INSERT INTO TestTable(Message)VALUES( 開始聯(lián)機(jī)數(shù)據(jù)庫備份測試 完全備份 );
修改數(shù)據(jù)庫參數(shù) 使之支持在線聯(lián)機(jī)備份
db update db cfg for TestDB using logretain on trackmod on
執(zhí)行增量 在線備份之前必須執(zhí)行離線全備份一次 否則數(shù)據(jù)庫將處于備份暫掛的不可用狀態(tài)
(聯(lián)機(jī)完全備份 時間戳記 )
db backup db TestDB
連接至數(shù)據(jù)庫并插入測試數(shù)據(jù)
db connect to TestDB
插入測試數(shù)據(jù)
INSERT INTO TestTable(Message)VALUES( 開始聯(lián)機(jī)數(shù)據(jù)庫備份測試 增量備份 );
執(zhí)行聯(lián)機(jī)備份 備份同時再打開一個會話 模擬應(yīng)用在線(聯(lián)機(jī)增量備份 時間戳記 )
db backup db TestDB online incremental to D:\DB _Train
模擬災(zāi)難 刪除數(shù)據(jù)庫!
重要 此前一定要將活動日志文件備份至另一個路徑 保存好 本例中 活動日志保存在 C:\db admin 下
db drop db TestDB
根據(jù)在線完全備份恢復(fù)數(shù)據(jù)庫
db restore db TestDB from D:\DB _Train taken at
根據(jù)在線增量備份恢復(fù)數(shù)據(jù)庫
db restore db TestDB incremental automatic from D:\DB _Train taken at
恢復(fù)后的數(shù)據(jù)庫處于前滾暫掛的不可用狀態(tài)
db connect to TestDB
前滾數(shù)據(jù)庫 并指定歸檔日志位置 重要!
db ROLLFORWARD DATABASE TESTDB TO END OF LOGS AND PLETE OVERFLOW LOG PATH ( C:\db admin )
五 綜述
對于數(shù)據(jù)庫管理人員或者維護(hù)人員來說 怎么強(qiáng)調(diào)數(shù)據(jù)庫備份的重要性都不為過
希望本文能拋磚引玉 能讓大家對 IBM DB UDB 的數(shù)據(jù)庫備份與恢復(fù)有一些深入的認(rèn)識 也希望大家能在本機(jī)上按照本文的腳本認(rèn)真的做一次實驗 這樣 你的認(rèn)識會更加深刻
lishixinzhi/Article/program/Oracle/202311/18590
關(guān)于數(shù)據(jù)庫 全恢復(fù)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guā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è)提供云主機(jī)、虛擬主機(jī)、域名注冊、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
網(wǎng)站名稱:數(shù)據(jù)庫全恢復(fù):讓數(shù)據(jù)安全無憂(數(shù)據(jù)庫全恢復(fù))
網(wǎng)頁網(wǎng)址:http://fisionsoft.com.cn/article/djoeiho.html


咨詢
建站咨詢
