首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle并排模式更新technology...is有没有?

Oracle并排模式更新technology...is有没有?
EN

Stack Overflow用户
提问于 2008-11-06 15:36:10
回答 3查看 902关注 0票数 3

有没有什么技术可以让你并行更新生产模式呢?

目标是在将更新应用于生产中的模式时,具有零停机时间。WebLogic10为他们的Java EE应用程序提供了类似的功能,通过部署新版本的应用程序,新的连接将转到新的应用程序,而现有的连接将继续到旧的应用程序。当所有旧的连接完成/超时时,旧的应用程序将退役,新的应用程序将继续on...zero停机时间。

甲骨文中也有类似的东西吗?

EN

回答 3

Stack Overflow用户

发布于 2008-11-06 22:26:09

是。有在线重定义包。

DBMS_Redefinition

但我怀疑这是否会给您带来零停机时间,这并没有考虑到对模式的每一种可能的更改。这使您可以进行一些表更改。我认为你需要定义零,以及你想要做的改变的广度。通常,如果你改变数据库,你也必须改变你的客户端。如果您更改了数据库,客户端将如何立即自动从旧的proc签名切换到新的proc签名?

数据库不像应用程序那样工作。要么存在从tableA到tableB的FK,要么没有...它不能不存在于当前连接中,而仅存在于新连接中,其方式与您的应用程序相同。数据库就是不一样。

也就是说,有传言说Oracle正在研究包版本控制……因此,您可以连接到特定版本的包,以简化此类迁移。但又一次..。这将适用于包,DBMS_redef将适用于表...但这不是您的数据库的总和。

票数 3
EN

Stack Overflow用户

发布于 2009-09-01 19:45:11

Oracle今天发布了11gr2,它有基于版本的重新定义:http://download.oracle.com/docs/cd/E11882_01/server.112/e10881/chapter1.htm#NEWFTCH1

票数 2
EN

Stack Overflow用户

发布于 2008-11-06 22:54:44

取决于您在"schema“中的含义或包含内容。如果你想添加或删除一个索引,这可以在“运行中”完成,尽管它需要一个锁,这可能会暂停一段时间的活动。在最新的Oracle版本中,它不需要在构建索引所用的整个时间内都持有锁,只需要片刻锁定更改即可。如果你有持续时间较短的交易,它应该不会引起注意。在某些情况下,这也适用于表(例如,添加一个可空的或默认的列)。

如果使用PL/SQL (尤其是包),事情可能会稍微复杂一些。11gR1提出了增强功能以支持正在进行的应用程序升级,但它被推出了,现在预计将在11gR2中(可能在明年上半年推出)。同时,变通方法是一种多模式解决方案。假设您的数据位于一个模式(“黄色”)中,而当前的应用程序代码在“蓝色”模式中运行,则将新应用程序加载到“绿色模式”中。你一个接一个地把你的连接从蓝色切换到绿色。一旦您的连接都使用“绿色”,您可以退出“蓝色”,直到您的下一次升级(当“蓝色”成为新的应用程序,“绿色”是退役)。

如果你有一个真正的24/7系统,你可能总是不得不进行一些升级。例如,添加一个新的列作为可选,升级应用程序以设置它,然后将其设置为强制的(可能对预先存在的行使用一些数据更改脚本)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/269145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档