2009-02-05 53 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的實現已更改,現在行通常會以無序方式返回。

(一旦找到違規代碼,很容易修復)