温馨提示×

linux oracle配置如何备份

小樊
46
2026-09-19 14:13:51
栏目: 云计算

在 Linux 下对 Oracle 数据库进行备份,常见方式有以下几种,按使用频率和重要性从高到低说明,并附配置示例。


一、使用 RMAN(推荐,官方标准方式)

1. 前提条件

  • 数据库运行在 ARCHIVELOG 模式(生产环境必须)
  • 已安装 Oracle 客户端或服务端
  • sysdba 权限用户

查看归档模式:

sqlplus / as sysdba
SQL> archive log list;

如果不是 ARCHIVELOG,需开启(需重启):

shutdown immediate;
startup mount;
alter database archivelog;
alter database open;

2. 配置 RMAN 备份目录

mkdir -p /u01/backup/rman
chown oracle:oinstall /u01/backup/rman

3. 执行 RMAN 全库备份

rman target /
RUN {
  ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
  BACKUP DATABASE
    FORMAT '/u01/backup/rman/full_%d_%T_%s.bak';
  BACKUP ARCHIVELOG ALL
    FORMAT '/u01/backup/rman/arch_%d_%T_%s.bak';
  DELETE INPUT;
  RELEASE CHANNEL c1;
}

4. 配置自动备份(crontab)

crontab -e

示例(每天凌晨 2 点):

0 2 * * * /home/oracle/rman_backup.sh >> /u01/backup/rman/rman.log 2>&1

rman_backup.sh 示例:

#!/bin/bash
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH

rman target / <<EOF
BACKUP DATABASE PLUS ARCHIVELOG;
EOF

二、逻辑备份(expdp / impdp)

适合 跨版本迁移、表级备份

1. 创建备份目录

sqlplus / as sysdba
CREATE DIRECTORY dp_dir AS '/u01/backup/dp';
GRANT READ, WRITE ON DIRECTORY dp_dir TO scott;
mkdir -p /u01/backup/dp
chown oracle:oinstall /u01/backup/dp

2. 导出全库

expdp system/password FULL=Y DIRECTORY=dp_dir DUMPFILE=full_%U.dmp LOGFILE=expdp.log

3. 恢复示例

impdp system/password FULL=Y DIRECTORY=dp_dir DUMPFILE=full_01.dmp

三、冷备份(停库拷贝文件,简单但不推荐)

适合测试环境:

sqlplus / as sysdba
shutdown immediate;

拷贝:

  • 数据文件($ORACLE_BASE/oradata
  • 控制文件
  • 参数文件(spfile / pfile
cp -r /u01/app/oracle/oradata /u01/backup/cold/

启动数据库:

startup;

四、备份策略建议

类型 频率 说明
RMAN 全备 每周 基础
RMAN 增量 每天 减少空间
归档日志 实时 必须
expdp 月/变更前 逻辑保障

五、重要补充

  • 备份 ≠ 安全,定期做恢复演练
  • 备份文件建议 异地 / 磁带 / 云存储
  • 监控备份日志,避免静默失败

如果你能提供:

  • Oracle 版本(11g / 12c / 19c)
  • 是否 RAC / 单机
  • 数据量大小

我可以给你一套 定制备份方案

0