数据库要是挂了,老板第一个找你。Oracle作为企业级数据库的扛把子,承载着财务数据、客户信息、交易记录这些命根子。我见过太多运维在凌晨三点被电话吵醒,就因为备份没做好,数据找不回来。备份这事儿,就像买保险,平时觉得浪费钱,真出事才知道有多重要。很多人觉得Oracle备份就是敲几条命令,其实背后的门道深着呢。

先说物理备份。这是最基础也最常用的招数,原理就是把数据库文件原样复制一份。RMAN是Oracle自带的备份工具,功能强大得让人又爱又恨。爱的是它能自动管理备份集,增量备份做得漂亮;恨的是命令语法绕来绕去,新手容易翻车。我见过一个哥们儿,RMAN配了全量加增量备份,结果恢复时发现增量备份文件全损坏了。为啥?因为他把备份文件存在了同一个磁盘上,磁盘坏道一次性带走所有备份。
逻辑备份用expdp和impdp这对神仙组合。导出时可以选择全库、用户模式或表模式,灵活度很高。有个场景特别适合逻辑备份:你想把生产库的部分数据迁移到测试环境,或者做跨平台迁移。但别指望它能顶替物理备份,因为逻辑备份只保数据不保结构,碰到大表导出速度慢得让人抓狂。我见过一家公司,每天跑expdp全库导出,数据量二十个T,跑了整整十八个小时,把生产库的I/O都吃光了。
说到备份策略,七二一法则值得记住。七份全量备份,两份异地备份,一份离线备份,这是银行级别的标准。但中小企业不用这么夸张,根据数据重要性和恢复时间目标来定就够了。核心业务系统用RMAN做每日全量加每小时归档日志备份,非核心系统每周全量加每日增量就成。关键是要定期做恢复演练,我见过太多备份文件摆在那,真需要恢复时才发现文件损坏或权限不够。
归档模式是Oracle备份的命门。不开启归档模式,你就只能做冷备份,也就是关库备份。冷备份简单粗暴,复制数据文件、控制文件、日志文件就行,但恢复时只能恢复到备份那个时间点。开启归档模式后,数据库可以在运行状态下备份,还能做时间点恢复。有个血泪教训:某电商公司双十一期间数据库崩溃,因为没有开启归档模式,丢失了整整两小时交易数据,损失上千万。
恢复操作比备份更考验功力。不完全恢复分时间点恢复、SCN恢复和取消恢复三种。时间点恢复最常用,比如有人误删了表,你把数据库恢复到删除前的时刻。但要注意,这种恢复需要全库回滚,如果数据库里有其他重要数据,就得做辅助数据库恢复。RMAN的duplicate命令能帮你创建辅助数据库,操作起来挺方便,就是步骤繁琐,一不小心就翻车。
说几个实操要点。备份文件要加密,尤其异地备份时。Oracle内置透明数据加密功能,配一下就能用。备份文件要验证,RMAN的validate命令会检查备份集是否完整可用。备份日志要监控,专门写个脚本检查RMAN作业状态,发现失败立刻告警。记住一句话:没有经过验证的备份等于没有备份。我认识一个DBA,每周坚持做一次恢复测试,十几年没出过事故,这就是专业。


