第12章 UNDO管理
1.UNDO數據和UNDO Segment
事務的回滾
讀取一致性
實例的recovery
falshback
2.UNDO數據和事務
1個UNDO Segment可以處理多個事務,INSERT的時候,保存ROWID
3.UNDO管理構成
自動UNDO管理的概念
CREATE UNDO TABLESPACE 表領域
DATAFILE '數據文件名' SIZE 大小
[AUTOEXTEND ON [NEXT 增加的大小]]
[MAXSIZE UNLIMITED | 最大大小]
UNDO表領域,下面的特征
LOCAL管理表領域
自動extend管理
UNDO segment 專用
4.自動UNDO管理的設定
自動UNDO管理相關的初期化參數
UNDO_MANAGEMENT: 自動UNDO管理的時候設為[AUTO],默認為[MANUAL],手動UNDO管理
UNDO_TABLSPACE: 現在的ORACLE實例的活動UNDO表領域
5.UNDO保存:UNDO數據用于事務的回滾,也可以用FLASHBACK
UNDO_RETENTION: 默認900秒
6.UNDO保存的保證
ALTERTABLESPACE 表領域名 RETENTION GUARNTEE;
DBA_TABLESPACES視圖可以確認RETENTION列;
如果對于非UNOD表領域實行RETENTION GUARNTEE,則會出現錯誤。
7.UNDO數據關聯的錯誤
[ORA-01555:snapshot太舊]回避的方法
UNDO保存期間的調整
UNDO表領域大小的調整
UNDO保存的保證使用UNDO保存期間被復寫的完全防止可能
8.UNDO ADVISE
UNDO ADVISE使用確認內容
UNDO數據保存必須的表領域大小
擴張可能的UNDO表領域的最大大小
現在的UNDO表領域可能保存的期間
第13章 備份以及復原的基本知識
1.數據庫關聯的障害
文障害:數據庫操作時的SQL語句失敗
用戶進程障害:應用程序異常結束,用戶session強制終了
網絡障害:不能連接listener,不能進行網絡接線
用戶錯誤:數據庫操作正常,但是系統操作不正常(表的刪除/錯誤的數據操作)
實例障害:內存障害,OS障害,Oracle實例被強制停止
媒體障害:Oracle數據庫文件的一部分損失(文件刪除硬盤破損等)
2.文障害的解決
無效的數據入力(ORA-01722:數值無效) 檢查SQL語句,確認 數據
權限不足(ORA-01031:權限不足):應該賦予適當的系統權限或者對象權限
領域不足:賦予用戶足夠的表領域
ORA-01653:表SCOTT.TEST不能進行擴張
ORA-01658:表領域TS01的segment不能作成INITAL的extend
4)應用的邏輯錯誤(計算結果):確認程序邏輯正確
3.用戶進程障害解決:PMON對應
4.網絡障害
listener接線錯誤(ORA-12541:沒有listener) : 構建多個listener,客戶端的配置failover=true
網絡接口錯誤(ORA-12154:指定的接線識別子不能解決):復數接線子配置,并確認硬件
5.用戶錯誤
誤刪表(DROP TABLE):從垃圾箱還原(flashback drop)
誤刪表(truncate table):flashbak database,執行表領域的point-in-point的恢復
誤提交(COMMIT)UPDATE,DELETE操作: 如果UNDO表中殘留有數據的話,flashback table;如果UNDO表中不存在數據的話,
使用Logminer,查找REDOLOG實體
事前行移動有效化必要。
6.實例障害:SMON,自己恢復
7.媒體錯誤解決:基本就是從BACKUP文件恢復,然后用REDO日志進行recover處理
平均障害間隔(MTBF:Mean TIme Between Failuer)
平均修復時間(MTTR:Mean Time To Repair)
8.實例恢復構成
CheckPoint
SCN(System Change Number):事務提交時的編號。Oracle用SCN來區分事務。
DBWn向數據文件寫變更的數據塊
CKPT向控制文件更新新的CheckPoint編號
CKPT向數據文件更新新的CheckPoint編號
CheckPoint的發生時機:
Log Switch
管理員的指定(ALTER SYSTEM CHECKPOINT)
表領域Offline
數據庫停止
9.實例回復:當實例重啟后,SMON會比較控制文件和數據文件的SCN,來判斷從什么地方開始實例回復
實例回復:只能回復到最后一次事務提交的狀態(最后的SCN號)
實例回復:使用REDO日志文件,進行Roll Foward,然后Roll Back
初始化參數:FAST_START_MTTR_TARGET,Oracle服務器調整CheckPoint的頻度,這個時間越短,實例回復的
時間越短,但是平凡的寫數據文件會導致數據庫文件效率低下,所以應該調整為合適的值。
10.要使實例回復時間越短:
FAST_START_MTTR_TARGET:值越小
REDO日志文件:文件大小越小
11.ARCHIVELOG初始化參數
LOG_ARCHIVE_DEST_1~LOG_ARCHIVE_DEST_10:Achive LOG日志文件保存的位置,最多10個,可以為本地磁盤或者是網絡服務名
LOG_ARCHIVE_FORMAT:Archive LOG日志文件名的格式
ARCHIVELOG模式切換,ALTER DATABASE ARCHIVELOG,在MOUNT的時候進行
12. LOGGING和NOLOGGING
NOLOGGING,不生成REDO日志實體
表領域,Segment級別指定
下面的命令可以指定為NOLOGGING
CREATE TABLE ... AS SELECT
CREATE INDEX...
ALTER INDEX...REBUILD