温馨提示×

sqlplus在Debian上的备份恢复策略有哪些

小樊
45
2025-12-13 09:42:29
栏目: 云计算

在 Debian 上使用 sqlplus 的 Oracle 备份恢复策略

策略总览与选型

  • 逻辑导出 Data Pump(expdp/impdp):通过 SQL*Plus 创建目录对象并赋权,适合跨平台迁移、按用户/表/模式迁移、开发测试环境快速还原;不是实例级物理备份的替代。
  • 用户管理冷备(脱机物理):在 SHUTDOWN IMMEDIATE 后拷贝数据文件、控制文件、联机重做日志、参数文件,恢复简单,但需停库,适合维护窗口非核心系统
  • 用户管理热备(联机文件拷贝):数据库置于ARCHIVELOG 模式,对表空间执行 BEGIN/END BACKUP 后拷贝数据文件,随后用 SQL*Plus RECOVER 应用归档/联机日志,支持时间点恢复
  • RMAN 物理备份(推荐生产):支持全库、增量、归档日志块级校验,可脚本化与自动化,恢复速度快,适合7×24 业务连续性。
  • 自动化与异地:用 crontab 定时执行导出/备份脚本,配合 rsync/scp/NFS/对象存储 做多级与异地保存,并定期还原演练验证可用性。

常用策略与关键步骤

  • Data Pump 逻辑备份与恢复(expdp/impdp)

    1. sqlplus / as sysdba 登录,创建目录对象并赋权:
      CREATE DIRECTORY backup_dir AS ‘/path/to/backup’;
      GRANT READ, WRITE ON DIRECTORY backup_dir TO system;
    2. 导出(示例为全库):
      expdp system/password@orcl DIRECTORY=backup_dir DUMPFILE=full_$(date +%F).dmp LOGFILE=full_$(date +%F).log FULL=Y PARALLEL=4;
    3. 恢复(示例为全库导入):
      impdp system/password@orcl DIRECTORY=backup_dir DUMPFILE=full_2025-12-13.dmp LOGFILE=imp_2025-12-13.log FULL=Y PARALLEL=4;
    4. 建议按模式/表粒度导出,压缩并异地同步;导入前清理或重映射目标对象以避免冲突。
  • RMAN 物理备份与恢复(生产推荐)

    1. 准备与策略:建议启用 ARCHIVELOG,制定每周全量 + 每日增量,并持续备份归档日志;脚本化执行并保留多份副本。
    2. 备份示例:
      rman target / <<‘EOF’
      BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG DELETE INPUT;
      BACKUP CURRENT CONTROLFILE;
      EOF
    3. 恢复示例(实例崩溃或数据文件介质故障):
      rman target / <<‘EOF’
      STARTUP NOMOUNT;
      RESTORE CONTROLFILE FROM ‘/backup/ctl_2025-12-13.bak’;
      ALTER DATABASE MOUNT;
      RESTORE DATABASE;
      RECOVER DATABASE;
      ALTER DATABASE OPEN RESETLOGS;
      EOF
    4. 适合快速完整恢复时间点恢复(配合归档日志)。
  • 用户管理冷备与热备(联机文件拷贝 + SQL*Plus RECOVER)

    1. 冷备(脱机):
      sqlplus / as sysdba <<‘EOF’
      SHUTDOWN IMMEDIATE;
      STARTUP MOUNT;
      – 在另一个会话拷贝:数据文件、控制文件、联机重做日志、spfile/pfile
      ALTER DATABASE OPEN;
      EOF
    2. 热备(联机,需 ARCHIVELOG):
      sqlplus / as sysdba <<‘EOF’
      ALTER DATABASE ARCHIVELOG;
      ALTER TABLESPACE users BEGIN BACKUP;
      – 在另一个会话拷贝该表空间的数据文件
      ALTER TABLESPACE users END BACKUP;
      EOF
    3. 恢复(介质恢复用 SQL*Plus RECOVER):
      – 数据库级:
      RECOVER DATABASE;
      – 表空间级:
      ALTER TABLESPACE users OFFLINE;
      RECOVER TABLESPACE users;
      ALTER TABLESPACE users ONLINE;
      – 时间点恢复:
      RECOVER DATABASE UNTIL TIME ‘2025-12-13 10:00:00’;
      – 或按 SCN/取消:UNTIL CHANGE / UNTIL CANCEL
    4. 适合无 RMAN 环境特殊场景;务必确保归档日志完整拷贝一致性

自动化与异地与演练

  • 定时任务与保留策略:用 crontab 调度导出或 RMAN 脚本,按容量与合规保留7–30 天多份备份;示例(每日 2:00 全量导出):
    0 2 * * * /opt/backup/rman_full.sh >> /var/log/rman_full.log 2>&1
  • 异地与多级存储:导出后用 gzip/tar 压缩,结合 rsync/scp 传至备份服务器/对象存储;本地保留热备份,远程保留历史备份
  • 安全与合规:对备份文件进行GPG 加密最小权限访问控制;定期在测试库还原演练,校验DMP 可用性RMAN 可恢复性

策略对比与选型建议

策略 适用场景 停机影响 恢复粒度 速度与复杂度 是否跨平台
Data Pump(expdp/impdp) 迁移、部分对象恢复、开发测试 库/模式/表 中/中
RMAN 物理 生产库、快速完整恢复、时间点恢复 块/文件/库 快/中-高
用户管理冷备 维护窗口、非核心系统 文件/库 中/低
用户管理热备 + RECOVER 无 RMAN、需联机备份 表空间/数据文件/库 中/中

0