温馨提示×

Ubuntu Oracle数据迁移如何操作

小樊
43
2025-11-23 03:02:49
栏目: 云计算

Ubuntu 上 Oracle 数据迁移实操指南

一 方案总览与选择

  • Data Pump 逻辑迁移(expdp/impdp):适合跨版本、跨平台、跨字符集的迁移,支持按schema/表/全库导出导入,操作灵活,停机时间短(导出期间业务可继续写入,导入阶段需停写)。
  • RMAN 物理迁移:适合同平台或跨平台整库迁移,要求停机窗口,但一致性与可回滚性更强,适合大库与严格 RTO/RPO 场景。
  • 传统工具 exp/imp:兼容老版本,功能与性能弱于 Data Pump,仅在无法使用 Data Pump 时考虑。
  • 图形化工具(如 Navicat):便于小规模或临时迁移,建议仅作辅助手段。
    以上方法在 Ubuntu 上均可实施,关键在于目录对象权限、网络传输与字符集/版本兼容性控制。

二 方案一 Data Pump 逻辑迁移步骤

  • 1 准备
    • 在两端创建操作系统目录(如:/u01/dpump),并授予 oracle:oinstall 读写权限。
    • / as sysdba 登录,创建 Oracle 目录对象并赋权:
      • create or replace directory DP_DIR as ‘/u01/dpump’;
      • grant read, write on directory DP_DIR to system;(按需要授予给迁移用户)
  • 2 源库导出(示例按 schema)
    • expdp system/******@//host:1521/service_name
      directory=DP_DIR
      dumpfile=exp_20251123.dmp
      logfile=exp_20251123.log
      schemas=SRC_SCHEMA
      parallel=4
      compression=all
  • 3 传输转储文件
    • scp -P 2222 /u01/dpump/exp_20251123.dmp ubuntu@target:/u01/dpump/
  • 4 目标库导入
    • 预先在目标库创建同名用户/表空间(可按源库导出 DDL 生成),必要时设置 remap_schemaremap_tablespacetable_exists_action=replace/skip
    • impdp system/******@//host:1521/service_name
      directory=DP_DIR
      dumpfile=exp_20251123.dmp
      logfile=imp_20251123.log
      schemas=SRC_SCHEMA
      remap_schema=SRC_SCHEMA:TGT_SCHEMA
      remap_tablespace=SRC_TBS:TGT_TBS
      table_exists_action=replace
      parallel=4
  • 5 校验
    • 对比行数、主键范围、最近业务时间;抽样查询关键表;检查无效对象与统计信息。
      以上命令与流程适用于 Ubuntu 环境下的 Data Pump 迁移,可按需调整参数。

三 方案二 RMAN 物理迁移步骤

  • 1 源库准备
    • 建议开启 ARCHIVELOG 模式,配置 FRA(闪回恢复区),并执行一次全库备份(RMAN 或 Enterprise Manager)。
    • 计划停机窗口,短暂停写后执行一致备份或切换到备份模式。
  • 2 备份与传输
    • 使用 RMAN 执行整库备份(含数据文件、控制文件、归档日志),将备份集/镜像拷贝至目标服务器(本地磁盘或 NFS)。
    • 若需跨平台,使用 RMAN 的 CONVERT DATABASE 生成目标平台可识别的文件,再在目标端重建控制文件并恢复。
  • 3 目标库恢复与打开
    • 在目标端以 nomount 启动,恢复控制文件,再 mount 并进行 restore databaserecover database
    • 打开数据库(必要时使用 RESETLOGS),完成升级/兼容性检查后对外提供服务。
      RMAN 的备份、恢复、闪回与 FRA 配置为官方推荐做法,适用于整库迁移与时间点恢复场景。

四 关键注意事项与常见问题

  • 字符集与版本
    • 尽量保持源/目标 NLS_CHARACTERSET/NLS_NCHAR_CHARACTERSET 一致;跨字符集迁移需评估转换风险与代价。
    • 目标库版本建议不低于源库,避免对象/特性不兼容。
  • 目录对象与权限
    • Data Pump 必须使用 Oracle Directory;操作系统目录需存在且 oracle 用户可写;导出/导入用户需被授予目录 READ/WRITE
  • 表空间与存储
    • 目标库提前创建所需 表空间/数据文件,或使用 remap_tablespace;数据文件路径与容量规划要充足。
  • 统计信息与索引
    • 导入后可执行 DBMS_STATS.GATHER_SCHEMA_STATS 更新统计信息;检查索引/约束有效性。
  • 网络与传输
    • 大文件建议使用 nohup + 断点续传rsync -P;跨公网传输启用加密与限速。
  • 回退方案
    • 逻辑迁移建议保留源库只读窗口与最近备份;物理迁移保留旧库与备份直至业务稳定切换。
  • 官方实践
    • 生产环境优先采用 RMAN 进行备份与恢复,结合 FRAARCHIVELOG 实现可恢复性与时间点恢复能力。

0