在Debian系统上,Oracle数据库的备份策略需结合物理备份(直接复制数据库文件)与逻辑备份(导出数据对象),以满足不同场景的恢复需求。物理备份包括冷备份(数据库关闭时进行)和热备份(数据库运行时进行,需归档日志模式);逻辑备份通过Data Pump工具(expdp/impdp)实现,适用于导出特定表或架构的数据。
适用场景:数据库无需持续运行(如维护窗口期),需快速完整恢复。
操作步骤:
sqlplus / as sysdba
→ SHUTDOWN IMMEDIATE
;cp -R
或tar
命令备份ORACLE_HOME/dbs
(控制文件、SPFILE)、ORACLE_HOME/ORADATA
(数据文件)、ORACLE_HOME/ARCHIVELOG
(归档日志)等目录至备份存储;STARTUP
。适用场景:数据库需24/7运行,支持时间点恢复。
操作步骤:
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
ALTER TABLESPACE tablespace_name BEGIN BACKUP
;cp
命令备份表空间对应的数据文件目录;ALTER TABLESPACE tablespace_name END BACKUP
;RMAN BACKUP ARCHIVELOG ALL DELETE INPUT
(删除已备份的归档日志,节省空间)。适用场景:企业级数据库,需自动化、高效的备份管理。
常用命令:
BACKUP DATABASE FORMAT '/backup/full_%U.bck'
(指定备份格式与路径);BACKUP INCREMENTAL LEVEL 1 DATABASE
(基于最近全量备份的差异备份);BACKUP INCREMENTAL LEVEL 1 DATABASE PLUS ARCHIVELOG
(合并增量备份与归档日志,减少恢复步骤);BACKUP ARCHIVELOG ALL DELETE INPUT
(备份并清理已应用的归档日志)。适用场景:导出特定表、架构或数据子集,用于跨数据库迁移或逻辑恢复。
常用命令:
expdp system/password@SID FULL=Y DUMPFILE=full_exp.dmp DIRECTORY=DATA_PUMP_DIR
;expdp system/password@SID TABLES=(schema.table1,schema.table2) DUMPFILE=table_exp.dmp
;impdp system/password@SID DUMPFILE=exp.dmp FULL=Y DIRECTORY=DATA_PUMP_DIR
。使用crontab
设置定时任务,实现备份自动化。例如,每天凌晨2点执行全量RMAN备份:
0 2 * * * /usr/bin/rman target / <<EOF
RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
BACKUP DATABASE FORMAT '/backup/oracle_full_%d_%T_%s.bck';
BACKUP ARCHIVELOG ALL DELETE INPUT;
RELEASE CHANNEL c1;
}
EOF
说明:
0 2 * * *
:每天凌晨2点执行;<<EOF
:将后续命令传递给RMAN;FORMAT
:指定备份文件命名规则(包含数据库名、时间戳)。chmod +x /path/to/script.sh
),并测试定时任务是否正常运行。适用场景:数据库完全损坏,需恢复至最近冷备份点。
操作步骤:
SHUTDOWN IMMEDIATE
;STARTUP
。适用场景:数据库运行中发生故障(如数据文件损坏),需恢复至故障前状态。
操作步骤:
RMAN RECOVER DATABASE
(应用归档日志至故障点);ALTER DATABASE OPEN RESETLOGS
(重置重做日志,避免重复恢复)。适用场景:需恢复至特定时间点(如误删除数据)。
操作步骤:
RESTORE DATABASE
;RECOVER DATABASE
;RECOVER ARCHIVELOG ALL WITH RECOVERY UNTIL TIME 'YYYY-MM-DD HH24:MI:SS'
(指定恢复时间点);ALTER DATABASE OPEN RESETLOGS
(若恢复至非当前时间点)。适用场景:表数据丢失、误删除表或架构,需恢复至导出时的状态。
操作步骤:
mkdir -p /u01/app/oracle/admin/SID/dpdump
;chown oracle:oinstall /u01/app/oracle/admin/SID/dpdump
;impdp system/password@SID DUMPFILE=exp.dmp DIRECTORY=DATA_PUMP_DIR FULL=Y
;TABLES=(schema.table)
参数。RMAN VERIFY BACKUP
命令验证物理备份文件的可用性;