温馨提示×

linux oracle怎么备份

小樊
51
2026-09-01 12:52:30
栏目: 云计算

在 Linux 下备份 Oracle 数据库,常见方式主要有以下几种,按使用频率和推荐程度说明:


一、使用 RMAN 备份(✅ 官方推荐)

RMAN(Recovery Manager) 是 Oracle 自带的备份恢复工具,最安全、最常用。

1. 基本环境准备

su - oracle
export ORACLE_SID=orcl
rman target /

2. 全库备份(最常用)

BACKUP DATABASE PLUS ARCHIVELOG;

生成文件在 FRA(快速恢复区)或指定路径。

3. 指定备份路径

RUN {
  ALLOCATE CHANNEL c1 DEVICE TYPE DISK FORMAT '/backup/oracle/%U';
  BACKUP DATABASE PLUS ARCHIVELOG;
  RELEASE CHANNEL c1;
}

4. 只备份某表空间

BACKUP TABLESPACE users;

5. 增量备份

BACKUP INCREMENTAL LEVEL 1 DATABASE;

二、逻辑备份(expdp / impdp)

适合 跨版本、跨平台迁移,不是物理备份。

1. 创建逻辑目录

CREATE DIRECTORY dump_dir AS '/backup/oracle';
GRANT READ, WRITE ON DIRECTORY dump_dir TO scott;

2. 导出全库

expdp system/password FULL=Y DIRECTORY=dump_dir DUMPFILE=full.dmp LOGFILE=full.log

3. 导出某用户

expdp system/password SCHEMAS=scott DIRECTORY=dump_dir DUMPFILE=scott.dmp

三、冷备份(停库拷贝文件)

适合 测试环境

  1. 关闭数据库
SHUTDOWN IMMEDIATE;
  1. 拷贝文件
cp -r $ORACLE_BASE/oradata /backup/oracle/
cp $ORACLE_HOME/dbs/* /backup/oracle/
  1. 启动数据库
STARTUP;

四、自动定时备份(crontab 示例)

0 2 * * * /home/oracle/rman_backup.sh

rman_backup.sh 示例:

#!/bin/bash
export ORACLE_SID=orcl
rman target / <<EOF
BACKUP DATABASE PLUS ARCHIVELOG;
EOF

五、备份建议

  • ✅ 生产环境:RMAN + 归档模式
  • ✅ 定期测试恢复
  • ✅ 备份文件异地保存
  • ❌ 不要只靠 expdp

如果你能告诉我:

  • Oracle 版本(11g / 12c / 19c)
  • 是否开启归档
  • 单机还是 RAC

我可以给你一套可直接用的备份脚本

0