--? 只讀表空間的備份與恢復
--======================
一、只讀表空間的特性
?? ?使用只讀表空間避免對靜態數據的頻繁備份
?? ?當使用alter tablespace tbs read only時,數據文件會執行檢查點進程(將所有臟緩沖區的內容寫至磁盤),
?? ??? ?當前的SCN號會被標注,同時存儲了SCN的數據文件頭部被凍結.控制文件內也會記錄該數據文件的凍結信息。
?? ?可以清除只讀表空間的對象
?? ?
二、只讀表空間的備份
?? ?一般情況下,只讀表空間只需要進行一次備份,即當表空間狀態發生改變時應立即進行備份
?? ?可以使用OS系統cp命令來備份或RMAN進行備份只讀表空間
?? ?使用RMAN時建議啟用備份優化選項
?? ??? ?RMAN> CONFIGURE BACKUP OPTIMIZATION ON;
?? ??? ?
?? ?只讀表空間不支持熱備
?? ?SQL> alter tablespace tbs1 begin backup;
?? ?alter tablespace tbs1 begin backup
?? ?*
?? ?ERROR at line 1:
?? ?ORA-01642: begin backup not needed for read only tablespace 'TBS1'
三、只讀表空間的還原與恢復
?? ?還原與恢復只讀表空間的問題在于控制文件如何控制只讀表空間,分為下列三種情況:?? ?
?? ?---------? ---------------? ----------------? -------------------------------------
?? ?case?????????? backup 1???? crash status?????????????????? recovery
?? ?---------? ---------------? ----------------? -------------------------------------
?? ?case 1??????? Read-Only??????? Read-Only????? 將備份的只讀表空間復制到目的地(Restore)
?? ?case 2??????? Read-Only??????? Read-Write???? 先Restore backup1,后recover(applied log )
?? ?case 3??????? Read-Write?????? Read-only???? ? 先Restore backup1,后recover(applied log )
?? ?只讀表空間恢復時需要考慮的問題
?? ??? ?重建一個控制文件時
?? ??? ?重命名數據文件時
?? ??? ?使用一個備份的控制文件時
?? ?
?? ?下面對表空間tbs1置為只讀后對比前后生成的重建控制文件的腳本?? ????
??? 對比兩者
?? ??? ?1.使用create controlfile命令時,datafile中未列出只讀表空間的數據文件
?? ??? ?2.成功創建控制文件并打開后,使用alter database rename file命令重命名只讀表空間的數據文件
?? ??? ?3.使用alter tablespace readonly_tablespacename online 將只讀表空間聯機
四、演示只讀表空間變化的恢復過程? ? ??? ?
?? ?1. 演示整個過程為只讀表空間的情況(對應前面描述的case 1)?? ????
?? ???? 從上面的演示可以看出對只讀表空間內的數據作任何DML操作均不可用
?? ??? ?在 Oracle 表空間與數據文件 ?? ?一文中,可以對只讀表空間作delete操作(版本是10.2.0.1.0),應該是數
?? ??? ?據庫補丁的問題,?? ?此版本為10.2.0.4.0。?? ????
??? 2. 演示由只讀變為讀寫后發生損壞且只有只讀備份的恢復情況(對應前面描述的case 2)? ????
??? 3. 演示由讀寫表空間變為只讀表空間,且僅有讀寫表空間備份的恢復(對應前面描述的case 3)?? ???
??? 4. 演示數據文件狀態發生多次變化且在變化時沒有任何備份的恢復處理(實際上使用日志來重新構造該數據文件)?? ???
??? 5. 演示刪除只讀表空間上的對象?? ??
五、總結
?? ?1. 表空間置為只讀后將減少數據的備份量
?? ?2. 表空間置為只讀后,不能對其中的對象執行任何DML操作
?? ?3. 只讀表空間內的對象可以被清除,因為drop命令更新了數據字典,而不更新對象本身
?? ?4. 當表空間的狀態發生變化時,應立即備份該表空間,以減少恢復工作
?? ?5. 對于狀態多次發生改變且未及時備份的情況,日志未損壞時,可以使用聯機重做、歸檔日志來進行恢復
?? ??? ?使用下列命令來實現:
?? ??? ??? ?刪除受損的數據文件(rm dbfile.dbf)
?? ??? ??? ?重建受損的數據文件(alter database create datafile n)
?? ??? ??? ?進行介質恢復(recover datafile n)
?? ??? ??? ?使受損的數據文件聯機(alter database datafile n online)
?? ?6. 演示中多為在mount狀態下來恢復,生產環境中多在open狀態下恢復,可以按下列步驟實現
?? ??? ?? 先將受損的只讀表空間(數據文件)脫機(offline)
?? ??? ?? 使用備份的表空間(數據文件)來還原(restore)
?? ??? ?? 使用歸檔、聯機日志進行介質恢復(recover)
?? ??? ?? 使恢復成功的表空間(數據文件)聯機(online)
?? ?7. 對于原始介質受損,不能恢復到原始位置的情況下,使用下面的命令實現轉移
?? ??? ?? alter database rename file '<dir1>' to '<dir2>';
???
六、 快捷參考
有關性能優化請參考
??? Oracle硬解析與軟解析
??? 共享池的調整與優化(Sharedpool Tuning)
??? Oracle表緩存(cachingtable)的使用
?
有關ORACLE體系結構請參考
??? Oracle表空間與數據文件
??? Oracle密碼文件
??? Oracle參數文件
??? Oracle聯機重做日志文件(ONLINE LOG FILE)
? ?? Oracle歸檔日志
??? Oracle回滾(ROLLBACK)和撤銷(UNDO)
??? Oracle實例和Oracle數據庫(Oracle體系結構)
?
有關閃回特性請參考
??? Oracle閃回特性(FLASHBACK DATABASE)
??? Oracle閃回特性(FLASHBACK DROP & RECYCLEBIN)
??? Oracle閃回特性(Flashback Query、FlashbackTable)
??? Oracle閃回特性(Flashback Version、Flashback Transaction)
?
有關基于用戶管理的備份和備份恢復的概念請參考
??? Oracle冷備份
??? Oracle熱備份
??? Oracle備份恢復概念
??? Oracle實例恢復
??? Oracle基于用戶管理恢復的處理 (詳細描述了介質恢復及其處理)
??? SYSTEM表空間管理及備份恢復
??? SYSAUX表空間管理及恢復
?
有關RMAN的備份恢復與管理請參考
??? RMAN 概述及其體系結構
??? RMAN 配置、監控與管理
??? RMAN 備份詳解
??? RMAN 還原與恢復
??? RMAN 備份路徑困惑(使用plus archivelog時)
?
有關ORACLE故障請參考
??? ORA-32004的錯誤處理
??? ORA-01658錯誤
??? CRS-0215錯誤處理
??? 對參數FAST_START_MTTR_TARGET= 0 的誤解及設定
??? SPFILE錯誤導致數據庫無法啟動(ORA-01565)
?
有關ASM請參考
??? 創建ASM實例及ASM數據庫
??? ASM 磁盤、目錄的管理
?
有關SQL/PLSQL請參考
??? SQLPlus常用命令
??? SQL 基礎 --> 集合運算(UNION與UNION ALL)
??? SQL 基礎 --> 常用函數
??? SQL 基礎 --> 多表查詢
??? SQL 基礎 --> 過濾和排序
??? SQL 基礎 --> 子查詢
??? SQL 基礎 --> 層次化查詢(STARTBY ... CONNECT BY PRIOR)
??? SQL 基礎 --> ROLLUP與CUBE運算符實現數據匯總
??? PL/SQL --> 游標
??? PL/SQL --> 異常處理(Exception)
??? PL/SQL --> 語言基礎
??? PL/SQL --> 流程控制
??? PL/SQL --> 隱式游標(SQL%FOUND)
??? PL/SQL --> 存儲過程
??? PL/SQL --> 函數
??? PL/SQL --> 動態SQL
?
有關ORACLE其它特性
??? 使用OEM,SQL*Plus,iSQL*Plus 管理Oracle實例
??? 日志記錄模式(LOGGING、FORCE LOGGING 、NOLOGGING)
??? OralceOMF 功能詳解
??? Oracle用戶、對象權限、系統權限 ?
??? Oracle角色、配置文件
??? Oracle分區表
??? Oracle外部表
??? 使用外部表管理Oracle 告警日志(ALAERT_$SID.LOG)
??? 簇表及簇表管理(Index clustered tables)
??? SQL*Loader使用方法
??? 啟用用戶進程跟蹤
??? 配置非默認端口的動態服務注冊
??? systemsys,sysoper sysdba 的區別
??? ORACLE_SID、DB_NAME、INSTANCE_NAME、DB_DOMIAN、GLOBAL_NAME
??? Oracle補丁全集 (Oracle 9i 10g 11g Path)
??? Oracle10.2.0.1 升級到10.2.0.4
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
