如果妳是計算機專業的,可以建議去網絡上做研究,網絡熱門,信息量大,有用。
其他的,比如數據庫,參考資料比算法和數據結構多。
相關範文:
數據庫的備份和恢復。
本文從Oracle的體系結構出發,從原理到實踐,探討了Oracle數據庫備份的方法和策略。包括進出口、RMAN、操作系統備份等。
文摘:從Oracle的體系結構出發,從理論和實踐上探討了數據庫ORACLE的備份方法和策略,包括IMP/EXP、PMAN和OS。
關鍵詞:Oracle,備份,恢復,RMAN
關鍵詞:甲骨文;備份;恢復;RMAN
摘要
大型軟件運行系統的備份策略有很多,如RAID技術、集群技術等。很多時候,這些系統的備份可以解決數據庫備份的問題。但是,這種備份非常昂貴。同時,硬件備份有時也不能滿足實際需要。如果用戶不小心刪除了壹個表,並想恢復它,數據庫備份就變得很重要。
簡介:在壹些大型軟件的運行系統中,存在多種備份策略,如RAID技術、集群技術等。在大多數情況下,這些系統備份策略可以完成數據庫備份。然而,成本相當高。同時,硬件備份有時與實際需求相差甚遠。當壹個表被意外刪除並需要恢復時,數據庫備份變得非常重要。
Oracle如何工作
Oracle數據庫有兩種操作模式:壹種是ARCHIVELOG,目的是在數據庫出現故障時,最大限度地恢復數據庫,保證提交的數據不丟失;第二,無存檔模式(NOARCHIVELOG)只能將數據庫恢復到最近的恢復點(冷備份或邏輯備份)。根據數據庫的高可用性和用戶可以承受的丟失工作量,對實時性要求高的數據庫強烈要求歸檔;非存檔方法僅用於那些開發和調試的數據庫。
如何改變數據庫的操作模式,創建數據庫時,作為創建數據庫的壹部分,決定了數據庫的初始存檔模式。壹般來說是NOARCHIVELOG模式。創建數據庫時,根據我們的需要,需要在歸檔模式下運行的數據庫被更改為ARCHIVELOG模式。操作如下。
1.關閉數據庫,備份已有數據,改變數據庫的運行方式,這些都是對數據庫的重要更改,所以有必要對數據庫進行備份,保護可能出現的問題。
2.修改初始試驗參數以啟用自動存檔。
修改(添加)初始化文件init[SID]。ora參數:
Log_archive_start=true #開始自動存檔。
log _ archive _ format = arc % t % s . arc #歸檔文件格式
log _ archive _ dest =/arch dir/arch #歸檔路徑
在8i中,最多可以有五個歸檔路徑,它們可以歸檔到其他服務器,例如備用數據庫服務器。
3.將實例啟動到Mount狀態,即加載數據庫而不打開它。
$ & gtsvrmgrl
SVRMGRL & gt連接內部
SVRMGRL & gt啟動安裝
SVRMGRL & gt更改數據庫歸檔日誌;//使數據庫以存檔模式運行。
SVRMGRL & gt打開數據庫;
Oracle的備份方案
按照備份的方式可以分為邏輯備份、冷備份(離線備份)和熱備份(在線備份),其中冷備份和熱備份可以統稱為物理備份。根據備份工具,可以分為EXP/IMP備份、操作系統備份、RMAN備份和第三方工具備份,如VERITAS。下面是Oracle自己提供的幾個備份工具和操作。
1.出口/進口備份(邏輯備份)
EXP/IMP屬於邏輯備份的範疇,是指只備份數據庫中的數據,而不記錄數據的物理位置的備份。Export對數據庫進行二進制備份,這個備份只能由它的姊妹程序imp(imp)讀取。具體使用方法如下。(因為EXP和IMP的參數基本相同,所以僅以EXP為例。)
EXP的命令格式和參數
格式:關鍵字=值或關鍵字=(值1,值2,...,valuen)
例程:expscott/tiger grants = ytables =(EMP,dept,mgr)
USERID必須是命令行上的第壹個參數。
關鍵字描述(默認)關鍵字描述(默認)
USERID用戶名/密碼完整導出整個文件(n)
緩沖區數據緩沖區所有者用戶名列表的大小
文件輸出文件(EXPDAT。DMP)表表名列表
COMPRESS導入recordlengthio記錄的長度範圍(y)。
授予導出權限(Y) INCTYPE增量導出類型
索引導出索引(Y)記錄跟蹤增量導出(Y)
行導出數據行(Y) PARFILE參數文件名
約束導出約束(y)壹致性交叉表壹致性
日誌文件統計分析對象(估計)從日誌屏幕輸出。
直接直接路徑(N)觸發導出觸發器(y)
反饋顯示每個x線的進度(0)。每個轉儲文件的最大大小是文件大小。
查詢所選導出表子集的子句。
註意:您可以通過exp -help命令檢查exp的用法;Imp -help命令查看如何使用Imp。
2.操作系統備份(冷備份和熱備份)
有兩種類型的操作系統備份,冷備份和熱備份。操作系統備份與上面的邏輯備份有本質區別,邏輯備份會復制整個數據文件。
離線備份
在文件級備份開始之前,必須完全關閉數據庫。關閉操作必須使用帶有正常、立即和事務選項的關閉來執行。
備份數據庫中使用的每個文件,包括所有數據文件、所有控制文件、所有在線重做日誌文件和INIT。ORA文件(推薦)。
冷備份的壹般步驟是:
1)關閉實例進行正常備份;
2)將整個數據庫備份到壹個目錄中。
3)啟動數據庫
即:
SVRMGRL & gt連接內部
SVRMGRL & gt立即關閉
SVRMGRL & gt!cp & lt文件& gt& lt備份目錄& gt
或者
SVRMGRL & gt!tar CVF/db bak/full bk . tar/u 01/Oracle/oradata/dbname
SVRMGRL & gt啟動
熱備份
熱備份是數據庫打開時的操作系統備份。熱備份只能用於ARCHIVELOG模式下的數據庫。熱備份不需要備份在線日誌,但它必須處於存檔狀態,這在實例恢復時可能需要。當前在線日誌必須受到良好保護或處於鏡像狀態。當前在線日誌對於數據庫的破壞是巨大的,數據庫只有在數據丟失的情況下才能恢復。對於臨時表空間,存儲臨時信息。在熱備份中,也可以考慮不備份。如果臨時文件失敗,您可以刪除數據文件和表空間,並重建臨時表空間。
熱備份的內容與冷備份相同,壹般操作步驟如下:
1)備份的表空間使用Alter Tablespace...開始備份,使表空間進入熱備份模式。
2)用類似冷備份的操作系統命令復制組成表空間的數據文件。
3)使用alter表空間...結束備份命令,使表空間脫離熱備份模式。
4)使用變更數據庫...備份控制文件命令來備份控制文件。
即:
SVRMGRL & gt連接內部;
SVRMGRL & gtalter tablespace用戶開始備份;
SVRMGRL & gt!CP/u 01/oradata/dbname/user 01 . ora/db bak/user 01 . ora
SVRMGRL & gt更改表空間用戶端備份;
SVRMGRL & gt將數據庫備份控制文件更改為& ltfielname & gt;
或者
SVRMGRL & gt將數據庫備份控制文件更改為trace
註意:由於熱備份時用戶仍在操作數據庫,所以最好使每個表空間保持最短時間的備份狀態,這需要備份壹個表空間。在將表空間壹起保持在備份狀態時,不要復制數據文件。
3.RMAN
Recovery Manager(RMAN)是壹款Oracle應用工具,使DBA能夠方便地對數據庫執行備份和恢復任務,並為DBA提供對企業數據庫備份和恢復操作的集中控制。RMAN只能在ORACLE8或更高版本中使用。它可以備份整個數據庫或數據庫組件,包括表空間、數據文件、控制文件和歸檔文件。RMAN可以根據需要訪問並執行備份和恢復。
RMAN支持六種不同類型的備份,其中兩種是常用的:
完整數據庫完整備份,包括所有數據塊。
增量增量備份是指僅備份自上次相同級別或更低級別備份以來發生更改的那些數據塊。這需要0級增量作為增量的基礎,其備份包括數據庫已使用的所有數據塊(但不是完整數據庫備份)。RMAN***可以支持7級增量。
備份、還原和恢復是RMAN的三個基本命令,分別用於備份、還原和恢復數據庫。restore命令用於從備份集或映像副本中還原數據文件、控制文件或歸檔重做日誌。recovery命令用於媒體恢復,以應用重做日誌文件。
RMAN的備份信息壹般存儲在恢復目錄中,恢復目錄也是壹個數據庫,只不過這個數據庫是用來存儲備份信息的,壹個恢復目錄可以存儲多個數據庫的備份信息。RMAN也可以在沒有恢復目錄的情況下運行,在這種情況下,備份信息保存在控制文件中。這種情況更加危險,因為壹旦控制文件被破壞,就會導致數據庫備份信息全部丟失,恢復失敗。此外,如果不恢復目錄,許多RMAN命令將不受支持。因此,建議為重要的數據庫創建壹個恢復目錄。
創建恢復目錄通常包括以下步驟。(示例數據庫是db)
1)為目錄創建壹個單獨的表空間。
SQL & gt創建表空間TSR man datafile '/dbbak/RMAN/RS RMAN . DBF '大小為50M
2)創建RMAN用戶
SQL & gt創建由rman默認表空間rsrman臨時表空間temp標識的用戶RMAN;
3)授予RMAN權限
SQL & gt將connect,resource,recovery_catalog_owner授予rman。
4)打開RMAN
$rman
5)連接恢復目錄數據庫
RMAN & gt;連接目錄rman/rman@db
6)創建恢復目錄
RMAN & gt;創建目錄表空間tsrman
在備份數據庫之前,必須在恢復目錄中註冊該數據庫。這個過程如下(假設目標數據庫連接字符串是db100)。
1)連接到恢復目錄數據庫。
$rman rman/rman@db
2)連接到RMAN的目標數據庫(要備份的數據庫)。
RMAN & gt;連接目標sys/change _ on _ install @ db 100
3)註冊數據庫
RMAN & gt;註冊數據庫;
註冊數據庫後,您可以備份數據庫。有完整的數據庫備份、表空間備份、控制文件備份和歸檔日誌備份。操作如下。
1)完整數據庫備份
要求:ARCHIVELOG模式,在DB OPEN中完成數據庫備份。
RMAN & gt;運行{
分配通道c1類型=磁盤;
備份數據庫;
釋放通道c 1;
}
2)表空間備份
要求:歸檔日誌模式
RMAN & gt;運行{
分配通道c1類型=磁盤;
備份表空間" ts_users" filesperset 3格式' aatst _ % t % s . % p ';
釋放通道c 1;
}
3)控制文件備份
RMAN & gt;運行{
分配通道c1類型=磁盤;
備份當前控制文件tag = weekly _ sat _ backup
釋放通道c 1;
}
當數據庫完全備份後,控制文件會自動包括在內。您還可以在表空間或數據文件的備份中包含控制文件。
RMAN & gt;運行{
分配通道c1類型=磁盤;
備份表空間“ts_users”
filesperset 3格式“aatst _ % t % s . % p”;
包括當前控制文件;
釋放通道c 1;
}
4)歸檔日誌備份
通過查詢數據字典表V$ARCHIVED _ LOG獲取要備份的日誌序列號,然後執行以下命令:
RMAN & gt;運行{
分配通道c1類型=磁盤;
備份歸檔日誌低日誌序列3高日誌序列10線程1;
釋放通道c 1;
}
Oracle的備份戰略
正確的備份策略不僅能保證數據庫服務器的24*7高性能運行,還能保證備份和恢復的快速性和可靠性。我們將討論RMAN的多級增量備份,作為備份策略的示例。多級備份用於減少日常備份所需的時間,同時確保系統的良好恢復。在恢復時間和備份時間之間有壹個權衡。例如,只要對數據庫進行完全備份,然後只進行備份和歸檔,就可以將數據庫恢復到最新狀態,但這樣的恢復時間將是無法忍受的。多級備份正是為了解決這個問題,結合壹些應用的特點,可以采用以下備份策略:
每月對數據庫進行壹次完整備份(包括所有數據和只讀表空間);
每周壹做壹次零級備份(只讀表空間除外);
每周三做壹次壹級備份;
每天做壹個二次備份。
每天對恢復目錄進行壹次熱備份。
任何數據庫更改都需要重新同步編目目錄並再次備份(例如添加數據文件)或再次備份(例如將表空間更改為只讀)。
每次備份後,您可以備份存檔日誌或定期備份存檔日誌。如果可能,可以直接備份到磁帶上。
Oracle的恢復
以下操作協議恢復目錄存儲在db118,目標數據庫為db100。
1.數據庫恢復
1)啟動SQL*PLUS,使用正確的init.ora文件,並使用NOMOUNT選項啟動目標數據庫實例。
2)啟動RMAN並連接到恢復目錄,如下所示:
$rman目錄rman/rman@db118
恢復管理器:版本9 . 2 . 0 . 1.0-生產
版權所有(c) 1995,2002,甲骨文公司。版權所有
連接到恢復目錄數據庫
RMAN & gt;
3)連接到目標數據庫
RMAN & gt;連接目標內部/oracle@db100
連接到目標數據庫:db(dbid = 1142471523)
4)連接到目標數據庫後,執行restore命令以執行完整數據庫恢復。
RMAN & gt;運行{
2 & gt分配通道c1型磁盤;
3 & gt還原數據庫;
4 & gt釋放通道c 1;
}
2.表空間和數據文件恢復
要執行表空間或數據文件恢復,數據庫必須在ARCHIVELOG模式下運行,並且用戶需要有介質恢復所需的歸檔重做日誌文件。在嘗試恢復表空間之前,必須確保表空間處於離線狀態。RMAN的命令如下:
運行{
分配通道c1型磁盤;
SQL“alter tablespace users _ data offline immediate”;
還原表空間users _ data
恢復表空間users _ data
SQL“alter tablespace users _ data online”;
}
上述腳本執行以下操作:
1) RMAN分配信道用於從c1的恢復操作。
2)使表空間users_data脫機。
3) RMAN從備份集中恢復屬於表空間的數據文件。
4)通過介質恢復提供所需的歸檔日誌文件,恢復屬於表空間users_data的數據文件。
5) RMAN將表空間聯機。
在腳本執行期間,如果數據文件無法還原到指定位置,請在執行restore命令之前使用set newname命令。
3.控制文件恢復
1)啟動SQL*PLUS,使用正確的init.ora文件,並使用NOMOUNT選項啟動目標數據庫實例。
2)啟動RMAN並連接到恢復目錄,如下所示:
$rman目錄rman/rman@ora8i.oracle
恢復管理器:版本9 . 2 . 0 . 1.0-生產
版權所有(c) 1995,2002,甲骨文公司。版權所有
連接到恢復目錄數據庫
RMAN & gt;
3)連接到目標數據庫
RMAN & gt;連接目標internal/oracle@demo.oracle
連接到目標數據庫:db(dbid = 1142471523)
4)連接到目標數據庫後,執行restore命令以恢復控制文件。
RMAN & gt;運行{
2 & gt分配通道c1型磁盤;
3 & gt還原控制文件;
4 & gt}
總結
保證Oracle數據庫的安全是系統安全的重要組成部分,必須設計完善的數據庫備份和恢復方案。Oracle提供的各種工具的組合可以使數據庫備份和恢復變得簡單。在Oracle數據庫的實際備份和恢復中,會出現很多不合理和復雜的情況。根據不同的情況,需要以使數據具有最大的可恢復性和最短的恢復時間為原則來恢復數據庫,這需要大量的實踐和經驗積累。
參考
[1] Oracle8i備份和恢復指南Oracle文檔
[2] Oracle8i恢復管理器用戶指南和參考Oracle文檔
[3] Oracle9i:初學者指南(美)邁克爾·艾比·邁克爾·科瑞揚·艾布拉姆森2002.3機械工業出版社。
[4] Oracle8i備份與恢復手冊(美)拉馬維爾普裏阿南德阿德科利王樂妍等譯2001.9機械工業出版社。
僅供參考,請大家自己學習。
希望對妳有幫助。