温馨提示×

Ubuntu中Oracle数据备份方法有哪些

小樊
48
2025-09-29 19:56:54
栏目: 云计算

Ubuntu中Oracle数据库常用备份方法

1. RMAN(Recovery Manager)物理备份

RMAN是Oracle官方推荐的物理备份工具,支持全量备份增量备份归档日志备份,可实现数据库的完整恢复(包括控制文件、数据文件、归档日志等)。其优势在于高效管理备份文件、支持压缩和加密,且能与快速恢复区(FRA)集成。
基础使用步骤

  • 准备工作:确保数据库处于归档模式(可通过archive log list命令验证,若未开启,需执行shutdown immediatestartup mountalter database archivelogalter database open);
  • 全量备份:以Oracle用户身份登录Ubuntu,执行rman target /进入RMAN命令行,输入backup database plus archivelog;(备份数据库及归档日志);
  • 增量备份:使用backup incremental level 1 database;(增量备份,仅备份自上次备份以来变化的数据);
  • 恢复示例rman target /restore database;(恢复数据库)→recover database;(应用归档日志)→alter database open;(打开数据库)。
    自动化:可通过Ubuntu的cron定时任务(如0 2 * * * /path/to/rman_backup.sh)实现每日自动备份。

2. Data Pump(expdp/impdp)逻辑备份

Data Pump是Oracle的高性能逻辑备份工具,通过导出数据库对象(表、视图、存储过程等)和数据为二进制文件(.dmp),适用于跨平台迁移、逻辑恢复或选择性备份。
基础使用步骤

  • 准备工作:创建目录对象并授权(如create directory dpump_dir as '/u01/app/oracle/dpump';grant read, write on directory dpump_dir to scott;);
  • 全库备份:执行expdp system/password@orcl schemas=scott directory=dpump_dir dumpfile=scott_full.dmp logfile=scott_exp.log full=y;(导出scott用户的全部对象和数据);
  • 选择性备份:可指定表空间(tablespaces=users)、表(tables=(employees, departments))或用户(schemas=hr);
  • 恢复示例impdp system/password@orcl directory=dpump_dir dumpfile=scott_full.dmp logfile=scott_imp.log(导入至相同用户);若需导入至不同用户,可添加remap_schema=scott:new_scott参数。
    注意:逻辑备份无法替代物理备份,适用于需要灵活恢复部分数据的场景。

3. 文件系统级物理备份

通过Ubuntu系统工具(如tarcprsync)直接备份Oracle的数据文件目录$ORACLE_BASE/oradata/<SID>)、控制文件$ORACLE_BASE/diag/rdbms/<SID>/trace/controlfile.trc)、归档日志目录$ORACLE_BASE/archivelog)等。
基础使用步骤

  • 备份命令tar -zcvf /backup/oracle_data_$(date +%F).tar.gz $ORACLE_BASE/oradata/<SID> $ORACLE_BASE/diag/rdbms/<SID>/trace/controlfile.trc $ORACLE_BASE/archivelog;(压缩备份数据文件、控制文件和归档日志);
  • 恢复步骤:停止Oracle服务(sudo systemctl stop oracle),解压备份文件至原目录,启动服务(sudo systemctl start oracle)。
    注意:需在数据库关闭状态下执行,否则可能导致数据不一致;适用于小型数据库或需要快速备份的场景。

4. 传统EXP/IMP工具

EXP(Export)和IMP(Import)是Oracle早期的逻辑备份工具,功能较Data Pump简单,适用于小规模数据迁移或旧版本兼容。
基础使用步骤

  • 全库备份:执行exp system/password@orcl full=y file=/u01/app/oracle/exp_full.dmp log=exp_full.log;
  • 选择性备份:可指定表(tables=(employees))、用户(owner=scott)或表空间(tablespaces=users);
  • 恢复示例imp system/password@orcl file=/u01/app/oracle/exp_full.dmp log=imp_full.log full=y;
    注意:EXP/IMP速度较慢,不支持并行导出/导入,建议优先使用Data Pump。

5. 自动化备份策略

为避免手动操作遗漏,可通过cron定时任务结合上述工具实现定期备份。例如:

  • 编辑cron任务crontab -e
  • 添加定时任务0 2 * * * /u01/app/oracle/scripts/rman_backup.sh >> /u01/app/oracle/logs/backup.log 2>&1(每日凌晨2点执行RMAN备份脚本);
  • 日志管理:通过logrotate工具定期压缩和删除旧日志,避免磁盘空间耗尽。

0