- 首页 >
- 问答 >
-
云计算 >
- Ubuntu Oracle数据迁移如何操作
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_schema、remap_tablespace、table_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 database 与 recover 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 进行备份与恢复,结合 FRA 与 ARCHIVELOG 实现可恢复性与时间点恢复能力。