第一章:重做日誌管理核心命令
1. 強制日誌切換與檢查點
-- 強制切換當前線上日誌組
ALTER SYSTEM SWITCH LOGFILE;
-- 強制檢查點 (將髒緩衝刷入磁碟)
ALTER SYSTEM CHECKPOINT;
2. 線上重做日誌組管理
-- 新增日誌組 (含多路徑多工)
ALTER DATABASE ADD LOGFILE GROUP 4
('/disk3/log4a.rdo', '/disk4/log4b.rdo') SIZE 100M;
-- 新增日誌成員到現有組
ALTER DATABASE ADD LOGFILE MEMBER
'/disk3/log1b.rdo' TO GROUP 1,
'/disk4/log2b.rdo' TO GROUP 2;
-- 重命名日誌檔 (需 OS 層面先移動檔案)
ALTER DATABASE RENAME FILE
'c:/oracle/oradata/oradb/redo01.log'
TO 'c:/oracle/oradata/redo01.log';
-- 刪除日誌組 (至少保留 2 組)
ALTER DATABASE DROP LOGFILE GROUP 3;
-- 刪除日誌成員 (組內至少保留 1 個)
ALTER DATABASE DROP LOGFILE MEMBER 'c:/oracle/oradata/redo01.log';
-- 清除日誌檔內容 (損壞/遺失時)
ALTER DATABASE CLEAR [UNARCHIVED] LOGFILE 'c:/oracle/log2a.rdo';
3. LogMiner 日誌分析
-- 1. 設定字典檔目錄
ALTER SYSTEM SET UTL_FILE_DIR = '/u01/logminer' SCOPE=SPFILE;
-- 2. 建立字典檔
EXEC DBMS_LOGMNR_D.BUILD('oradb.ora', '/u01/logminer');
-- 3. 新增日誌檔分析
EXEC DBMS_LOGMNR.ADD_LOGFILE('/u01/oradata/redo01.log', DBMS_LOGMNR.NEW);
EXEC DBMS_LOGMNR.ADD_LOGFILE('/u01/oradata/redo02.log', DBMS_LOGMNR.ADDFILE);
-- 4. 啟動分析
EXEC DBMS_LOGMNR.START_LOGMNR(DICTFILENAME => '/u01/logminer/oradb.ora');
-- 5. 查詢結果
SELECT * FROM V$LOGMNR_CONTENTS;
-- 6. 結束分析
EXEC DBMS_LOGMNR.END_LOGMNR;
第二章:表空間管理核心命令
1. 建立表空間
CREATE TABLESPACE TS_DATA
DATAFILE '/u01/oradata/ts_data01.dbf' SIZE 1G
'/u01/oradata/ts_data02.dbf' SIZE 1G
MINIMUM EXTENT 512K
LOGGING
DEFAULT STORAGE (
INITIAL 1M NEXT 1M MAXEXTENTS UNLIMITED PCTINCREASE 0
)
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
SEGMENT SPACE MANAGEMENT AUTO;
2. 表空間狀態控制
-- 離線/上線 (正常模式需檢查點)
ALTER TABLESPACE TS_DATA OFFLINE NORMAL;
ALTER TABLESPACE TS_DATA ONLINE;
-- 唯讀/讀寫
ALTER TABLESPACE TS_DATA READ ONLY;
ALTER TABLESPACE TS_DATA READ WRITE;
-- 自動擴展控制
ALTER DATABASE DATAFILE '/u01/oradata/ts_data01.dbf'
AUTOEXTEND ON NEXT 100M MAXSIZE 5G;
3. 資料檔管理
-- 新增資料檔
ALTER TABLESPACE TS_DATA ADD DATAFILE
'/u01/oradata/ts_data03.dbf' SIZE 500M;
-- 縮減資料檔 (釋放未用空間)
ALTER DATABASE DATAFILE '/u01/oradata/ts_data01.dbf' RESIZE 2G;
-- 重命名/遷移資料檔 (離線表空間)
ALTER TABLESPACE TS_DATA OFFLINE;
-- OS 層移動檔案
ALTER DATABASE RENAME FILE
'/u01/oradata/ts_data01.dbf' TO '/u02/oradata/ts_data01.dbf';
ALTER TABLESPACE TS_DATA ONLINE;
-- 刪除資料檔 (12c+ 支援含內容刪除)
ALTER TABLESPACE TS_DATA DROP DATAFILE '/u01/oradata/ts_data03.dbf';
4. 表空間刪除
-- 僅刪除表空間定義 (資料檔保留)
DROP TABLESPACE TS_DATA;
-- 連同資料檔一併刪除
DROP TABLESPACE TS_DATA INCLUDING CONTENTS AND DATAFILES;
第三章:備份恢復核心 RMAN 命令
-- 完整備份 (含控制檔、SPFILE)
BACKUP DATABASE PLUS ARCHIVELOG;
-- 增量備份 Level 0 (基準)
BACKUP INCREMENTAL LEVEL 0 DATABASE;
-- 增量備份 Level 1 (差異)
BACKUP INCREMENTAL LEVEL 1 DATABASE;
-- 累積增量 (包含所有 Level 0 後變更)
BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;
-- 影像副本 (非備份集格式)
BACKUP AS COPY DATABASE;
-- 驗證備份可用性
VALIDATE BACKUPSET 123;
RESTORE DATABASE VALIDATE;
-- 恢復點標記
CREATE RESTORE POINT BEFORE_UPGRADE;
實務操作檢核清單
- 日誌組數量 ≥ 3,每組成員 ≥ 2 (多工)
- 表空間採用 LMT (Local Managed) + ASSM (Auto Segment Space)
- 定期監控
V$RECOVERY_FILE_DEST 空間使用率
- RMAN 配置
CONFIGURE CONTROLFILE AUTOBACKUP ON
- 備份驗證納入排程,非僅備份完成即視為成功