$ sqlplus "/ as sysdba"
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE OPEN;
ORA-01157: cannot identify/lock data file 3 - see DBWR trace file
ORA-01110: data file 3: '/opt/oracle/oradata/eygle/eygle02.dbf'
記錄遺失的檔案號 (3) 與路徑。
SQL> ALTER DATABASE CREATE DATAFILE 3
AS '/opt/oracle/oradata/eygle/eygle02.dbf';
Database altered.
SQL> SELECT name FROM v$datafile;
NAME
--------------------------------------------------------
/opt/oracle/oradata/eygle/system01.dbf
/opt/oracle/oradata/eygle/undotbs01.dbf
/opt/oracle/oradata/eygle/eygle02.dbf <-- 已重建
/opt/oracle/oradata/eygle/eygle01.dbf
SQL> ALTER DATABASE OPEN;
ORA-01113: file 3 needs media recovery
ORA-01110: data file 3: '/opt/oracle/oradata/eygle/eygle02.dbf'
SQL> RECOVER DATAFILE 3;
Media recovery complete.
AUTO 或具體路徑
SQL> ALTER DATABASE OPEN;
Database altered.
-- 檢查資料檔狀態
SELECT file#, name, status, enabled, checkpoint_change#
FROM v$datafile;
-- 檢查表空間線上
SELECT tablespace_name, status FROM dba_tablespaces;
-- 核心業務表查詢驗證
SELECT COUNT(*) FROM critical_table;
無法直接 CREATE DATAFILE,需:
RECOVER TABLESPACE system 或 RECOVER DATABASE
STARTUP NOMOUNT;
CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS ARCHIVELOG
MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292
LOGFILE GROUP 1 ('/path/redo01.log') SIZE 100M,
GROUP 2 ('/path/redo02.log') SIZE 100M
DATAFILE '/path/system01.dbf', '/path/undotbs01.dbf', ...;
RECOVER DATABASE USING BACKUP CONTROLFILE;
ALTER DATABASE OPEN RESETLOGS;
RECOVER DATABASE UNTIL CANCEL 至可用日誌點 → ALTER DATABASE OPEN RESETLOGS (資料遺失)
RMAN> CONNECT TARGET /
RMAN> STARTUP MOUNT;
RMAN> RESTORE DATAFILE 3;
RMAN> RECOVER DATAFILE 3;
RMAN> ALTER DATABASE OPEN;
優點:自動管理備份片段、並行恢復、區塊級恢復、壓縮備份。
| 措施 | 頻率/配置 |
|---|---|
| RMAN 完整備份 | 每週 + 每日增量 |
| 歸檔日誌備份 | 每小時或切換後立即 |
| 控制檔自動備份 | CONFIGURE CONTROLFILE AUTOBACKUP ON |
| Data Guard 實體備援 | 即時同步、零資料遺失 |
| 監控 v$datafile.status | 定期檢查 OFFLINE/RECOVER 狀態 |
| 磁碟空間告警 | FRA 使用率 > 80% 告警 |
| 錯誤 | 含義 | 處理 |
|---|---|---|
| ORA-01157 | 無法識別/鎖定資料檔 | 檔案遺失、路徑錯誤、權限問題 |
| ORA-01110 | 資料檔路徑報告 | 確認檔案號與路徑 |
| ORA-01113 | 檔案需要媒體恢復 | 執行 RECOVER DATAFILE |
| ORA-01122 | 資料檔驗證失敗 | 檔案損壞、非 Oracle 檔案 |
| ORA-00283 | 恢復會話取消 | 檢查 alert log、歸檔日誌完整性 |