适用场景:数据库可正常关闭的小型环境(如测试库),确保数据一致性。
操作步骤:
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的输出),及时排查错误;