UbuntuOracle数据迁移方案
作者:归人云淡风轻
时间:2026-08-20
浏览:3
Ubuntu系统下的Oracle数据库迁移方案一 方案总览与选择迁移方式对比与适用场景如下:方法适用场景停机窗口关键要点Oracle Data Pump(expdp/impdp)同版本或跨小版本、跨平台均可;以Schema/表为单位迁移可做到接近零停机(配合DBLINK做增量)需创建DIRECTOR
Ubuntu系统下的Oracle数据库迁移方案

一 方案总览与选择
- 迁移方式对比与适用场景如下:
- 迁移前务必完成:全量备份、版本与**字符集(如 AL32UTF8)**一致性检查、目标端实例与目录准备、网络与权限打通。
二 标准流程与关键命令
Data Pump 推荐流程
- 源端
- 创建目录对象并赋权
- SQL> CREATE OR REPLACE DIRECTORY tmpDir AS ‘/home/oracle/export_temp’;
- SQL> GRANT READ, WRITE ON DIRECTORY tmpDir TO ;
- 导出(示例按 Schema)
- expdp /@//:/ SCHEMAS= DIRECTORY=tmpDir DUMPFILE=export_ubuntu.dmp LOGFILE=expdp_ubuntu.log PARALLEL=4
- 创建目录对象并赋权
- 传输
- scp -P 22 /home/oracle/export_temp/export_ubuntu.dmp oracle@192.168.1.101:/home/oracle/import_temp/
- 目标端
- 创建同名目录对象并赋权
- SQL> CREATE OR REPLACE DIRECTORY tmpDir AS ‘/home/oracle/import_temp’;
- SQL> GRANT READ, WRITE ON DIRECTORY tmpDir TO ;
- 导入(示例含映射)
- impdp /@//:/ DIRECTORY=tmpDir DUMPFILE=export_ubuntu.dmp LOGFILE=impdp_ubuntu.log REMAP_SCHEMA=
: REMAP_TABLESPACE= : PARALLEL=4
- impdp /@//:/ DIRECTORY=tmpDir DUMPFILE=export_ubuntu.dmp LOGFILE=impdp_ubuntu.log REMAP_SCHEMA=
- 创建同名目录对象并赋权
- 提示:大数据量可按表/分区拆分多 DMP 并行导入;必要时先导入结构再导入数据。
- 源端
RMAN跨平台传输与转换的流程究竟是怎样的呢?
- 源端
- 建议开启归档并做一致性快照
- SQL> SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN;
- RMAN> BACKUP DATABASE FORMAT ‘/home/oracle/backup/full_%U.bkp’;
- RMAN> BACKUP CURRENT CONTROLFILE FORMAT ‘/home/oracle/backup/ctrl_%U.bkp’;
- 转换数据库(示例)
- RMAN> CONVERT DATABASE NEW DATABASE ‘ubuntu_target’ TRANSPORT SCRIPT ‘/home/oracle/convert/crdb.sql’ FORMAT ‘/home/oracle/convert/%U’;
- 建议开启归档并做一致性快照
- 目标端
- 将备份与脚本传输至目标;按脚本重建控制文件并恢复
- sqlplus / as sysdba @/home/oracle/convert/crdb.sql
- RMAN> STARTUP NOMOUNT; RESTORE DATABASE; RECOVER DATABASE; ALTER DATABASE OPEN RESETLOGS;
- 将备份与脚本传输至目标;按脚本重建控制文件并恢复
- 提示:跨平台需确认V$TRANSPORTABLE_PLATFORM支持;必要时按平台调整ENDIAN_FORMAT与数据文件路径。
- 源端
直接拷贝数据文件(冷迁移)
- 源端
- 停库并拷贝
- SQL> SHUTDOWN IMMEDIATE;
- rsync -a vz $ORACLE_BASE/oradata/ oracle@192.168.1.101:$ORACLE_BASE/oradata/
- 停库并拷贝
- 目标端
- 设置 ORACLE_SID,启动到 MOUNT 后打开
- export ORACLE_SID=ORCL
- sqlplus / as sysdba
- SQL> STARTUP MOUNT; ALTER DATABASE OPEN;
- 设置 ORACLE_SID,启动到 MOUNT 后打开
- 限制:仅限同版本、同平台、同字节序;路径与参数需一致或按控制文件调整。
- 源端
三 迁移前后验证与切换
- 数据一致性
- 对比关键表的COUNT(*)、主键/唯一键、校验和;抽样查询业务关键数据;必要时用 Data Pump 的INCLUDE/EXCLUDE做补迁。
- 应用与权限
- 更新应用TNS/连接串与连接池;复核用户/角色/权限、同义词、dblink、定时任务(DBMS_JOB/DBMS_SCHEDULER)。
- 性能与健康
- 收集 AWR/ASH 报告,检查Top SQL、等待事件、I/O;按需重建索引、收集统计信息(DBMS_STATS)。
- 切换策略
- 建议按“双写→只读→切换→回滚预案”执行;若需近零停机,可用 Data Pump + DBLINK 做增量同步后一次性切换。
四 常见问题与排错要点
- 字符集不一致
- 目标库创建时指定与源库一致的字符集(如 AL32UTF8);若必须转换,先评估对应用与数据的影响。
- 目录对象与权限
- 导入失败优先检查 DIRECTORY 是否存在、Oracle 目录与操作系统路径是否一致、用户是否具备READ/WRITE权限。
- 表空间/用户不存在
- 导入前在目标端预建表空间/用户,或使用 REMAP_SCHEMA/REMAP_TABLESPACE 映射。
- 版本/平台不兼容
- 跨平台优先选择 RMAN CONVERT DATABASE;跨小版本优先 Data Pump;避免直接拷贝。
- 归档与备份
- RMAN 转换前确保归档模式开启并有全备与控制文件备份,以便回滚与恢复。
作者最新文章
NetLimiter安装配置方法及详细操作步骤教程
2026-10-09 15:54
win10怎么只关闭大版本升级保留安全更新推送
2026-10-06 12:00
3ds Max修改器堆栈顺序对模型的影响及调整技巧
2026-10-04 12:33
荣耀MagicOS 11发布计划与Agent Harness架构解析
2026-09-08 19:23
AI重构企业业务架构:超聚变“智企”范式核心解析
2026-09-08 18:39
上一篇:
Ubuntu如何更新Oracle版本
下一篇:
UbuntuOracle高可用性配置
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多









































