首页主机资讯Oracle数据库Ubuntu上如何备份

Oracle数据库Ubuntu上如何备份

时间2025-12-03 15:27:04发布访客分类主机资讯浏览469
导读:Ubuntu上备份Oracle数据库的实用方案 一、备份方式总览 RMAN物理备份:面向生产环境的首选,支持全量、增量、归档日志与控制文件备份,恢复粒度细、可在线执行,适合需要**时间点恢复(PITR)**与高可用的场景。 Data Pu...

Ubuntu上备份Oracle数据库的实用方案

一、备份方式总览

  • RMAN物理备份:面向生产环境的首选,支持全量增量归档日志控制文件备份,恢复粒度细、可在线执行,适合需要**时间点恢复(PITR)**与高可用的场景。
  • Data Pump逻辑备份(expdp/impdp):导出表、用户、全库等逻辑对象,便于迁移/克隆部分对象恢复,对停机敏感的业务更友好。
  • 文件系统/系统级备份:对数据文件、归档日志目录、控制文件、参数文件等进行快照或拷贝,需与数据库一致性配合,常作为RMAN的补充或应急手段。
    以上三种方式在Ubuntu上均可实施,生产环境建议以RMAN为主、Data Pump为辅,并配合定期校验与异地留存

二、RMAN物理备份步骤

  • 准备与归档模式
    • oracle用户登录:su - oracle
    • 检查归档:sqlplus / as sysdbaarchive log list;
    • 开启归档(需停机一次):shutdown immediate; startup mount; alter database archivelog; alter database open;
  • 执行备份(示例)
    • 连接RMAN:rman target /
    • 常用命令:
      • 全量+归档:backup database plus archivelog;
      • 增量L1:backup incremental level 1 database plus archivelog;
      • 仅归档:backup archivelog all;
      • 控制文件:backup current controlfile;
      • 校验备份:list backup; restore database validate;
  • 建议的保留策略(示例)
    • configure retention policy to recovery window of 7 days;
    • configure controlfile autobackup on; 以上步骤覆盖归档开启、RMAN常用备份、校验与保留策略的关键环节,适合作为日常全量+增量的备份基线。

三、Data Pump逻辑备份步骤

  • 创建目录对象并授权(DB内)
    • mkdir -p /data/exp_dir & & chmod 775 /data/exp_dir
    • sqlplus / as sysdbacreate directory exp_dir as '/data/exp_dir'; grant read,write on directory exp_dir to system;
  • 执行导出(示例)
    • 全库:expdp system/oracle@//localhost:1521/ORCL directory=exp_dir dumpfile=full_$(date +%F).dmp logfile=full_$(date +%F).log full=y
    • 按用户:expdp system/oracle directory=exp_dir dumpfile=scott_$(date +%F).dmp logfile=scott_$(date +%F).log schemas=scott
    • 按表:expdp system/oracle directory=exp_dir dumpfile=emp_tab_$(date +%F).dmp logfile=emp_tab_$(date +%F).log tables=scott.emp
  • 导入简述(示例)
    • 全库:impdp system/oracle directory=exp_dir dumpfile=full_2025-12-02.dmp logfile=impdp_full_2025-12-02.log full=y
    • 按用户/表:使用remap_schematables等参数按需恢复 Data Pump适合跨版本迁移、按业务对象恢复、开发/测试环境快速克隆等场景。

四、自动化与异地留存

  • Shell脚本示例(Data Pump)
    • 要点:设置ORACLE_HOME/PATH,构造时间戳,执行expdp,并判断退出码;失败可接入告警
    • 最简示例:
      #!/usr/bin/env bash
      export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
      export PATH=$ORACLE_HOME/bin:$PATH
      BACKUP_DIR=/data/exp_dir
      DATE=$(date +%F_%H%M%S)
      expdp system/oracle@//localhost:1521/ORCL \
        directory=exp_dir \
        dumpfile=full_${
      DATE}
      .dmp \
        logfile=expdp_full_${
      DATE}
          .log \
        full=y
      
    • 赋权:chmod +x backup_oracle.sh
  • 定时调度(cron)
    • 每天02:00执行:0 2 * * * /path/backup_oracle.sh > > /var/log/ora_backup.log 2> & 1
  • 异地留存
    • 使用rsync或企业存储/对象存储将备份目录同步到远程
      • rsync -avz --delete /data/exp_dir/ user@remote:/backup/oracle/ 以上做法可实现无人值守的定时备份多副本留存,降低单点故障风险。

五、恢复要点与注意事项

  • RMAN恢复(示例)
    • 完全恢复(数据文件丢失):rman target /startup force nomount; restore controlfile from '/backup/.../controlfile.bkp'; alter database mount; restore database; recover database; alter database open;
    • 仅介质恢复(归档完备):recover database; (必要时加until sequence/until time
  • Data Pump恢复(示例)
    • 全库:impdp system/oracle directory=exp_dir dumpfile=full_2025-12-02.dmp logfile=impdp_full.log full=y
    • 按用户/表:使用fromuser/tousertablesremap_schema等参数
  • 注意事项
    • 生产库优先RMAN;逻辑备份用于迁移/部分恢复开发测试
    • 归档日志与控制文件自动备份务必开启,保留策略与异地副本要匹配RPO/RTO目标。
    • 定期做恢复演练备份校验list backuprestore validate),并监控磁盘空间备份成功率
    • 执行维护前,确保有可用备份回滚方案,并在变更窗口内操作。 以上恢复要点覆盖RMAN与Data Pump的常用场景,并强调校验与演练的重要性,以降低恢复失败风险。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Oracle数据库Ubuntu上如何备份
本文地址: https://pptw.com/jishu/762421.html
如何提升Ubuntu Oracle的稳定性 如何在Debian上实现LNMP的负载均衡

游客 回复需填写必要信息