成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle數(shù)據(jù)庫的備份及恢復策略研究

數(shù)據(jù)庫 Oracle 數(shù)據(jù)庫運維
隨著信息系統(tǒng)在各種商務活動中重要性的不斷增強,維護系統(tǒng)數(shù)據(jù)的可用性已成為當前一個十分重要的課題。為了有效地保持健康的信息系統(tǒng),必須采取一定的措施防止在由介質、操作系統(tǒng)、軟件和其它事件導致重要數(shù)據(jù)庫文件嚴重損壞的情況下影響RDBMS(關系數(shù)據(jù)庫管理系統(tǒng)),進而影響信息系統(tǒng)的正常運行。

數(shù)據(jù)庫備份、恢復的基本規(guī)則

1、多工聯(lián)機重作日志文件

每個數(shù)據(jù)庫實例都有其自己的聯(lián)機重作日志組,在操作數(shù)據(jù)庫時,Oracle首先將數(shù)據(jù)庫的全部改變保存在重作日志緩沖區(qū)中,隨后日志記錄器進程(LGWR)將數(shù)據(jù)從系統(tǒng)共用區(qū)SGA(System Global Area)的重作日志緩沖區(qū)寫入聯(lián)機重作日志文件,在磁盤崩潰或實例失敗時,可以通過與之相關的聯(lián)機重作日志來保護數(shù)據(jù)庫,將損失降至***,但Oracle在默認的方式下只創(chuàng)建一組重作日志文件(每一組只有一個項目文件),為了減少丟失這些重要的重作日志文件的危險,因此需要對其進行鏡像拷貝。

在Oracle級多工聯(lián)機重作日志文件,即增加多個文件到每個組以便鏡像數(shù)據(jù),這樣I/O故障或寫丟失只損壞一個拷貝,從而保證了LGWR后臺進程至少能夠向一個成員寫入信息,數(shù)據(jù)庫仍然可以繼續(xù)運行。同時應保證日志組的成員不應駐存在同一物理設備上,因為這將削弱多重日志文件的作用。

2、鏡像拷貝控制文件

控制文件描述通用的數(shù)據(jù)庫結構,它存儲了大量數(shù)據(jù)庫狀態(tài)信息,包括物理結構和聯(lián)機重作日志文件在當時的名稱、位置、狀態(tài)。控制文件在數(shù)據(jù)庫啟動時被Oracle實例讀取,保持打開并隨著操作而文件內(nèi)容更新,直到實例關閉為止。在它打開的過程中能夠同步需要恢復的信息,包括檢查點信息,因此若損壞或丟失了控制文件,Oracle將不能繼續(xù)工作,因此應在系統(tǒng)中保持控制文件的多個拷貝,且這些拷貝應置于安裝于不同磁盤控制器下的不同磁盤設備中。

由于Oracle沒有提供對控制文件多工的完整支持,因此應在對控制文件使用操作系統(tǒng)或硬件鏡像,即在修改初始化文件的control_files參數(shù)后重新啟動數(shù)據(jù)庫前,應將控制文件復制到定義的新位置,否則數(shù)據(jù)庫啟動時將會出錯。

3、激活歸檔進程

當數(shù)據(jù)庫運行于NOARCHIVELOG模式下時,只能在完全關閉數(shù)據(jù)庫后進行數(shù)據(jù)庫的一致備份,并且同時禁用了聯(lián)機重作日志的存檔,這樣在Oracle實例失敗時只能將數(shù)據(jù)庫修復到最近的完整數(shù)據(jù)庫備份時的那一點上,不能在失效點處對實例進行恢復。而在ARCHIVELOG模式下,數(shù)據(jù)庫不僅可以進行一致備份,還可以在數(shù)據(jù)庫打開的情況下進行聯(lián)機備份。通過數(shù)據(jù)庫的備份和聯(lián)機與存檔的重作日志文件,用戶可以恢復所有已提交的事務,并允許將數(shù)據(jù)庫恢復到指定的時間、SCN或日志系列號處,增大了恢復的靈活性,減少了故障時的數(shù)據(jù)丟失。因此數(shù)據(jù)庫應運行于ARCHIVELOG模式。

在ARCHIVELOG模式下為了防止文件損壞和介質故障,應把日志歸檔到不同的磁盤上,這可以通過在初始化文件中為歸檔重作日志指定多個目標實現(xiàn)。

4、數(shù)據(jù)庫實施較大改變時備份

因為控制文件中保存了數(shù)據(jù)庫的模式結構信息,因此在對數(shù)據(jù)庫進行較大改變(包括改變表結構,增加、刪除日志文件或數(shù)據(jù)文件等)時應立即備份控制文件及相應的數(shù)據(jù)文件。

5、使用RESETLOGS選項打開數(shù)據(jù)庫后進行備份

在以RESETLOGS選項打開數(shù)據(jù)庫后,應對整個數(shù)據(jù)庫進行脫機或聯(lián)機的備份,否則將不能恢復重置日志后的改變。

當以RESETLOGS選項打開數(shù)據(jù)庫時,Oracle將拋棄恢復中沒有應用的重復信息,并確保永遠不再運用,同時還將初始化控制文件中關于聯(lián)機日志和重作線程的信息、清除聯(lián)機日志中的內(nèi)容。因此,RESETLOGS前的歸檔日志的序列號將與RESETLOGS后的Oracle控制文件的要求值不相符(備份文件中的檢查點比控制文件中的檢查點舊),即在恢復中不能應用以前的歸檔日志文件,從而導致RESETLOGS操作之前的備份在新形體中無用。

6、避免備份聯(lián)機重作日志文件

由于文中提出了多工聯(lián)機重作日志文件且數(shù)據(jù)庫運行于ARCHIVELOG模式,ARCH進程能夠將聯(lián)機重作日志歸檔,因此不必對其進行備份。若用備份的聯(lián)機重作日志文件重建它,可能會引起日志文件序列號的混亂,從而破壞數(shù)據(jù)庫,得到適得其反的結果。

7、重置聯(lián)機日志

在進行了不完全恢復或用備份控制文件進行恢復后,應重置聯(lián)機日志。

為了確保數(shù)據(jù)庫的一致性,必須保證在恢復后所有數(shù)據(jù)文件都恢復到同一個時間點,但不完全恢復可能導致數(shù)據(jù)文件中具有一個與其它文件不同的檢查點,導致數(shù)據(jù)庫的一致性受到破壞。同樣,備份的控制文件中保存的SCN和計數(shù)器與當前日志文件中的值可能不同,從而也破壞了數(shù)據(jù)庫的一致性,因此應在進行完上述兩項操作后重置聯(lián)機日志。

8、數(shù)據(jù)庫的邏輯備份

以上所述備份都為物理備份,是實際物理數(shù)據(jù)庫文件從一處拷貝到另一處的備份,除此之外還可使用Oracle提供的導出實用程序進行數(shù)據(jù)庫的邏輯備份。Oracle同時還提供了相應的導入實用程序重建邏輯備份中保存的信息。

邏輯備份只拷貝數(shù)據(jù)庫中的數(shù)據(jù),而不記錄數(shù)據(jù)位置的備份過程。它利用SQL語句,從數(shù)據(jù)庫中導出數(shù)據(jù)到一個存放在合適位置的外部文件中,同時并可檢測到數(shù)據(jù)塊的損壞,因此可用其作為物理備份的補充。

備份策略

考慮到如今大部分信息系統(tǒng)每周的業(yè)務是24×7操作,因此采用聯(lián)機備份,否則可每隔一定時間進行一次脫機備份。

應用上述規(guī)則,可得出下述典型的備份策略:

①鏡像拷貝重作日志文件;

②鏡像拷貝控制文件;

③激活歸檔進程,即以ARCHIVELOG模式操作數(shù)據(jù)庫;

④每天進行數(shù)據(jù)庫的部分聯(lián)機備份(每天進行數(shù)據(jù)庫的完全熱備份將無畏地增加數(shù)據(jù)庫的負擔且沒有必要,同時也增加了數(shù)據(jù)庫恢復時的靈活性);

⑤每隔一周或幾周進行一次數(shù)據(jù)庫的邏輯備份。

實際項目應用

當數(shù)據(jù)庫中的文件達到一定數(shù)量后,DBA可能記不住該備份的文件的名或位置,因此,若能使備份過程自動化可有效地減輕DBA的負擔,同時不會遺漏應備份的文件,應用自動批處理文件及腳本文件可實現(xiàn)備份、恢復的自動化。下面簡介了在實際項目開發(fā)中應用本文所提出的自動備份、恢復策略,通過實際應用,證明了該策略的正確性和可行性。

(1)下述腳本實現(xiàn)聯(lián)機重作日志的多工:

connect 賬戶名/密碼
alter database ktgis add logfile member 日志文件的存儲位置 to group 聯(lián)機日志組號;
shutdown immediate
startup pfile=初始化文件的存放位置 exclusive mount; 裝載數(shù)據(jù)庫且不打開
alter database archivelog; 激活歸檔進程
alter database open;
exit

(2)下列VB代碼自動建立聯(lián)機備份的批處理文件及相應的腳本文件。

Set adoTmp = objConnect.Execute(”select tablespace_name from sys.dba_data_files”) ’得到數(shù)據(jù)庫中的表空間名
Dim lnum1 As Long
Dim lnum2 As Long
lNum = FreeFile
Open 自動備份批處理文件路徑 For Binary As lNum
lnum1 = FreeFile
Open “onlinebegin.sql” For Binary As lnum2 onlinebegin.sql為設置表空間進入熱備份模式的腳本文件文件名
lnum2 = FreeFile
Open “onlineend.sql” For Binary As lnum2 onlinebegin.sql為結束表空間熱備份模式的腳本文件文件名
strTmp = ” connect 賬戶名/密碼” & Chr(13) & Chr(10)
Put lnum1, , strTmp
strTmp = “shutdown immediate” & Chr(13) & Chr(10)
Put lnum1, , strTmp
strTmp = “startup pfile=初始化文件的存放位置exclusive mount; ” & Chr(13) & Chr(10)
Put lnum1, , strTmp
strTmp = “alter database archivelog; ” & Chr(13) & Chr(10)
Put lnum1, , strTmp
strTmp = “alter database open; ” & Chr(13) & Chr(10)
Put lnum1, , strTmp
strTmp = ” connect 賬戶名/密碼” & Chr(13) & Chr(10)
Put lnum2, , strTmp
strTmp = Oracle服務管理器路徑 & ” @” & ” onlinebegin.sql ” & Chr(13) & Chr(10) 在服務管理器中執(zhí)行腳本文件onlinebegin.sql
Put lNum, , strTmp
Do While Not adoTmp.EOF
Set adoTmp1 = objConnect.Execute(”select file_name from sys.dba_data_files where tablespace_name=’” & adoTmp.Fields(0) & “’”) 得到當前表空間所對應的所有數(shù)據(jù)文件名,通過循環(huán)即可得到所有表空間所對應數(shù)據(jù)文件名,若只備份指定的表空間,可指定表空間名從而得到其對應的物理數(shù)據(jù)文件.

strTmp = “alter tablespace ” & adoTmp.Fields(0) & ” begin backup;” & Chr(13) & Chr(10) 將表空間置于熱備份模式
Put lnum1, , strTmp
strTmp = Oracle的ocopy.exe工具全路徑 ” & adoTmp1.Fields(0) & ” ” & 備份文件存放路徑 & Chr(13) & Chr(10)
Put lNum, , strTmp
strTmp = “alter tablespace ” & adoTmp.Fields(0) & ” end backup;” & Chr(13) & Chr(10) 表空間恢復正常模式
Put lnum2, , strTmp
adoTmp.MoveNext
Loop
strTmp = Oracle服務管理器路徑 & ” @” & ” onlineend.sql” & Chr(13) & Chr(10) 在服務管理器中執(zhí)行腳本文件onlineend.sql
Put lNum, , strTmp
strTmp = “exit” & Chr(13) & Chr(10) 退出服務管理器
Put lnum1, , strTmp
strTmp = “alter system switch logfile;” & Chr(13) & Chr(10) 強制日志轉換,使Oracle創(chuàng)建一個歸檔日志文件
Put lnum2, , strTmp
strTmp = “exit” & Chr(13) & Chr(10)
Put lnum2, , strTmp
Close
Set adoTmp = Nothing
Set adoTmp1 = Nothing

運行得到的自動批處理文件,即可自動進行數(shù)據(jù)庫的聯(lián)機備份。

(3)在從備份中恢復數(shù)據(jù)文件后,執(zhí)行下列腳本將數(shù)據(jù)庫的恢復程序。

connect賬戶名/密碼
shutdown abort
startup mount pfile=初始化文件的存放位置; 裝載數(shù)據(jù)庫
set autorecovery on; 打開自動恢復
recover database;
alter database open; 打開數(shù)據(jù)庫

結束語

提高數(shù)據(jù)庫災難后恢復的可靠性正越來越多地受到人們的關注,本文根據(jù)個人在實際項目開發(fā)過程中的經(jīng)驗及恢復時的靈活性對Oracle數(shù)據(jù)庫的備份及恢復進行了探討,并提出了典型的備份策略,用戶可以根據(jù)自己的實際情況及數(shù)據(jù)庫結構在此基礎上靈活應用。

【編輯推薦】

  1. Oracle千萬條記錄插入與查詢小結
  2. Oracle中視圖的創(chuàng)建和處理方法
  3. 實戰(zhàn)Oracle數(shù)據(jù)庫備份與恢復
責任編輯:彭凡 來源: 51CTO
相關推薦

2011-08-02 16:03:47

Oracle數(shù)據(jù)庫冷備份冷備份異地恢復

2010-04-12 10:40:49

Oracle數(shù)據(jù)庫

2009-04-03 10:54:49

Oracle備份恢復

2010-04-12 14:19:00

Oracle數(shù)據(jù)庫備份

2010-04-13 11:09:21

Oracle數(shù)據(jù)庫

2011-04-11 13:46:17

Oracle數(shù)據(jù)庫備份

2009-10-13 09:43:43

Oracle數(shù)據(jù)庫備份

2017-03-14 14:09:08

數(shù)據(jù)庫Oracle備份

2011-08-01 12:44:25

Oracle基于用戶管理備份與恢復

2010-03-30 10:05:02

Oracle數(shù)據(jù)庫

2011-05-20 09:35:24

Oracle數(shù)據(jù)庫恢復備份

2009-03-17 16:00:47

Oracle數(shù)據(jù)庫備份

2023-09-12 09:45:54

Java數(shù)據(jù)庫

2023-11-15 09:38:49

Oracle數(shù)據(jù)庫

2011-03-04 14:59:16

Raidoracle數(shù)據(jù)庫

2010-03-31 10:39:40

RMANOracle

2011-05-18 11:19:37

Oracle優(yōu)化停機時間

2011-08-03 18:42:21

Oracle數(shù)據(jù)庫重做日志

2010-10-14 10:18:28

MySQL數(shù)據(jù)庫備份

2011-03-24 17:21:42

Oracle數(shù)據(jù)庫Redo故障
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美在线一区二区三区 | 精品国产一区二区三区免费 | 国产高清在线精品一区二区三区 | 免费黄网站在线观看 | 国产精品久久国产精品 | av天天看| 欧美一区二区三区的 | 久久成人国产精品 | 超碰日本 | 久久久精品一区二区 | 国产剧情一区 | 久久久99精品免费观看 | 91麻豆精品一区二区三区 | 精品无码三级在线观看视频 | 国产日韩欧美91 | 丁香一区二区 | 97伦理电影网 | 欧美网址在线观看 | av在线一区二区 | 亚洲高清一区二区三区 | 国产高清在线精品一区二区三区 | 拍拍无遮挡人做人爱视频免费观看 | 少妇无套高潮一二三区 | 婷婷综合激情 | 日韩欧美福利视频 | 日本亚洲一区 | 精品久久久久一区二区国产 | 福利一区在线观看 | 综合二区 | 精品国产乱码久久久久久图片 | 自拍偷拍中文字幕 | 亚洲精品自拍 | 欧美成人精品欧美一级 | 在线免费观看毛片 | 天天天天天天操 | 天天狠狠 | 91亚洲精品在线 | 日韩中文不卡 | 中文字幕亚洲一区二区三区 | 国产精品久久久av | 国产精品成人69xxx免费视频 |