Oracle数据库Ubuntu上如何备份
导读: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 sysdba→archive log list; - 开启归档(需停机一次):
shutdown immediate;→startup mount;→alter database archivelog;→alter database open;
- 以oracle用户登录:
- 执行备份(示例)
- 连接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;
- 全量+归档:
- 连接RMAN:
- 建议的保留策略(示例)
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_dirsqlplus / as sysdba→create 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_schema、tables等参数按需恢复 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
- 要点:设置ORACLE_HOME/PATH,构造时间戳,执行
- 定时调度(cron)
- 每天02:00执行:
0 2 * * * /path/backup_oracle.sh > > /var/log/ora_backup.log 2> & 1
- 每天02:00执行:
- 异地留存
- 使用
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/touser、tables、remap_schema等参数
- 全库:
- 注意事项
- 生产库优先RMAN;逻辑备份用于迁移/部分恢复与开发测试。
- 归档日志与控制文件自动备份务必开启,保留策略与异地副本要匹配RPO/RTO目标。
- 定期做恢复演练与备份校验(
list backup、restore validate),并监控磁盘空间与备份成功率。 - 执行维护前,确保有可用备份与回滚方案,并在变更窗口内操作。 以上恢复要点覆盖RMAN与Data Pump的常用场景,并强调校验与演练的重要性,以降低恢复失败风险。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Oracle数据库Ubuntu上如何备份
本文地址: https://pptw.com/jishu/762421.html
