Ubuntu中Oracle数据库常用备份方法
RMAN是Oracle官方推荐的物理备份工具,支持全量备份、增量备份和归档日志备份,可实现数据库的完整恢复(包括控制文件、数据文件、归档日志等)。其优势在于高效管理备份文件、支持压缩和加密,且能与快速恢复区(FRA)集成。
基础使用步骤:
archive log list
命令验证,若未开启,需执行shutdown immediate
→startup mount
→alter database archivelog
→alter database open
);rman target /
进入RMAN命令行,输入backup database plus archivelog;
(备份数据库及归档日志);backup incremental level 1 database;
(增量备份,仅备份自上次备份以来变化的数据);rman target /
→restore database;
(恢复数据库)→recover database;
(应用归档日志)→alter database open;
(打开数据库)。cron
定时任务(如0 2 * * * /path/to/rman_backup.sh
)实现每日自动备份。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
参数。通过Ubuntu系统工具(如tar
、cp
、rsync
)直接备份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;
(压缩备份数据文件、控制文件和归档日志);sudo systemctl stop oracle
),解压备份文件至原目录,启动服务(sudo systemctl start oracle
)。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;
。为避免手动操作遗漏,可通过cron定时任务结合上述工具实现定期备份。例如:
crontab -e
;0 2 * * * /u01/app/oracle/scripts/rman_backup.sh >> /u01/app/oracle/logs/backup.log 2>&1
(每日凌晨2点执行RMAN备份脚本);logrotate
工具定期压缩和删除旧日志,避免磁盘空间耗尽。