首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle DBA 日常管理命令大全:日誌、表空間、備份恢復核心操作

     編輯:Oracle 資料庫基礎

第一章:重做日誌管理核心命令

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
  • 備份驗證納入排程,非僅備份完成即視為成功
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved