RMAN是Oracle官方推荐的备份恢复工具,支持全量、增量、归档日志恢复及控制文件修复,适用于大多数数据丢失场景(如数据库崩溃、文件损坏)。
rman target /
restore database; -- 恢复数据文件、控制文件等
recover database; -- 应用归档日志,使数据库达到一致状态
rman target /
restore database;
recover database; -- 自动应用增量备份和归档日志
rman target /
recover database until time "to_date('2025-11-01 12:00:00', 'yyyy-mm-dd hh24:mi:ss')";
rman target /
restore controlfile from '/path/to/backup/controlfile.bak';
alter database mount; -- 挂载数据库
recover database; -- 恢复数据
alter database open; -- 打开数据库
以上步骤需确保备份文件路径正确,且Debian系统有访问权限。数据泵是Oracle的高效数据迁移工具,适用于表级、用户级或整个数据库的恢复(如误删除表、用户数据丢失)。
expdp导出数据,生成.dmp文件。命令示例:expdp system/password@ORCL DIRECTORY=backup_dir DUMPFILE=full_backup.dmp LOGFILE=expdp.log FULL=y
其中,backup_dir是Debian系统中的目录对象(需提前创建),FULL=y表示全库备份。impdp将.dmp文件导入目标数据库。命令示例:impdp system/password@ORCL DIRECTORY=restore_dir DUMPFILE=full_backup.dmp LOGFILE=impdp.log FULL=y
若仅需恢复特定表,可添加TABLES=(table1,table2)参数;若需覆盖现有数据,添加REPLACE=y参数。适用于未使用RMAN或数据泵的场景,通过系统命令手动备份与恢复,操作简单但对数据库状态有要求。
sqlplus / as sysdba
SHUTDOWN IMMEDIATE; -- 关闭数据库
EXIT;
cp -R /u01/app/oracle/oradata/ORCL /backup/ORCL_cold # 拷贝数据文件
恢复时,将备份文件拷贝回原目录,启动数据库即可:sqlplus / as sysdba
STARTUP; -- 启动数据库
ALTER TABLESPACE命令冻结表空间,拷贝数据文件后解冻。命令示例:sqlplus / as sysdba
ALTER TABLESPACE USERS BEGIN BACKUP; -- 冻结表空间
cp /u01/app/oracle/oradata/ORCL/Users01.dbf /backup/Users01.dbf -- 拷贝数据文件
ALTER TABLESPACE USERS END BACKUP; -- 解冻表空间
恢复时,将备份文件拷贝回原目录,使用RMAN恢复归档日志即可。以上方法需根据数据丢失场景选择: