Oracle数据库备份主要分为逻辑备份(数据泵导出)和物理备份(RMAN、冷备份、热备份),以下是具体操作步骤:
逻辑备份通过expdp(导出)和impdp(导入)工具实现,适用于跨平台数据迁移或选择性恢复。
sqlplus / as sysdba),创建备份目录对象(若未存在):CREATE DIRECTORY backup_dir AS '/path/to/backup/directory';
执行导出命令(替换username/password@SID为实际信息):expdp username/password@SID DIRECTORY=backup_dir DUMPFILE=full_backup.dmp LOGFILE=export.log FULL=y
INCREMENTAL=y(增量导出)或TABLES=(table1,table2)(指定表导出)参数调整范围。RMAN是Oracle官方推荐的物理备份工具,支持全量、增量、归档日志备份及压缩,适合自动化管理。
rman target /进入RMAN交互界面,执行:BACKUP DATABASE FORMAT '/backup/oracle/full_%U.bck';
或直接通过命令行(无需交互):rman target / <<EOF
BACKUP DATABASE FORMAT '/backup/oracle/full_%U.bck';
EXIT;
EOF
BACKUP INCREMENTAL LEVEL 1 DATABASE TAG 'daily_incremental' FORMAT '/backup/oracle/incr_%U.bck';
BACKUP ARCHIVELOG ALL DELETE INPUT FORMAT '/backup/oracle/arch_%U.bck';
VERIFY BACKUP命令检查备份集完整性:VERIFY BACKUP OF DATABASE;
冷备份需停止数据库服务,适用于一致性要求高的场景(如版本升级前)。
SHUTDOWN IMMEDIATE;
tar命令打包关键目录(如数据文件、控制文件、重做日志文件):tar -czvf cold_backup_$(date +%F).tar.gz /u01/app/oracle/oradata/ORCL /u01/app/oracle/fast_recovery_area/ORCL
STARTUP;
热备份无需停机,需先将数据库切换至归档日志模式(若未开启):
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
ALTER TABLESPACE USERS BEGIN BACKUP;
cp -R /u01/app/oracle/oradata/ORCL/Users /backup/oracle/hot_users
ALTER TABLESPACE USERS END BACKUP;
恢复流程需根据备份类型(全量/增量、逻辑/物理)选择对应命令,以下是常见场景:
逻辑恢复用于修复逻辑错误(如误删除表)或迁移数据。
CREATE DIRECTORY restore_dir AS '/path/to/restore/directory';
执行导入命令(FULL=y表示全量恢复):impdp username/password@SID DIRECTORY=restore_dir DUMPFILE=full_backup.dmp LOGFILE=import.log FULL=y
INCREMENTAL=y(应用增量备份)或TABLES=(table1)(仅恢复指定表)参数。RMAN恢复适用于物理备份损坏或数据库崩溃场景,常见流程如下:
RESTORE DATABASE;
RECOVER命令合并更改:RECOVER DATABASE;
RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;
RESTORE CONTROLFILE FROM '/backup/oracle/controlfile.bck';
恢复后需重新挂载数据库:ALTER DATABASE MOUNT;
冷备份恢复需将备份文件还原至原路径,步骤如下:
SHUTDOWN IMMEDIATE;
tar -xzvf cold_backup_2025-10-01.tar.gz -C /
STARTUP;
热备份恢复需结合归档日志,步骤如下:
RECOVER DATABASE;
ALTER DATABASE OPEN RESETLOGS; -- 若使用了增量备份或归档日志,需加RESETLOGS
SYSDBA或相应权限(如BACKUP OPERATOR)。DELETE OBSOLETE命令实现)。RMAN REPORT NEED BACKUP命令查看需备份的文件,通过V$BACKUP_SET视图监控备份状态。