iT邦幫忙

0

打算 cost down 把 Oracle Database 換成 Postgresql,client 介面是用 C++

我不懂 Database,現在有一個需求,打算把 Oracle Database 換成 Postgresql,為了 cost down。我負責的部份是要把原來用 C++ 存取 Oracle 的 class (API 用 OCI),改寫為存取 Postgresql,我該如何規劃?有哪些事情我該注意?

我有經驗,用 C++ 寫 class 包裝 MySQL API 存取 MySQL database,SQL 的指令都是參考書上的範例,根據需求加以修改的,就像我所說,我不懂 database。

看更多先前的討論...收起先前的討論...
我目前是自己開發 erp 系統
客戶端用 C# 透過 Npgsql 連線到資料庫, 資料庫用 PostgreSQL
目前開發起來效果還不錯, 但是還沒實際上線給 user 用

可以做到 Client View , Business Layer , DataBase Layer 分開

可以一套系統分散式處理, 換 Database 不用改 Client View , Business Layer
也可以把不同的模組分散在不同的 主機, 也可以不同的模組面對不同的 Database
例如 : 營業模組放在 A 主機 , 面對 MS-SQL
物料模組放在 B 主機, 面對 PostgreSQL
財務模組放在 C 主機 , 面對 ORACLE
對使用者來說只會覺得變得更快更穩, 其他操作完全不變
除了有不同的效能之外, 也可以依照企業的資料庫需求建置。

可以調節資料庫連線數, 這是針對資料庫授權成本以及資料庫連線使用率來設計的。

老闆想省錢或是人少的話, 可以只買最少的資料庫授權連線, 讓所有的人同時使用。
老闆不在意錢的話可以每個人都買一個連線授權。
也可以依照部門或組織的人數去動態調整連線數。

預計在一年就可以把全部的模組開發完成,還有一些其他的想法。
有興趣大家可以一起討論。
其實我覺得 PostgreSQL 已經做得很好了, 詢問問題也很快就可以得到有效的回應。
與其浪費錢和時間跟 ORACLE 耗,

不如自己玩玩 PostgreSQL 吧。

透露一個小小的秘密 : 以前在某一家電子廠任職 ERP 工程師,原本認為玩 ORACLE 是很不錯的,
後來在一次和主管的談話中才知道,部門裡最強的 ORACLE 工程師一個月才 33 K (責任制)~~

那家公司還是美商在台灣的子公司唷, 所以呀~~玩花錢的系統作功能,不會讓老闆對你有多高的看法因為郝版認為那些功能是用錢堆出來的,不是你的功勞。

能夠用省錢的系統作出有用的功能才是高手。
這是因為那個工程師把價碼開低了...Orz
請別以偏蓋全~Orz
OCP為少也該有個5W吧?
Albert iT邦高手 1 級 ‧ 2012-10-31 18:03:15 檢舉
我目前是自己開發 erp 系統


你敢相信 有人沒有會計引擎 也自稱是 ERP
你敢相信 有人沒有規則引擎 也自稱是 ERP
你敢相信 有人沒有驗證引擎 也自稱是 ERP
Albert iT邦高手 1 級 ‧ 2012-11-10 14:47:04 檢舉

我目前是自己開發 erp 系統
客戶端用 C# 透過 Npgsql 連線到資料庫, 資料庫用 PostgreSQL
目前開發起來效果還不錯, 但是還沒實際上線給 user 用



你敢相信 有人沒有會計引擎 也自稱是 ERP
你敢相信 有人沒有規則引擎 也自稱是 ERP
你敢相信 有人沒有驗證引擎 也自稱是 ERP

1 個回答

10
Albert
iT邦高手 1 級 ‧ 2010-01-17 09:14:49
最佳解答

shunyuan提到:
我不懂 Database,現在有一個需求,打算把 Oracle Database 換成 Postgresql,為了 cost down。我負責的部份是要把原來用 C++ 存取 Oracle 的 class (API 用 OCI),改寫為存取 Postgresql,我該如何規劃?有...(恕刪)

我們的專案剛好橫跨這兩種資料庫
Postgresql/Oracle Database
www.adempiere.org
技術轉移顧問
Skype: Adempiere/Compiere

要 cost down 來重寫 聽起來怪怪的
如果你已經是 Oracle DB 的用戶
除非 你 Oracle DB User 數成長中
除非 你 Oracle DB Server 數成長中

看更多先前的回應...收起先前的回應...
Albert iT邦高手 1 級 ‧ 2010-01-17 09:28:54 檢舉

shunyuan提到:
我該如何規劃?有哪些事情我該注意?

建議作法::
將非核心(MissionCritical) 作業抽離 到 MySQL/PostgreSQL

例如申請事項 所有的單據
列如交易事項 所有的單據
核心(MissionCritical) 作業留在 Oracle DB 使用最少人版本
列如主檔/累計檔
配合 SOA 主動服務..非同步即時引擎來達成

Albert iT邦高手 1 級 ‧ 2010-01-17 09:33:39 檢舉

Oracle 上還是有 申請事項 詳細資料
Oracle 上還是有 交易事項 詳細資料
但是採用單一Session / SOA 非同步即時引擎來達成
(由 SOA 每秒主動去 mySQL/postgreSQL 抓入)
因此沒有 RecordLock Issue...

Albert iT邦高手 1 級 ‧ 2010-01-17 09:33:39 檢舉

Oracle 上還是有 申請事項 詳細資料
Oracle 上還是有 交易事項 詳細資料
但是採用單一Session / SOA 非同步即時引擎來達成
(由 SOA 每秒主動去 mySQL/postgreSQL 抓入)
因此沒有 RecordLock Issue...

shunyuan iT邦研究生 1 級 ‧ 2010-01-17 14:56:43 檢舉

補充一下我的情況。
(1) 我們要新增 Database server,之前是用 Oracle 選用 Postgresql 是因為 SQL 部份幾乎是相容,我們打算把資料(TABE?),從 Oracle 轉到 Postgresql。
(2) 使用的情境相對是比較簡單,主要是要存遊戲玩家的資料,會有許多 TABLE,不過許多比較 Advance 的應用,應該是用不到。
(3) 因為使用的情況並不太複雜,主要想請教的部份,資料移轉的步驟,及 client API 上應該要注意的地方。Oracle client API 及 Postgresql clinet API 我都沒有碰過,只有使用 MySQL client API 的經驗。

Albert iT邦高手 1 級 ‧ 2010-01-17 19:07:33 檢舉

shunyuan提到:
因為使用的情況並不太複雜,主要想請教的部份,資料移轉的步驟,及 client API 上應該要注意的地方。Oracle client API 及 Postgresql clinet API 我都沒有碰過,只有使用 MySQL client API 的經驗。

原則上 mySQL 執行效率是最好 , 也最陽春,,比較不適合寫複雜商用軟體
那是對你最適合飛複雜型的商用軟體!!
我們都是用 JBOSS SOA 非即時引擎去整合系統資料!!

bp62537 iT邦研究生 5 級 ‧ 2010-01-18 09:01:35 檢舉

疑!
Albert 老大,樓主說他的 client 端是 C++,而您說用 JBOSS SOA 整合資料,這要怎麼做呀?
JBOSS 也有提供 C++ 的 API Library ?

我要發表回答

立即登入回答