温馨提示×

linux oracle怎么备份数据

小樊
43
2026-10-10 08:32:04
栏目: 云计算

在 Linux 环境下备份 Oracle 数据库,常见方式有 RMAN(推荐)、exp/imp(逻辑备份)、expdp/impdp(数据泵,推荐逻辑备份)、以及 冷备份(物理关闭库)。下面按使用频率和场景给你说明。


一、RMAN 备份(最推荐,物理备份)

1. 前提

  • Oracle 已安装
  • 数据库处于 ARCHIVELOG 模式(建议)
  • 使用 oracle 用户
su - oracle

2. 登录 RMAN

rman target /

3. 全库备份

BACKUP DATABASE PLUS ARCHIVELOG;

4. 指定备份路径

BACKUP DATABASE
FORMAT '/u01/backup/full_%d_%T_%s.bak';

5. 常用备份脚本(Linux shell)

cat > /u01/scripts/rman_backup.sh <<EOF
#!/bin/bash
export ORACLE_SID=orcl
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export PATH=\$ORACLE_HOME/bin:\$PATH

rman target / <<RMAN
BACKUP DATABASE PLUS ARCHIVELOG;
DELETE OBSOLETE;
RMAN
EOF

chmod +x /u01/scripts/rman_backup.sh

可加入 crontab 定时执行。


二、expdp / impdp(数据泵,逻辑备份,推荐)

1. 创建备份目录

CREATE DIRECTORY backup_dir AS '/u01/backup';
GRANT READ, WRITE ON DIRECTORY backup_dir TO scott;

2. 执行导出

expdp system/password \
DIRECTORY=backup_dir \
DUMPFILE=full_%U.dmp \
LOGFILE=expdp_full.log \
FULL=y

3. 导出指定用户

expdp system/password \
DIRECTORY=backup_dir \
SCHEMAS=scott \
DUMPFILE=scott.dmp

三、exp / imp(老方式,不推荐新系统)

exp system/password file=/u01/backup/full.dmp full=y

四、冷备份(关闭数据库,物理拷贝)

sqlplus / as sysdba
SHUTDOWN IMMEDIATE;

拷贝以下目录:

  • 数据文件($ORACLE_BASE/oradata)
  • 控制文件
  • 重做日志
  • 参数文件(spfile / pfile)
cp -r /u01/app/oracle/oradata /backup/oradata

启动数据库:

STARTUP;

五、备份策略建议

类型 建议
生产库 RMAN + 归档日志
迁移/导出 expdp
小库 expdp
灾备 RMAN + 异地拷贝

六、常见问题

1. 查看归档模式

ARCHIVE LOG LIST;

2. 开启归档

SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

如果你愿意,我可以:

  • 给你 完整 RMAN 自动备份脚本
  • 按 Oracle 11g / 12c / 19c 分别说明
  • 教你 如何恢复数据库

你现在是哪类需求?

0 踩