Debian 上 Oracle 备份与恢复流程
一 备份策略与准备
二 物理备份 RMAN 实操
rman target /rman target /
RMAN> BACKUP DATABASE PLUS ARCHIVELOG FORMAT '/path/to/backup/full_%U';
cat > backup_script.rman <<'EOF'
RUN {
ALLOCATE CHANNEL ch1 TYPE DISK;
BACKUP DATABASE PLUS ARCHIVELOG FORMAT '/path/to/backup/full_%U';
RELEASE CHANNEL ch1;
}
EOF
rman target / @backup_script.rman
rman target /
RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE FORMAT '/path/to/backup/incr_%U';
rman target /
RMAN> BACKUP ARCHIVELOG ALL FORMAT '/path/to/backup/arch_%U';
rman target /
RMAN> BACKUP CURRENT CONTROLFILE FORMAT '/path/to/backup/ctl_%U';
RMAN> BACKUP SPFILE FORMAT '/path/to/backup/spfile_%U';
三 恢复流程
rman target /
RMAN> STARTUP FORCE NOMOUNT;
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE;
RMAN> ALTER DATABASE OPEN;
rman target /
RMAN> STARTUP FORCE NOMOUNT;
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE UNTIL TIME '2025-12-30 10:00:00';
RMAN> ALTER DATABASE OPEN RESETLOGS;
RECOVER DATABASE 应用剩余归档与在线日志完成恢复。rman target /
RMAN> STARTUP FORCE NOMOUNT;
RMAN> RESTORE CONTROLFILE FROM '/path/to/backup/ctl_%U';
RMAN> ALTER DATABASE MOUNT;
RMAN> RECOVER DATABASE;
RMAN> ALTER DATABASE OPEN RESETLOGS;
RECOVER 阶段使用 UNTIL CANCEL 完成,并以 OPEN RESETLOGS 打开数据库。四 逻辑备份 Data Pump 实操
sqlplus / as sysdba
SQL> CREATE DIRECTORY dp_dir AS '/u01/backup/dp';
SQL> GRANT READ, WRITE ON DIRECTORY dp_dir TO system;
expdp system/password@orcl DIRECTORY=dp_dir DUMPFILE=full_$(date +%F).dmp LOGFILE=full_$(date +%F).log FULL=Y
expdp system/password@orcl DIRECTORY=dp_dir DUMPFILE=hr_$(date +%F).dmp LOGFILE=hr_$(date +%F).log SCHEMAS=HR
impdp system/password@orcl DIRECTORY=dp_dir DUMPFILE=full_2025-12-30.dmp LOGFILE=imp_2025-12-30.log FULL=Y
五 异机恢复与常见场景
MOUNT 数据库,执行 RESTORE DATABASE 与 RECOVER DATABASE(必要时 UNTIL CANCEL),最后 OPEN RESETLOGS。RECOVER DATAFILE→联机;系统表空间等需 MOUNT 后恢复。FLASHBACK TABLE schema.tbl TO BEFORE DROP;SELECT * FROM schema.tbl AS OF TIMESTAMP TO_TIMESTAMP('2025-12-30 09:00:00','YYYY-MM-DD HH24:MI:SS');