ubuntu

Ubuntu Oracle 数据库备份方法

小樊
47
2025-10-10 07:53:11
栏目: 云计算

Ubuntu系统下Oracle数据库常用备份方法及实践

一、RMAN(Recovery Manager)物理备份

RMAN是Oracle官方推荐的物理备份工具,支持全备份、增量备份、归档日志备份,适用于生产环境的高可靠性需求。

1. 基础备份命令

以Oracle用户身份登录Ubuntu,启动RMAN并连接目标数据库,执行全量备份(包含数据文件、控制文件、归档日志):

rman target /
run {
    allocate channel ch1 type disk;          # 分配磁盘通道
    backup database plus archivelog;         # 备份数据库及归档日志
    release channel ch1;                     # 释放通道
}
exit;

2. 自动化脚本示例

创建/home/oracle/scripts/rman_backup.sh,内容如下:

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

# 定义备份目录(需提前创建并授权)
BACKUP_DIR=/backup/oracle/rman
LOG_FILE=$BACKUP_DIR/rman_backup_$(date +%Y%m%d).log

# 执行RMAN备份
rman target / <<EOF >> $LOG_FILE 2>&1
run {
    allocate channel ch1 type disk;
    backup database plus archivelog format '$BACKUP_DIR/full_%U.bak';
    release channel ch1;
}
exit;
EOF

3. 定时任务配置

通过crontab -e添加每日凌晨2点执行的定时任务:

0 2 * * * /bin/bash /home/oracle/scripts/rman_backup.sh

4. 注意事项

二、EXPDP/IMPDP逻辑备份

EXPDP(数据泵导出)与IMPDP(数据泵导入)是Oracle提供的逻辑备份工具,适用于跨平台迁移、表级/用户级备份,支持压缩与并行处理。

1. 前提条件:创建目录对象

以SYSDBA身份登录SQL*Plus,创建逻辑备份目录并授权:

-- 创建物理目录(Ubuntu系统)
sudo mkdir -p /backup/oracle/expdp
sudo chown oracle:oinstall /backup/oracle/expdp

-- 创建目录对象并授权
sqlplus / as sysdba
CREATE DIRECTORY EXPDP_DIR AS '/backup/oracle/expdp';
GRANT READ, WRITE ON DIRECTORY EXPDP_DIR TO scott;  -- 授权给需要备份的用户(如scott)
EXIT;

2. 基础备份命令

3. 基础恢复命令

4. 自动化脚本示例

创建/home/oracle/scripts/expdp_backup.sh,内容如下:

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

# 定义备份目录与文件名
BACKUP_DIR=/backup/oracle/expdp
DATE=$(date +%Y%m%d)
DUMPFILE=scott_full_$DATE.dmp
LOGFILE=scott_export_$DATE.log

# 执行导出
expdp scott/tiger@orcl schemas=scott directory=EXPDP_DIR dumpfile=$DUMPFILE logfile=$LOGFILE compression=all

5. 定时任务配置

通过crontab -e添加每日凌晨3点执行的定时任务:

0 3 * * * /bin/bash /home/oracle/scripts/expdp_backup.sh

6. 注意事项

三、文件系统级备份

通过Ubuntu系统自带的tar命令备份Oracle数据库的物理文件(数据文件、控制文件、重做日志文件、参数文件),适用于快速备份或迁移。

1. 备份步骤

2. 自动化与清理

3. 注意事项

四、定时任务最佳实践

无论选择哪种备份方式,均需通过crontab实现自动化,以下是配置要点:

  1. 切换至Oracle用户(定时任务需以Oracle用户身份执行):
    su - oracle
    crontab -e
    
  2. 添加定时任务示例(每日凌晨2点执行RMAN备份、3点执行EXPDP备份):
    0 2 * * * /bin/bash /home/oracle/scripts/rman_backup.sh
    0 3 * * * /bin/bash /home/oracle/scripts/expdp_backup.sh
    
  3. 日志记录
    将脚本输出重定向到日志文件(如>> /home/oracle/scripts/backup.log 2>&1),便于后续排查问题。

五、恢复操作概述

0
看了该问题的人还看了