在 Linux 下对 Oracle 数据库进行备份,常见方式主要有以下几种,按使用频率和推荐程度说明:
RMAN(Recovery Manager) 是 Oracle 官方备份恢复工具,支持全量、增量、归档日志备份。
rman target /
进入 RMAN 后执行:
BACKUP DATABASE PLUS ARCHIVELOG;
或写成脚本:
rman target / <<EOF
BACKUP DATABASE PLUS ARCHIVELOG;
DELETE OBSOLETE;
EOF
BACKUP INCREMENTAL LEVEL 1 DATABASE;
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/oracle/%U';
BACKUP DATABASE;
✅ 优点:可靠、支持时间点恢复
❌ 需要一定学习成本
适合跨版本、跨平台迁移或小型库。
CREATE OR REPLACE DIRECTORY dump_dir AS '/backup/oracle';
GRANT READ, WRITE ON DIRECTORY dump_dir TO scott;
expdp system/password FULL=Y DIRECTORY=dump_dir DUMPFILE=full.dmp LOGFILE=full.log
expdp scott/tiger DIRECTORY=dump_dir SCHEMAS=scott DUMPFILE=scott.dmp
✅ 优点:简单、灵活
❌ 不支持块级恢复
数据库必须关闭
sqlplus / as sysdba
SHUTDOWN IMMEDIATE;
复制以下文件:
cp -r /u01/app/oracle/oradata /backup/oracle/cold/
✅ 简单粗暴
❌ 停机、恢复慢
示例:每天凌晨备份
crontab -e
0 2 * * * /u01/scripts/rman_backup.sh
rman_backup.sh:
#!/bin/bash
export ORACLE_SID=orcl
export ORACLE_HOME=/u01/app/oracle/product/19c
$ORACLE_HOME/bin/rman target / <<EOF
BACKUP DATABASE PLUS ARCHIVELOG;
EOF
如果你愿意,可以告诉我:
我可以给你定制一套完整备份方案。