如何将本地自建Oracle环境平滑迁移至OCI云端

冬婷吖_2965

冬婷吖_2965

2026-09-23

818人浏览

原创

oci database migration 是一套调度器,自动调用 data pump、goldengate 和 cloud premigration advisor tool 执行注册、连通检测、字符集比对及基础对象迁移;但序列校准、物化视图刷新、dblink 配置需半自动干预,pl/sql 硬编码路径、utl_file 调用等完全不处理。

如何将本地自建oracle环境平滑迁移至oci云端

能平滑迁移,但“平滑”不等于“无感”——关键取决于你是否在迁移前就识别出那几个必须手动干预的环节,而不是等 OCI Database Migration 控制台显示“验证通过”就以为万事大吉。

OCI Database Migration 服务到底能自动做什么?

它不是黑盒搬运工,而是一套调度器:自动调用 Data Pump 做逻辑导出导入、调用 GoldenGate 做联机增量同步、用 Cloud Premigration Advisor Tool 扫描兼容性问题。但它不会替你改 CONNECT BY 查询里的伪列引用,也不会帮你重写调用了 UTL_FILE 的存储过程。

  • 自动完成:数据库注册、网络连通性检测、字符集比对、基础对象(表/索引/约束)结构迁移
  • 半自动依赖人工:序列起始值校准、物化视图刷新策略调整、DBLink 目标地址重配
  • 完全不碰:PL/SQL 中硬编码的路径、DBMS_OUTPUT.PUT_LINE 日志输出逻辑、自定义 UTL 包封装

本地 Oracle 到 OCI 的网络和权限准备最容易翻车

OCI 不允许源库直接暴露公网 IP,也不接受从本地发起的反向连接。你得提前在本地防火墙、OCI 安全列表、OCI 网关路由三处同时开白名单,且端口必须严格对应。

Market Oracle
Market Oracle

金融事件影响分析器 — 获取突发新闻,追踪金属/石油/加密货币/股票价格,预测短中长期市场连锁反应

下载
  • 源库监听端口(默认 1521)需在本地防火墙放行,并确保 OCI VCN 的安全列表中入方向规则允许该端口 + 源 CIDR
  • OCI 目标数据库必须启用 tnsnames.ora 中配置的 SERVICE_NAME,不能只靠 SID 连接;否则 OCI Database Migration 会卡在“测试连接”步骤报 ORA-12514
  • 用于迁移的数据库账号必须有 EXP_FULL_DATABASEIMP_FULL_DATABASE 角色,仅 DBA 不够——这是很多 DBA 忽略的细节

脱机 vs 联机迁移的选择,本质是业务容忍度问题

别被“Zero Downtime Migration”名字迷惑。所谓零停机,是指应用层可读写,但目标库在最终切换前始终是只读状态,且中间存在秒级数据延迟。如果你的业务要求强一致性(比如账务核心),就必须接受一次可控的停机窗口。

  • 选脱机迁移:适用于夜间批处理系统、报表库、测试环境;耗时短,失败回滚快;但需要完整停机窗口,且 Data Pump 导出文件需存到 OCI Object Storage,注意 bucket 权限策略
  • 选联机迁移:适用于交易类系统;依赖 GoldenGate 抽取源库 redo log,要求源库开启归档模式(ARCHIVELOG)且 FORCE LOGGING 已启用;否则增量同步会静默失败
  • 混合方案更常见:先用脱机迁移主干数据,再用联机补增量,最后在业务低峰期执行最终切换——这需要你在 OCI Database Migration 控制台里手动触发“Final Cutover”按钮,而非让它自动执行

迁移后最常被忽略的三件事

迁移完成 ≠ 上线成功。OCI 上的 Oracle 数据库默认关闭了部分本地常用功能,且监控方式完全不同。

  • V$SESSIONV$SQL 视图仍可用,但 OCI 自治数据库(如 ATP/ADW)不开放这些视图;如果你用的是 Base Database Service(VM 方式),则需确认是否启用了 STATISTICS_LEVEL = ALL,否则 AWR 报告为空
  • 本地写的备份脚本(RMAN 脚本调用 BACKUP DATABASE PLUS ARCHIVELOG)在 OCI 上基本失效——OCI 自动管理备份,你只能通过控制台或 oci-cli 查看保留策略,不能手动触发物理备份
  • OCI 的 tnsnames.ora 默认使用连接池(CONNECTION POOLING),而本地直连习惯容易导致应用连接数突增超限;建议上线前在应用侧显式配置 maxPoolSize,并观察 OCI 监控中的 Database Connections 指标

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

oracle

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
oracle清空表数据
oracle清空表数据

当表中的数据不需要时,则应该删除该数据并释放所占用的空间。本专题为大家提供oracle清空表数据的相关文章,帮助大家解决该问题。

2023.08.16

821

5

Oracle中declare的使用
Oracle中declare的使用

Oracle DECLARE语句是PL/SQL编程语言中用于声明变量、常量、游标或异常的关键字。它的主要作用是在程序中定义这些对象,以便在后续的代码中使用。DECLARE语句的语法简单明了,可以根据需要声明多个对象。通过使用这些声明的对象,可以进行各种操作,如计算、查询数据库、处理异常等 。

2023.09.15

2233

5

oracle怎么分页
oracle怎么分页

实现分页的步骤:1、使用ROWNUM进行分页查询;2、在执行查询之前进行设置分页参数;3、使用"COUNT(*)"函数来获取总行数,并使用"CEIL"函数来向上取整计算总页数;4、在外部查询中使用"WHERE"子句来筛选出特定的行号范围,以实现分页查询。想了解更多oracle怎么分页的文章,可以来阅读本专题先的文章。

2023.09.18

2270

5

Oracle查看表操作历史记录
Oracle查看表操作历史记录

查看操作历史记录的方法:1、使用Oracle内置的审计功能,可以记录数据库中发生的各种操作,包括登录、DDL语句、DML语句等;2、使用Oracle日志文件,其中包含了数据库中发生的各种操作,可以通过查看日志文件来获取操作历史记录;3、使用Oracle的Flashback功能,可以查看数据库在某个时间点的操作历史记录;4、使用第三方工具等。本专题还提供其他查看表操作的文章,大家可以免费阅读。

2023.09.19

1329

3

Oracle中RAC的用法
Oracle中RAC的用法

Oracle中RAC的用法:1、通过在多个服务器上运行数据库实例来提供高可用性;2、允许在需要时增加或减少节点数量;3、通过将工作负载分布到多个节点上来实现负载均衡;4、使用共享存储来实现多个节点之间的数据共享;5、允许多个节点同时处理数据库请求,从而实现并行处理;6、提供了透明故障切换功能;7、使用了一些技术来确保数据的一致性;8、提供了管理工具来简化RAC环境的管理和维护。本专题还提供RAC相关的其他文章,大家可以免费阅读。

2023.09.19

1893

7

oracle imp
oracle imp

imp是Oracle数据库中的一个命令行工具,用于将导出的数据和对象从一个数据库实例导入到另一个数据库实例。imp命令的一般语法为“imp username/password@connect_string file=file_name [options]”。

2023.09.19

2449

4

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.02

4009

19

oracle通配符有哪些
oracle通配符有哪些

oracle通配符有“%”、“_”、“[]”和“[^]"。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.08

237

5

oracle四舍五入怎么操作
oracle四舍五入怎么操作

oracle四舍五入操作可以使用ROUND函数来实现,其语法为“ROUND(number, decimal_places)”,其中,number是要进行四舍五入的数值,decimal_places是指定的小数位数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.14

626

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程