oracle数据库备份是运维工作中保障数据可恢复性的核心环节,不同的业务场景需要匹配不同的备份方案,常见的备份方式主要分为物理备份和逻辑备份两大类,各自的实现逻辑和适用场景有明显差异。

oracle常用备份方式分类
oracle的备份方案可以按照备份类型分为以下两类,用户可以根据自身需求选择:
- 物理备份:直接备份数据库的物理文件,比如数据文件、控制文件、日志文件等,恢复速度更快,适合全库备份场景,RMAN是官方推荐的物理备份工具。
- 逻辑备份:通过导出数据库中的对象和数据生成备份文件,灵活性更高,适合单表、单用户的数据备份迁移场景,常用工具为expdp和exp。
RMAN物理备份操作步骤
RMAN(Recovery Manager)是oracle自带的专业备份恢复工具,支持全量备份、增量备份、归档日志备份等多种模式,以下是最基础的全库备份操作示例:
1. 连接RMAN并启动数据库到挂载状态
如果是非归档模式备份,需要先将数据库启动到mount状态,归档模式可以直接在open状态备份:
-- 登录sqlplus将数据库启动到mount状态 sqlplus / as sysdba shutdown immediate; startup mount; -- 新开窗口连接RMAN rman target /
2. 执行全库备份命令
以下命令会将全库数据文件、控制文件、spfile文件备份到指定目录,同时备份当前所有归档日志:
-- 配置备份文件存储目录,假设目录为/u01/oracle/backup CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/u01/oracle/backup/%U'; -- 执行全库备份,包含归档日志 BACKUP DATABASE PLUS ARCHIVELOG; -- 查看备份集信息 LIST BACKUP;
3. 备份后打开数据库
-- 回到sqlplus窗口打开数据库 alter database open;
expdp数据泵逻辑备份操作步骤
expdp是oracle 10g之后推出的逻辑备份工具,相比传统的exp工具性能更高,支持并行导出,以下是导出整个用户数据的操作示例:
1. 创建逻辑目录并授权
expdp导出需要先创建数据库层面的逻辑目录,映射到服务器实际路径:
-- 登录sqlplus创建逻辑目录,实际路径为/u01/oracle/dump CREATE DIRECTORY dump_dir AS '/u01/oracle/dump'; -- 给用户授权目录读写权限,假设导出用户为scott GRANT READ, WRITE ON DIRECTORY dump_dir TO scott;
2. 执行expdp导出命令
在服务器命令行执行以下命令,导出scott用户下的所有对象和数据:
expdp scott/tiger@orcl DIRECTORY=dump_dir DUMPFILE=scott_full_%U.dmp LOGFILE=scott_full.log SCHEMAS=scott PARALLEL=2
上述命令中PARALLEL=2表示开启2个并行进程提升导出速度,%U会自动生成唯一文件名避免重复。
备份注意事项
- 物理备份建议定期执行全量备份,搭配增量备份减少备份存储空间占用,同时要及时备份归档日志,否则可能无法恢复到最新时间点。
- 逻辑备份导出后建议校验备份文件的完整性,避免备份文件损坏导致无法导入。
- 所有备份文件都要异地存储一份,避免服务器本地磁盘故障导致备份和数据同时丢失。
- 生产环境备份操作建议在业务低峰期执行,避免备份过程占用过多数据库资源影响业务正常运行。
备份方案选择建议
如果是核心生产库需要做全库灾备,优先选择RMAN物理备份,恢复速度更快且支持时间点恢复;如果是测试环境数据迁移、单表数据导出等场景,选择expdp逻辑备份更灵活,操作成本更低。