CONNECT INTERNAL/PASSWORD;
SHUTDOWN IMMEDIATE;
HOST XCOPY D:\ORACLE\ORADATA\TEST\*.DBF D:\BACKUP /H/R;
HOST XCOPY D:\ORACLE\ORADATA\TEST\*.CTL D:\BACKUP /H/R;
HOST XCOPY D:\ORACLE\ORADATA\TEST\*.LOG D:\BACKUP /H/R;
STARTUP;
CONNECT INTERNAL/PASSWORD;
ALTER SYSTEM ARCHIVE LOG CURRENT;
ALTER TABLESPACE SYSTEM BEGIN BACKUP;
HOST XCOPY D:\ORACLE\ORADATA\TEST\SYSTEM01.DBF D:\DATABAK /H/R;
ALTER TABLESPACE SYSTEM END BACKUP;
...(依序處理 RBS、USERS、TOOLS、INDX)
ALTER DATABASE BACKUP CONTROLFILE TO 'D:\DATABAK\CONTROLBINBAK.000';
ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
ALTER SYSTEM ARCHIVE LOG CURRENT;
CONNECT TARGET INTERNAL/VIRPURE;
CONNECT RCVCAT RMAN/RMAN@BACK;
RUN {
ALLOCATE CHANNEL C1 TYPE DISK;
BACKUP FULL TAG 'DBFULL' FORMAT 'D:\BACKUP\FULL%U_%S_%P' DATABASE INCLUDE CURRENT CONTROLFILE;
SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';
RELEASE CHANNEL C1;
}
關機 → 刪除 USERS01.DBF → 啟動報 ORA-01157 → 覆蓋冷備份檔案 → ALTER DATABASE OPEN → 資料遺失至備份時間點。
USERS01.DBF → 啟動 Mount 階段ALTER DATABASE DATAFILE 3 OFFLINE DROP;ALTER DATABASE OPEN;(其他表空間線上)COPY 備份檔 → RECOVER DATAFILE 3; → ALTER DATABASE DATAFILE 3 ONLINE;RESTORE DATAFILE 3; RECOVER DATAFILE 3; SQL 'ALTER DATABASE DATAFILE 3 ONLINE';零資料遺失,業務僅受影響單表空間。
Mount 階段 → COPY 所有備份檔 → RECOVER DATABASE; → ALTER DATABASE OPEN;。停機時間較長,但可處理系統表空間損壞。
RUN {
ALLOCATE CHANNEL C1 TYPE DISK;
RESTORE TABLESPACE USERS;
RECOVER TABLESPACE USERS;
SQL 'ALTER DATABASE DATAFILE 3 ONLINE';
RELEASE CHANNEL C1;
}
代碼簡潔、可靠性高,建議生產環境採用 RMAN。
V$RECOVER_FILE:需恢復的檔案清單V$RECOVERY_LOG:所需歸檔日誌BDUMP 目錄)