温馨提示×

debian系统sqlplus备份恢复方法

小樊
33
2025-11-29 14:52:59
栏目: 云计算

Debian 上 Oracle 的 sqlplus 备份与恢复实践

一 概念与工具选择

  • SQL*Plus 是 Oracle 的命令行客户端,本身不是备份工具;通常通过它执行 Data Pump(expdp/impdp) 的逻辑导出导入,或在 RMAN 中执行开关归档、恢复等命令。
  • Data Pump(expdp/impdp) 适合跨库迁移、按用户/表/全库导出与导入,属于逻辑备份。
  • RMAN 是 Oracle 官方推荐的物理备份工具,支持全库、增量、归档日志备份与时间点恢复,适合生产环境的快速恢复。
  • Debian 上,上述工具均可使用;建议结合 crontab 做定时任务,并将备份文件通过 scp/rsync 传至异地存储,定期做还原演练验证可用性。

二 使用 Data Pump 进行逻辑备份与恢复

  • 前置准备
    1. 以管理员身份登录:sqlplus / as sysdba
    2. 创建 Oracle 目录对象并授权(指向操作系统目录):
      • CREATE DIRECTORY dpump AS ‘/opt/oracle/backup’;
      • GRANT READ,WRITE ON DIRECTORY dpump TO scott;
    3. 确保操作系统目录存在且权限正确:mkdir -p /opt/oracle/backup && chown oracle:oinstall /opt/oracle/backup
  • 全库导出示例
    • expdp system/password@orcl DIRECTORY=dpump DUMPFILE=full_$(date +%F).dmp LOGFILE=full_$(date +%F).log FULL=y PARALLEL=2
  • 按用户导出示例
    • expdp scott/tiger@orcl DIRECTORY=dpump DUMPFILE=scott_$(date +%F).dmp LOGFILE=scott_$(date +%F).log SCHEMAS=scott PARALLEL=2
  • 导入示例
    • 全库导入:impdp system/password@orcl DIRECTORY=dpump DUMPFILE=full_2025-11-29.dmp LOGFILE=imp_full_2025-11-29.log FULL=y PARALLEL=2
    • 按用户导入:impdp scott/tiger@orcl DIRECTORY=dpump DUMPFILE=scott_2025-11-29.dmp LOGFILE=imp_scott_2025-11-29.log SCHEMAS=scott REMAP_SCHEMA=scott:scott_new PARALLEL=2
  • 常用参数说明
    • DIRECTORY:Oracle 目录对象(非系统路径)
    • DUMPFILE/LOGFILE:导出/导入文件与日志
    • FULL/SCHEMAS/TABLES:导出范围
    • PARALLEL:并行度(提升速度)
    • REMAP_SCHEMA:导入时重映射用户(跨库迁移常用)
    • TABLE_EXISTS_ACTION=REPLACE/APPEND/SKIP:导入时目标对象已存在的处理策略
  • 自动化与异地备份示例(简化版)
    • 在 /opt/oracle/scripts/backup_dp.sh 中:
      • 创建当天 DMP 与 LOG
      • 执行 expdp(按需要选择 FULL 或 SCHEMAS)
      • 打包压缩:tar czf full_$(date +%F).tar.gz full_$(date +%F).dmp full_$(date +%F).log
      • 传输到备份服务器:scp full_$(date +%F).tar.gz backup@192.168.1.100:/data/backup/
    • 加入 crontab(每日 2 点):0 2 * * * /opt/oracle/scripts/backup_dp.sh >> /var/log/oracle_dp.log 2>&1
    • 提示:生产环境建议使用 expectSSH 密钥免密传输,避免明文密码与交互阻塞。

三 使用 RMAN 进行物理备份与恢复

  • 归档模式与基础配置
    • 检查归档:archive log list;
    • 开启归档(需停机一次):
      • sqlplus / as sysdba
      • SHUTDOWN IMMEDIATE;
      • STARTUP MOUNT;
      • ALTER DATABASE ARCHIVELOG;
      • ALTER DATABASE OPEN;
  • 全量备份示例
    • rman target /
    • RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;
  • 增量备份示例
    • RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;
  • 恢复示例
    • 介质恢复(数据文件损坏等):
      • RMAN> STARTUP FORCE MOUNT;
      • RMAN> RESTORE DATABASE;
      • RMAN> RECOVER DATABASE;
      • RMAN> ALTER DATABASE OPEN;
    • 时间点恢复(PITR):
      • RMAN> RUN {
        • SET UNTIL TIME ‘2025-11-29 10:00:00’;
        • RESTORE DATABASE;
        • RECOVER DATABASE;
        • }
      • RMAN> ALTER DATABASE OPEN RESETLOGS;
  • 适用场景
    • RMAN 适合需要快速恢复、最小化停机时间的生产库;逻辑导出(expdp)更适合跨平台迁移、部分对象恢复与开发测试环境。

四 备份策略与运维要点

  • 策略建议
    • 生产库:以 RMAN 全量 + 每日增量 + 归档日志备份 为主,保障可恢复到任意时间点;
    • 迁移/部分恢复:使用 Data Pump 做按用户/按表导出导入;
    • 保留周期:本地保留近 7–14 天,异地保留 30–90 天
  • 安全与合规
    • 备份文件加密(如 GPG),目录权限最小化,传输走内网或加密通道;
  • 可用性与演练
    • 定期在测试环境做 还原演练,校验 DMP 或 RMAN 备份的可用性与完整性;
  • 监控与告警
    • 记录 expdp/impdp 与 RMAN 日志,监控任务退出码与备份文件大小,异常及时告警。

0