Ubuntu下Oracle数据库备份策略
物理备份是Oracle数据库备份的核心,通过复制数据库物理文件(数据文件、控制文件、重做日志文件、归档日志文件)实现,确保数据的物理一致性。常见类型包括:
LOG_ARCHIVE_DEST_n
指定的目录),是热备份和增量备份的关键补充,用于恢复到指定时间点。逻辑备份通过导出数据库对象(表、视图、存储过程、用户等)的结构和数据实现,适用于跨平台迁移或细粒度恢复(如单个表恢复)。常用工具:
expdp system/password@dbname directory=dpump_dir dumpfile=full.dmp logfile=full.log
(全库导出);impdp system/password@dbname directory=dpump_dir dumpfile=full.dmp logfile=full.log
(全库导入)。Oracle内置的物理备份工具,支持全量、增量、归档日志备份,具备压缩、加密、块变更跟踪(Block Change Tracking)等功能,可自动化管理备份策略(如保留周期、过期备份清理)。示例命令:
-- 配置保留策略(30天内可恢复)
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 30 DAYS;
-- 配置自动备份控制文件
CONFIGURE CONTROLFILE AUTOBACKUP ON;
-- 执行全量热备份(带归档日志)
RUN {
ALLOCATE CHANNEL ch1 DEVICE TYPE disk;
BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;
RELEASE CHANNEL ch1;
}
适用于需要跨平台迁移或细粒度恢复的场景,支持并行导出(PARALLEL
参数)、压缩(COMPRESSION
参数),备份文件存储在DIRECTORY
对象指定的目录(需提前创建并授权)。
通过crontab定时任务实现定期自动执行备份脚本,避免人工遗漏。示例:
/home/oracle/rman_full.sh
。0 2 * * 0 /home/oracle/rman_full.sh
/home/oracle/rman_incr.sh
。0 2 * * 1-6 /home/oracle/rman_incr.sh
/home/oracle/exp_backup.sh
。0 3 * * * /home/oracle/exp_backup.sh
注:脚本需赋予执行权限(
chmod +x /home/oracle/*.sh
),并通过crontab -e
编辑定时任务。
RECOVERY WINDOW OF 30 DAYS
,保留30天内可恢复的备份集,自动清理过期备份(通过DELETE NOPROMPT OBSOLETE
命令)。find /backup/exp -type f -mtime +7 -exec rm {} \;
命令清理)。/u01/dbbak
),建议使用独立分区,避免磁盘空间不足。rsync
或scp
将备份文件同步到异地服务器(如rsync -avz /u01/dbbak/ user@remote:/backup/oracle/
),防范本地灾难(如火灾、磁盘损坏)。RECOVER DATABASE
命令应用归档日志,直到达到恢复点。ALTER DATABASE OPEN RESETLOGS
;若为冷备份,直接ALTER DATABASE OPEN
。oracle
用户执行,确保具有数据库SYSDBA
权限和操作系统目录读写权限。crontab -l
查看定时任务状态,通过tail -f /var/log/cron
查看日志,设置邮件报警(如使用mail
命令)通知备份失败。