2009-02-05 54 views
3

我们有一个使用Oracle 9i的应用程序(好吧,3),但是这很快就要结束了,我们需要迁移到另一个平台 - Oracle 11或Postgress是显而易见的平台。将应用程序从Oracle 9移植到Oracle 11 - gottchas?

我听说过,从9i移植到11并不是直截了当的评论,但是这里没有人可以确认某种方式。我并不太在意“哦,查询计划引擎改变了”,我更关心“这个功能已经不存在了”。

这些应用程序都不是很复杂 - 它可能是客户端SQL中的基本问题(也可能是一个大型的多表搜索例程,但我们将使用Lucene重写),或PL/SQL中的相同。

Postgress只是作为一个可能更容易,更便宜的目标来移植,但许可成本被我们DBA的培训成本抵消。

任何经验评论赞赏。

+0

你为什么不试试自己?您可以免费下载和使用11g进行开发。 – zendar 2009-02-05 12:17:56

+0

我知道,但我们时间不够,所以在经过了“我已经做了,没事了”之类的小动作之后,或者“d00d,你是如此搞砸了”。 :) – 2009-02-05 13:00:29

+0

感谢这两个答案 - 标记雷内的正确只是因为(他)有较少的代表(即,会发现代表有用)。不能标记两个都不对劲:(谢谢你们俩) – 2009-02-05 13:03:07

回答

3

需要注意以下几点:

  • CREATE VIEW权限是在9i中CONNECT角色的一部分。但不是在10g。大概也在11G。您可能想要向安装脚本添加授权。
  • 11G具有区分大小写的密码。所以如果你发现自己无法连接这可能是问题。
1

那么规则库优化器已经消失或几乎消失,因此查询计划确实发生了变化。

但缺少功能...我不知道任何。你应该向那些告诉你失踪特征的帅哥和伙计们提供支持。 问他们缺少哪些功能?

如果他们不能举例,我不会感到惊讶。

5

下面是从Oracle的有用白皮书的一些9i和10g之间的变化,将让你开始:http://www.oracle.com/technology/products/bi/db/10g/pdf/twp_bidw_optimizer_10gr2_0208.pdf

的文件设置为10g和11g会给你新的和过时了非常彻底的列表功能和修改后的默认行为。例如。 http://download.oracle.com/docs/cd/B28359_01/readmes.111/b28280/toc.htm#BABGIGDC

+0

谢谢你们!在我们开始之前,我会给他们一个阅读,欢呼很多 – 2009-02-06 15:55:29

1

对UTL_HTTP等要求加密安全性所需的特权进行了一些更改。 但是,真的没有什么会打破,不能很容易地修复。 Oracle想要做的最后一件事是中断正在其数据库上运行的应用程序。

如果您已经为Oracle许可证付款,则已经发生了很大的成本。对于Postgres,您的维护和支持成本可能会降低,但您仍然希望在DB出现故障并且备份恢复不如预期时支付当天的支持。

PS。你看过内置的Oracle文本功能而不是Lucene吗?

2

东西砸我们:

9i和10g DISTINCT改变的排序行为之间。

在9i中,你可以写

SELECT DISTINCT X 
FROM Y; 

和行会通过X回来排序(显然你应该已经包括了“ORDER BY X”的条款,但有时人们忘记,因为它的工作没有)。

这不是10g中的情况... DISTINCT的实现已更改,现在行通常会以无序方式返回。

(一旦找到违规代码,很容易修复)