適用場景:數據庫可正常關閉的小型環境(如測試庫),確保數據一致性。
操作步驟:
sqlplus sys/your_password@orcl as sysdba
;SHUTDOWN IMMEDIATE;
;/backup/oracle/cold_backup
):
HOST cp $ORACLE_HOME/oradata/orcl/*.dbf /backup/oracle/cold_backup/
;HOST cp $ORACLE_HOME/oradata/orcl/*.ctl /backup/oracle/cold_backup/
;HOST cp $ORACLE_BASE/fast_recovery_area/orcl/archivelog/* /backup/oracle/cold_backup/
;STARTUP;
。前提條件:數據庫必須處于ARCHIVELOG
模式(執行SELECT log_mode FROM v$database;
確認,若為NOARCHIVELOG
,需執行SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN;
開啟)。
操作步驟:
SELECT tablespace_name, file_name FROM dba_data_files;
;ALTER TABLESPACE users BEGIN BACKUP;
;HOST cp /u01/app/oracle/oradata/orcl/users01.dbf /backup/oracle/hot_backup/
;ALTER TABLESPACE users END BACKUP;
;ALTER DATABASE BACKUP CONTROLFILE TO '/backup/oracle/hot_backup/controlfile.bak';
;ALTER SYSTEM ARCHIVE LOG CURRENT;
。適用場景:需要導出特定用戶、表或schema的數據(如用戶scott
的所有對象)。
操作步驟:
CREATE DIRECTORY backup_dir AS '/backup/oracle/expdp';
;GRANT READ, WRITE ON DIRECTORY backup_dir TO scott;
;expdp system/your_password@orcl DIRECTORY=backup_dir DUMPFILE=full_backup.dmp LOGFILE=full_export.log FULL=y;
;expdp scott/tiger@orcl DIRECTORY=backup_dir DUMPFILE=scott_backup.dmp LOGFILE=scott_export.log SCHEMAS=scott;
。適用場景:數據庫完全損壞(如磁盤故障),需恢復到最近一次冷備份點。
操作步驟:
SHUTDOWN IMMEDIATE;
;HOST cp /backup/oracle/cold_backup/*.dbf $ORACLE_HOME/oradata/orcl/
;HOST cp /backup/oracle/cold_backup/*.ctl $ORACLE_HOME/oradata/orcl/
;STARTUP;
。適用場景:單個數據文件或表空間損壞(如users01.dbf
丟失)。
操作步驟:
ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/orcl/users01.dbf' OFFLINE;
;HOST cp /backup/oracle/hot_backup/users01.dbf /u01/app/oracle/oradata/orcl/
;ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/orcl/users01.dbf' ONLINE;
;RECOVER DATABASE;
(自動應用未應用的歸檔日志)。適用場景:選擇性恢復特定用戶或表的數據(如scott
用戶的employees
表丟失)。
操作步驟:
CREATE DIRECTORY restore_dir AS '/backup/oracle/expdp';
;impdp scott/tiger@orcl DIRECTORY=restore_dir DUMPFILE=scott_backup.dmp LOGFILE=scott_import.log SCHEMAS=scott TABLES=employees;
;TABLE_EXISTS_ACTION=REPLACE
參數覆蓋。適用場景:需要恢復到特定時間點(如2025-09-30 18:00:00
)或SCN(如1234567
)。
操作步驟:
SHUTDOWN IMMEDIATE;
;STARTUP MOUNT;
;RECOVER DATABASE UNTIL TIME '2025-09-30:18:00:00';
(若使用SCN,替換為UNTIL SCN 1234567
);ALTER DATABASE OPEN RESETLOGS;
。前提條件:已啟用快速恢復區域(DB_RECOVERY_FILE_DEST
)和閃回日志(ALTER DATABASE ARCHIVELOG; ALTER DATABASE FLASHBACK ON;
)。
操作步驟:
SELECT OLDEST_FLASHBACK_SCN, OLDEST_FLASHBACK_TIME FROM V$FLASHBACK_DATABASE_LOG;
;STARTUP MOUNT;
;FLASHBACK DATABASE TO TIMESTAMP '2025-09-30 18:00:00';
;ALTER DATABASE OPEN RESETLOGS;
。impdp
導入邏輯備份),避免“備份無效”問題;SYSDBA
或相應權限的用戶執行(如system
);expdp
的.log
、RECOVER
的輸出),及時排查錯誤;