從 Oracle 到 Postgres: 最完整的轉移指引五步驟 1/4篇 – PostgreSQL 與 Oracle 差異對比
延伸閱讀 :
閱讀系列文章
本系列由 4 篇文章組成,分別為 ORACLE 與 POSTGRES 的比較(本篇)、資料庫評估、架構遷移、資料庫功能測試。歡迎閱讀系列中的其他文章,以了解完整的資料庫遷移步驟。
從 Oracle 轉移到 PostgreSQL 開源資料庫的企業數量正快速增長中,而這個完整的導引將提供用戶資料庫轉移過程所需的一切。
對於任何對轉移過程感到恐懼或懷疑的使用者來說,本篇將分析 PostgreSQL 資料庫系統對比 Oracle 的優勢以及採用 PostgreSQL 後可獲得的好處── 也就是降低成本、增加靈活性和客製化程度。
接下來,轉移過程將被分解成不同步驟,包含評估、模式轉移、功能測試、性能測試和數據轉移,並根據各階段進行逐步指導。
此外,兩種資料庫之間的關鍵系統性差異和不兼容之處被逐一列出,以幫助使用者避開常見錯誤,並權衡替代轉移方案,最終提出免費的有效轉移工具清單。
此導引除了提供給準備從 Oracle 遷移到 PostgreSQL 的用戶,也為正考慮引入 PostgreSQL 卻擔心轉移複雜性的 Oracle 用戶給予保證。
資料庫轉移是一種將軟體 (Definitions)、資料和儲存程序於平台,並改變應用程式的過程,過程中包含選擇、準備、擷取、轉換以及將資料應用於不同平台間。
使用者在轉移至 Postgres 的過程會經歷不同的階段,如挑選正確的架構、相容性檢核、改寫不相容的物件、功能和效能測試、資料轉移和轉移後檢查。
下方列舉一些從 Oracle 遷移至 PostgreSQL 的益處
雖然從 Oracle 遷移至 Postgres 益處良多,但遷移資料庫的過程並非容易。
因為資料在 RDBMS 之間進行轉移,而根據資料類型或是異質結構,整個過程將會是一個非常耗時的挑戰,因此使用者需用正確的工具來處理問題。
遵循以下步驟,問題將迎刃而解:
簡而言之, PostgresQL 相較 Oracle 有以下七點特性:
Oracle 和 PostgreSQL 都提供用於資料庫對話的 API 。受益於 PostgreSQL 的開源性質,開發者能夠使用 PostgreSQL 的原始碼進行二次開發。
Oracle 使用內建認證系統, PostgreSQL 則依賴主機驗證,因此它支持廣泛的驗證方法。這是為何 Postgres 使用者更有彈性的驗證選擇,並可以選擇委託代執行過程。
Oracle 套件多為專有性質,PostgreSQL 與之相比, 受益於其開源的特性和龐大社群支援,因此 Postgres 具有成千上萬的軟體套件供使用者選擇。
Oracle 採用內建程式語言 PL/SQL ,而 PostgreSQL 不僅容納 PL/pgSQL ,還擁有各種語言及延伸系統,並允許用戶創建額外的程序語言作為插件以及綁定更多程式語言。
Oracle 提供全球化工具,包括開發套件和 unicode 編碼支持。
相較之下, PostgreSQL 採用內建的在地化服務系統,並提供自動字元編碼和校核功能。
PostgreSQL 能夠在單一讀取群集中創造無限的節點,並使讀取操作的成本趨近於零,這也讓用戶能對調整每個工作量。雖然使用者也可以在 Oracle上 這樣做,但卻需承擔每個節點的額外成本。
Oracle 有著優秀的垂直讀取可擴展性,然而 PostgreSQL 卻能於單一叢集中創建大量唯讀(Read Only)的 StandBy ,而這僅取決於用戶願意提供的資源量。
閱讀系列文章
本次研討會介紹在 PostgreSQL 可以透過哪些方法、工具對資料庫效能監測,包含整體主機的資源使用狀況、以及各別連線查詢的狀況,並針對實際案例進行討論分享。
EDB Postgres Advanced Server 9.6 (EPAS 9.6),基於 PostgreSQL 9.6,善用 CPU 多核心功能,以平行查詢大幅增加單一表格查詢速度;並大幅增加橫向擴充能力,隨著大數據潮流一同演進。
資料庫的備份還原機制是必須的,但是總不可能在每個時段做全備份的動作,所以當資料庫必須回復到某一個時間點時,就必須借助PITR(Point-In-Time-Recovery)功能,PITR 在PostgreSQL或EDB都是內建功能,以下就來驗證PITR功能:
Apache 基金會建議使用者應立即升級到 Log4j v2.15.0。使用 2.10 以前版本者,則應從 classpath 移除 JndiLookup class。我們整理 EDB、Cloudera、Elastic 原廠針對此次漏洞的建議處置與相關資源,不同產品的影響程度與處置相差極大,詳情請閱讀針對該產品的文章或聯絡我們以得到顧問諮詢和技術支援。
關聯式資料庫有交易的概念,確保多用戶進行資料的查詢/異動有一個規範。有一些 Oracle 用戶會使用到更進階的交易,叫做 Autonomous Transaction,能夠從當前交易中「再」分支的一個交易。
EDB 提供完善資料遷移工具,有效地節省產品及資料遷移的費用開支,完全符合 IT 人員在應用多元性、效能優越性、品質穩定性及成本合理性的需求,可以說是全贏的資料庫解決方案。本場研討會將介紹 EDB 遷移解決方案與案例分享。
考慮到整合性、安全性、管理效率等, KT 捨棄 Oracle、MySQL等方案,最後選擇與 Oracle 相容的 Postgres Plus Advanced Server來處理預購訂單 。系統上線後,在頭60秒成功收到30,000份 iPhone5 的訂單,系統流量擴大、效能提升、成本也下降了超過90%。
從 Oracle 資料庫轉移至 PostgreSQL 將會是一個物超所值的決策,因為這將節省用戶每年數千美元的花費 ── 甚至是每個月。而這項決定也將讓使用者擁有世上數一數二資料庫。然而,這項工程絕非易事。
Greenplum 能夠將資料存入 AO 表,而 PostgreSQL 這種資料庫工具,與傳統的查詢計劃器相比,更具有查詢計畫的優勢。Greenplum 使用列式儲存的方式儲存資料,它的邏輯是將資料儲存至行與列中,因為這種特性, Greenplum 能夠壓縮所有使用在關聯式資料庫中的 AO 表。
截至 2015 年四月,荷蘭銀行已經將單日千萬筆交易量的系統佈署在 Postgres Plus 產品上。該公司更計畫將客戶端查詢入口佈建到全閃存陣列的 Postgres Plus 資料庫上,以達到高效能需求。
EDB 支援的資料庫系統能夠追蹤證券交易所的所有交易資料。現在,這個資料庫系統每年能管理 3.03 億筆交易資料,處理 1-2 TB 的資料量。未來,隨著這間金融機構繼續採用 Postgres 的技術,它們還計畫利用 EDB Postgres 建置 資料庫即服務平台,因為這將為開發新的應用系統帶來更多靈活性。
本次研討會將介紹 EDB 打造的 postgres 資料庫 Kubernetes Operator 佈署方案 — Cloud Native PostgreSQL Operator,體驗在 Kubernetes 上佈建並管理 Postgres 資料庫,用於管理運行在私有、公共或混合雲環境中的 Kubernetes 上的 PostgreSQL 工作負載。
PostgreSQL 11 新功能整理如下:大幅強化 Partitioned Table 語法:跨分割區異動資料,新增預設分割區(Default Partition),增加 Hash Partition 模式,簡化索引、Primary Key、Unique Key 的建立
EDB Postgres Advanced Server 10 (EPAS 10),基於 PostgreSQL 10發生了版本大跳躍,標誌著 PostgreSQL 的重大進展。
EPAS 10引進兩個令人振奮的功能 — 原生 Partitioned Table 語法,以及內建的高效表格層級資料同步,讓 PostgreSQL 的橫向擴充能力更上一層樓。
本場活動將介紹 BART、Barman 各自的功能,以及使用的比較差異,並著重演示 Barman 語法介紹、參數設定,基礎備份還原操作模擬,以及實作中可能的雷和注意事項。