Oracle與PostgreSQL比較:PostgreSQL至少在安裝和大小方面擊敗了Oracle - foerster
我成為Oracle DBA已有二十年了(那時從Oracle 8.0.5開始),並且從10.3版開始僅使用PostgreSQL,我感到不得不與兩者分享我的一些經驗。
Oracle有一些好的概念。我喜歡單獨的UNDO和TEMP表空間的概念,而不必關心清理。另外,我喜歡全域性容器/叢集範圍的檢視(例如CDB_TABLES等)的想法,我肯定會非常認真地想念PostgreSQL。
我特別討厭Oracle(當然,儘管需要花費許可費用)是它有如此多的bug,bug甚至更多的bug,而且一整天都在不斷尋找補丁程式,從而導致大量的停機時間。僅使用PSU或RU遠遠不夠。
因此,最重要的是,我認為PostgreSQL至少在安裝和大小方面擊敗了Oracle。
因此,猜想我在使用Oracle 20年後的錯是什麼...
下面是安裝比較:
所有安裝都在同一主機上執行,除了Oracle Data Guard和Patroni帶有etcd,它們都至少需要三個節點,或者分別需要一個奇數(大於2)才能確定主資料庫/主資料庫和副本資料庫/備用資料庫。但是,所有機器都具有相同的硬體和作業系統:
作業系統:openSUSE Leap 15.1(伺服器設定,而不是桌上型電腦) CPU:Intel i7-7700T CPU RAM:32 GB 磁碟硬體:SSD |
而且,對於所謂的僅64位軟體,Oracle需要安裝161個附加軟體包,其中許多是32位軟體包!這將導致需要150 MB的額外磁碟空間,並用32位軟體包淹沒系統!
PostgreSQL只需要安裝幾個軟體包,這取決於一個選擇用來編譯原始碼的選項。無論如何,這些軟體包都不需要32位版本!
PostgreSQL安裝大小:
軟體: $ du -sh /data/postgres/12.3 /data/oracle/product/19.6 62M /data/postgres/12.3 8.5G /data/oracle/product/19.6 資料庫: $ du -sh / data / oradb / * 3.3 G / data / oradb / cdb01#具有1個PDB的Oracle容器 1.8G / data / oradb / sdb01#Oracle獨立資料庫 $ du -sh / data / pgdb / sdb01 659M / data / pgdb / sdb01#PostgreSQL 12.3資料庫叢集 |
所有資料庫都是乾淨的設定,沒有模式,使用者,表,資料等。只是一個空殼。
Oracle安裝:
Oracle 19c: 〜2h 解壓縮到ORACLE_HOME runInstaller 解壓縮最新的OPatch p6880880_200000_Linux-x86-64 應用p30797938_190000_Linux-x86-64(19.6.1) 從原始碼編譯的PostgreSQL 12.3:〜3m30s bunzip postgresql-12.3.tar.bz2到PGHOME 進行安裝-世界 |
建立資料庫:
Oracle: 建立獨立資料庫:〜30m 建立容器資料庫(cdb $ root):〜47m 建立可插拔資料庫(pdb):〜26s 執行資料庫的記憶體相當好: 獨立資料庫至少1 GB SGA 容器資料庫至少4 GB SGA PostgreSQL: initdb:<1s 建立資料庫:<200ms 記憶體:128 MB db_buffers |
啟動/停止資料庫:
Oracle: 啟動(標準,1 GB SGA):〜15s 立即關閉(標準,1 GB SGA):〜21s 啟動(容器,4 GB SGA):〜16s 立即關閉(容器,4 GB SGA) :〜23s PostgreSQL: pg_ctl開始:0.1s pg_ctl停止:0.2s |
其他發現/經驗:
Oracle: 使用觀察者(3.節點)設定Data Guard(2個節點):〜4h 應用PSU或RU通常需要60m的停機時間-90m。 遷移主要版本通常需要60m-90m的停機時間。 遷移新的主要版本需要提前很多工作。 切換Data Guard需要大約1m。 PostgreSQL: 使用etcd(3個節點)設定Patroni(2個節點):〜30m 應用新的次要版本需要的停機時間少於2s。 遷移新的主要版本需要的停機時間少於20秒。 遷移新的主要版本需要幾分鐘的時間。 切換Patroni大約需要1秒。 |
回覆:我也曾與Oracle合作20年,主要是作為一名開發人員,但也有一些DBA工作。除非我不知道它們的“附加元件”,否則我不會遇到您似乎遇到的錯誤。堅持使用基本的RDBMS,我發現它非常可靠。但是,我更喜歡Postgres。主要的原因是,使用Oracle,你真的需要選擇一條道路或其他-無論是開發商或者是DBA。在引入DAtaGuard,GoldenGAte等功能後,尤其如此。Oracle 比Postgres 承擔了更多的管理工作,並且掌握了很多知識。
oracle的安裝過程非常糟糕。除了所有的廢話外,您通常還會在指令碼中遇到錯誤。更糟糕的是,其中一些錯誤已經存在了20年,並且只是DBA處理的“已知”問題。他們的文件站點也很糟糕。
作為開發人員,只要您具備基本的資料庫功能(即SQL和PL / SQL),並避免使用它們的擴充套件/附加元件,例如它們的各種pub / sub,規則引擎,PSP或他們通過購買公司並整合獲得的任何東西,'它,非常好。我認為它們是目前最好的鎖定模型之一。它們處理索引和更新的方式也比postgres快得多,並且您不必為效能而擔心查詢的結構。
不過,我更喜歡Postgres。主要原因是,儘管我可能需要考慮如何進一步構造查詢,更新和索引,但總的來說,它會妨礙我的工作並滿足我的要求-提供可靠的資料儲存,供我使用和無需花費大量時間從事DBA任務即可完成工作。更新很容易,基本架構也很容易。
從oracle遷移到postgres時,最大的挑戰是認識到它們是完全不同的,儘管它們都可以提供相容的SQL實現,但相似之處到此為止。如果我在其他人負責所有DBA事務的環境中,那麼Oracle很高興與您合作。但是,只有當您在大型的,通常是官僚的環境中工作時,您才傾向於處於這種情況下,這往往會以其他方式損害整個體驗。如果您很不幸還使用了Oracle的任何“增值”擴充套件,開發框架,應用程式層等,那真是太恐怖了,讓人麻木了。
除此之外,Oracle許可絕對是一場噩夢。除了費用外,其複雜性令人難以置信,幾乎不可能確切地知道您將在12、24個月或更長時間內支付的費用。- 蒂姆·克羅斯
相關文章
- Oracle vs PostgreSQL,研發注意事項(8)- Oracle資料比較規則OracleSQL
- PostgreSQL與MySQL的比較 - hackrMySql
- PostgreSQL與Oracle的sql差異SQLOracle
- 360°全方位比較PostgreSQL和MySQLMySql
- oracle Mysql PostgreSQL 資料庫的對比OracleMySql資料庫
- Oracle vs PostgreSQL DBA(21)- Oracle VPDOracleSQL
- Oracle date 型別比較和String比較Oracle型別
- PostgreSQL與Rust的聚合實現比較SQLRust
- PostgreSQL、Redis與Memcached的效能比較 - CYBERTECSQLRedis
- 在Oracle Linux 7.1中使用原始碼來安裝PostgreSQL 9.6OracleLinux原始碼SQL
- Oracle vs PostgreSQL DBA(22)- Oracle VPD#2OracleSQL
- PostgreSQL:Redhat 8.5 + PostgreSQL 14.5 安裝SQLRedhat
- Oracle vs PostgreSQL Develop(17) - ARRAYOracleSQLdev
- Oracle vs PostgreSQL Develop(15) - DISTINCT ONOracleSQLdev
- Oracle vs PostgreSQL Develop(18) - BooleanOracleSQLdevBoolean
- PostgreSQL/Oracle 時間改成秒SQLOracle
- Oracle start with connect by PostgreSQL recursive cteOracleSQL
- 【.NET 6】使用EF Core 訪問Oracle+Mysql+PostgreSQL並進行簡單增改操作與效能比較OracleMySql
- EDBPPAS(Oracle相容版)Oracle與PostgreSQL相容模式的引數配置切換OracleSQL模式
- postgresql安裝(source)SQL
- Postgresql——postgis安裝SQL
- 11. Oracle for Linux安裝和配置—11.3. Oracle安裝和配置—11.3.1. Oracle軟體安裝OracleLinux
- PostgreSQL Oracle 相容性 - connect by 2SQLOracle
- Oracle vs PostgreSQL Develop(16) - Prepared StatementOracleSQLdev
- Oracle vs PostgreSQL Develop(20) - Materialized ViewOracleSQLdevZedView
- Oracle vs PostgreSQL Develop(19) - PIPE ROWOracleSQLdev
- Oracle vs PostgreSQL Develop(28) - function overloadOracleSQLdevFunction
- Oracle vs PostgreSQL Develop(26) - ASCII 0OracleSQLdevASCII
- 多表關聯更新(mysql,oracle,postgreSQL)MySqlOracle
- Oracle到PostgreSQL等價改寫OracleSQL
- Oracle vs PostgreSQL Develop(29) - COMMIT in PLSQLOracleSQLdevMIT
- EDB PPAS(Oracle 相容版) Oracle與PostgreSQL 相容模式的引數配置切換OracleSQL模式
- postgresql的安裝和啟動方法SQL
- oracle安裝呼叫圖形化失敗Oracle
- yum安裝與原始碼安裝比較原始碼
- 11. Oracle for Linux安裝和配置—11.3. Oracle安裝和配置—11.3.3. Oracle net配置OracleLinux
- 想安裝PostgreSQL,看這篇也就夠了SQL
- Oracle vs PostgreSQL Develop(24) - subquery with agg functionOracleSQLdevFunction