PostgreSQL資料庫PGCM高階認證考試經驗分享

sync_tb發表於2020-12-13

PostgreSQL Certifed Master (PGCM)大師認證資質是開源軟體推進聯盟中國 PostgreSQL 認證的

最高階別。此認證是對技術、知識和操作技能的最高階別的認可。

詳見官網:


認證簡述:

    PGCM考試前提需要透過PGCA(初級)、PGCE(中級)兩門考試,均為選擇題。考試採取網路遠端+現場的方式,可以根據個人情況自由選擇。考試全程需要開啟筆記本前置攝像頭,以便老師可以觀察到考試環境是否符合要求、是否作弊等情況。


考試科目:

    ■ PG 資料庫安全管控(考試代號:PGCM-E094)

            考點一:資料庫配置管理

             考點 二: 資料庫安全管理

    ■ PG 資料庫最佳化(考試代號:PGCM-E095)

            考點三:效能最佳化

    ■ PG 高可用(考試代號:PGCM-E096)

             考點 四:高可用Repmgr

    ■ PG 分散式(考試代號:PGCM-E097)

             考點 五:分散式Citus

    

    一共五個考點, 考點一、二、三操作比較多,涉及的小知識點比較多,因此感覺題量比較大。 考點四、五屬於那種很明顯的操作、非細節性操作,因此比較簡單,同時題量也是最少的。


考試環境:

    每個人有兩臺機器,分為奇數機和偶數機,除了repmgr高可用叢集的搭建需要同時用到兩臺機器,其他的所有操作均在奇數機完成。機器配置還可以16G記憶體的,比當初考OCM時候的4G記憶體強多了,那會兒命令跑多了都怕卡死。


考試時間:

    考試時間相對於OCM相比是比較短的,僅一天時間。但是目前由於首次開放認證,可能大綱覆蓋的還不夠,題量不是很大。     PGCM 考試沒有明確的時間劃分,只需要你在指定的時間範圍(共8個小時)內將五道大題全部做完即可,時間上個人感覺是完全足夠的,完全不緊張。


考試提交:

    考證完成後務必要報告老師完成確認,因為目前還沒有像OCM的那種結果採集連通性測試,很可能出現老師那邊無法採集到操作結果的情況。切記! 切記! 切記!


操作過程中遇到的問題分享

下面簡單說說我在操作過程中遇到的問題

軟體版本: PostgreSQL 10.14

分享一:

軟體是透過原始碼安裝的,並要求安裝到指定位置並配置openssl, openssl個人感覺配置還是比較麻煩的,不過還好考試提供的資源裡面包含了官方文件,建議自己去試驗下。


分享二:

幾個考點中都包含了extension的建立。擴充套件的安裝需要在先前編譯好的資料庫編譯環境下才能正常編譯(即postgresql.../contrib目錄下),不然無法成功編譯安裝。提供的擴充套件中,部分是已經編譯好的(存在 <extension_name>.so的庫檔案),這種直接make install,會自動安裝庫檔案到PGHOME目錄,如果重新編譯會報錯。部分是未編譯的,這種就需要自行進行編譯安裝。


分享三:

  1. 做題一定要看準題目, 在細節題中題目要求用哪個使用者操作哪個資料庫,會明確提示。

  2. 設定資料庫允許非超級使用者的最大連線數為100,這題一定要排除掉預設為superuser保留的3個連線。

  3. 修改使用者密碼加密方式為scram-sha-256,修改完加密方式記得重置所有用到的使用者的密碼。

  4. 鑑權檔案的匹配規則是自上向下開始匹配的,要注意規則的先後順序,限制條件越多的規則要放在前面。


分享四:

設定磁碟預讀這題,第一次使用blockdev,這命令對於我來說,太冷門了。

針對SSD硬碟做引數最佳化,這題不是很瞭解,大家上網查查,感覺不是單純的改倆引數這麼簡單。


分享五:

  1. 按照2G記憶體設定合適的shared_buffers值,正常就是建議值2048MB*1/4,要根據當時的實際實體記憶體看,因為後面這個機器上面需要啟動好幾個資料庫例項,設定太大有可能會影響其他例項執行,如果是16G記憶體,那是沒有問題的。

  2. 設定表級並行度,真的就是隻設定這張表的並行度就可以了,不用去看執行計劃,因為表中的資料量過少,執行計劃始終都是非並行掃描。


分享六:

  1. 高可用repmgr叢集感覺配置基本問題都不大,這題需要注意的是一定要配置好pg_hba.conf檔案,是兩條規則

    host   all                repmgr    192.168.56.0/24   trust

    host   replication   repmgr    192.168.56.0/24   trust

    此外還需要配置好.pgpass檔案,儘量避免將密碼直接寫到配置檔案裡面,這不是個好習慣,你懂得。

    還有就是在配置repmgr.conf的過程中儘量使用IP地址進行配置,減少出現錯誤的可能性。


  2. repmgr明確Timeline最後的結果為3,也就是隻能切換兩次,一次是手動切換,一次是自動切換,每次切換完你可能會發現primary和standby的Timeline不一致,一個是目標值3(new primary),一個是舊值2(old primary),這種情況目前我知道的方法是可以透過重啟下standby資料庫來強制重新整理下就可以了。


分享七:

對於分散式Citus的使用,我的感覺這題就是送分的,操作少簡單,唯一要注意的就是,每個分佈節點的建立都是在奇數機上面,操作的時候,明確指定PGDATA,避免操作混亂。


分享八:

資料庫軟體不需要多次安裝,可以共用一套已經安裝好的軟體,本地直接共用PGHOME,遠端直接複製即可,節約時間,主要是省事。


總結:

考試考點:

  1. 難度應該算適中,整體不難,就是多多注意細節就行了。

  2. 高可用repmgr叢集和citus分散式的題比較簡單,題量較少。


結果採集:

    結果採集過程中遇到的問題:

    1.  題目中要求禁用postgres使用者本地免密登入,但是採分指令碼是本地直接登入的。

    2.  repmgr使用主機名配置無法正常採集到結果,需要使用IP配置。

    3.  postgres使用者本地登入的採分方式並不使用ssl加密訪問。

    以上問題已經和老師進行溝透過,後面會進行bug修復,以後應該不會出現此類問題。


考試建議:

  1. 建議增加repmgr和citus的考試內容,感覺當前的考試內容不足以解決常見的故障問題。

  2. Postgres-XL也是目前用的比較多的分散式軟體。

  3. PostgreSQL有個很大的問題就是不支援VIP,即使pgpool-II支援,但是這東西又不太常用,但是可以透過keepalived+lvs簡單實現。

  4. SQL最佳化和資料庫最佳化部分考試內容過於簡單,不具更多的實踐意義。

    PG目前相容的資料型別、函式和索引型別是非常多的,尤其是地理位置資訊處理等。

  5. 邏輯複製replication和流複製stream replication是平常用的比較多的資料複製方式。

  6. 建議關閉root許可權,採用sudo的方式。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30496307/viewspace-2741824/,如需轉載,請註明出處,否則將追究法律責任。

相關文章