こんにちは!
ITエンジニアのYukiです。
200日でPostgreSQL資格のOSS-DB Gold取得を目指しています。
さて、今回で193日目です。あと1週間で行けるかな?
今回は、OSS-DB Gold Ver.1.0から2.0の変更点について、どう勉強するのがよいか書きます。
これまで勉強してきた、認定教材「PostgreSQL高度技術者育成テキスト」は古い試験のVer.1.0までに対応してます。PostgreSQLのバージョンで言うと9.4(2014年リリース)です。一方で、受験するVer.2.0は、PostgreSQL 11(2017年リリース)まで対応してます。9.4から11までギャップがあるわけです。
[PR]<『LPI-Japan OSS-DB Gold 認定教材 PostgreSQL 高度技術者育成テキスト』をAmazonで探す>
OSS DB Gold Ver.2.0の試験勉強は、どうすればよいでしょうか?
調べた結果、結局、公式サイトのLPI-Japan OSS-DBのページが役に立つことがわかりました。
以下のように、Ver.2.0に対応するための情報がほとんどそろっていました。
- Ver.1.0とVer.2.0の差分がまとめてあります。
- PostgreSQL 9.5と10の新機能解説があります。
- サンプル問題/例題解説がVer.2.0に対応しています。
燈台下暗しでした。
いろいろ探した結果、公式サイトが一番だと思いました。
今回は、公式サイトの活用方法を書きます。
現在の試験勉強の進捗は、公式サイトの例題に取りかかりました。
もう少しで完了です。
進捗報告
- 認定教材「PostgreSQL高度技術者育成テキスト」
模擬問題 …2周完了 - 公式サイト LPI-Japan OSS-DB Goldの例題
運用管理 …1周目 残り4問(全22問)
性能監視/パフォーマンスチューニング/障害対応 …未着手
公式サイトの例題に取りかかったことで、PostgreSQL 11にキャッチアップする必要が出てきました。
「PostgreSQL高度技術学習テキスト」で勉強した古い知識をアップデートしようと思います。
PostgreSQL 9.3から11までの追加機能
まずは認定教材「PostgreSQL高度技術者育成テキスト」が対応しているPostgreSQL 9.3および9.4から、OSS-DB Gold Ver.2.0試験が対応するPostgreSQL 11までの追加機能を振り返ります。
(参考)ウィキペディア>PostgreSQL>バージョン履歴
(参考)「PostgreSQL 14 and beyond」, スライド3 (Amit Kapila)
(参考)「PostgreSQL 10 に関する技術情報」(SRA OSS Tech Blog)
(参考)「PostgreSQL 11 に関する技術情報」(SRA OSS Tech Blog)
この中で重要なのは、PostgreSQL 10で追加された「ロジカルレプリケーション」、「宣言的パーティショニング」、「パラレルクエリ改善」の3つです。LPI Japan OSS-DB公式サイトの「OSS-DB 技術者認定試験の Ver.1.0 と Ver.2.0 の差分について」に書かれていました。「データベースの大規模化、高信頼化を支える機能」だからとのことです。
PostgreSQL 9時代の知識からアップデートするには、これらを理解する必要があります。
OSS-DBの公式サイトにそろっていた
OSS-DB Gold Ver.1.0からVer.2.0の変更点
公式のLPI-Japan OSS-DBの試験概要>OSS-DB Gold Ver.2.0ページのトップで「OSS-DB 技術者認定試験の Ver.1.0 と Ver.2.0 の差分について」が公開されています。試験改定の背景とSilverとGoldのそれぞれの差分が述べられています。
PostgreSQL 10で追加された、以下3機能が、Ver.2.0の出題範囲の特長だそうです。
- ロジカルレプリケーション
- 宣言的パーティショニング
- パラレルクエリ改善
PostgreSQLが「データベースの大規模化、高信頼化を支える機能に対応」したとのこと。
エンタープライズで使う上で。ますますPostgreSQLを選択肢として挙げやすくなりました。
また、SilverとGoldについて試験の出題範囲の差分が挙げてあります。
- 「主要な知識範囲」
- 「重要な用語、コマンド、パラメータなど」
知らない項目があれば、調べてみるとよいと思います。
これを勉強すれば、一通りの知識をアップデートできそうです。
新機能解説
PostgreSQL 10の新機能がOSS-DB Ver.2.0の特長とありました。
- ロジカルレプリケーション
- 宣言的パーティショニング
- パラレルクエリ改善
ロジカルレプリケーション
ロジカルレプリケーションでは論理的な変更情報を送るため、異なるバージョンのPostgreSQL間で連携できます。データベースクラスタ全体だけでなく、テーブル単位の柔軟な連携も可能です。OracleのGoldenGateに似てますね。
ストリーミングレプリケーションではマスター/スレーブと言うのに対して、ロジカルレプリケーションではパブリッシャー/サブスクライバーと言います。
宣言的パーティショニング
パーティショニング専門機能が用意されました。PostgreSQL9.6までは、トリガと組み合わせることでパーティショニングを実現していました。
パラレルクエリ改善
PostgreSQL10以降、パラレルクエリが改善されています。たとえばB-treeインデックススキャン、ビットマップヒープスキャン、マージ結合が並列に実行できるようになりました。
上記3機能です。これらはどう学ぶのが良いでしょうか?
ストリーミングレプリケーションは、よく使うのですが、ロジカルレプリケーションには、なじみがありませんでした。
2つ目の、宣言的パーティショニングは、Silverの範囲で勉強しましたね。
最後のパラレルクエリの改善というと何が改善されたのでしょうか?
PostgreSQL 10 新機能解説
LPI-Japan公式のOSS-DBのページで、すべて解説されていました!
「受験対策 > OSS-DB 道場」のページの「PostgreSQLの新機能」で、バージョン10以降の新機能が紹介されています。詳しくは、以下のリンクからOSS-DB公式サイトの記事をご覧ください。
- 「第1回 ロジカルレプリケーション」
- 「第2回 宣言的パーティション-1」
- 「第4回 パラレルクエリ」
※この記事だけ、試験対象バージョンの11より新しい、12に対応しています。
全部解説がありますね。
「PostgreSQL徹底入門 第4版」(翔泳社)の著者の鳥越さんが監修・執筆されていました。
[PR]<『PostgreSQL徹底入門 第4版』をAmazonで探す>
PostgreSQL 9.5 新機能解説
「PostgreSQLの新機能」とは別に、PostgreSQL 9.5の新機能についても、同じ「OSS-DB 道場」のページの「オススメ!OSS-DB情報」に載っていました。
認定教材「PostgreSQL高度技術者育成テキスト」が対応しているのがPostgreSQL 9.4 までだったので、助かります。
Ver.1.0とVer.2.0の差分を詳しく見る
次は、LPI-Japan公式サイトの「OSS-DB 技術者認定試験の Ver.1.0 と Ver.2.0 の差分について」を詳しく見ていきます。
差分で気になった箇所
Ver.1.0とVer.2.0の差分で、気になったことをまとめると以下になります。
- チェックポイント
- ストリーミングレプリケーション
- ロジカルレプリケーション
- 実行計画
- トランザクション ID の周回エラー
- pg_xlogディレクトリ等の変更
以下、資料から気になった箇所を出題範囲の4つの主題(運用管理と性能監視、パフォーマンスチューニング、障害対応)ごとにピックアップしました。
かなりの量になってしまいましたが、もし聞かれたとき説明できますか?
運用管理
- 「チェックポイント」
- 「ロジカルレプリケーション」
- 「同期レプリケーションと非同期レプリケーション」
- 「スタンバイでのコンフリクト」
用語、コマンド、パラメータなど:
ssl
pg_clog→pg_xact
性能監視
- 「待機イベント」
- 「パーティションに対するSQLの実行計画」
- 「パラレルクエリに対応する実行計画」
- 「ウィンドウ関数のSQLに対応する実行計画」
用語、コマンド、パラメータなど:
log_lock_waits
log_checkpoints
log_temp_files
パフォーマンスチューニング
- 「テーブル構成のチューニング」
用語、コマンド、パラメータなど:
huge_pages
wal_level
checkpoint_timeout
checkpoint_completion_target
障害対応
- 「スタンバイでの問い合わせのコンフリクト」
- 「スタンバイで実行可能な問い合わせ」
- 「トランザクション ID の周回エラー」
- 「サブスクライバーへ伝搬される処理とされない処理」
- 「サブスクライバーでのコンフリクト」
用語、コマンド、パラメータなど:
statement_timeout
lock_timeout
idle_in_transaction_session_timeout
hot_standby_feedback
synchronous_commit
restart_after_crash
pg_rewind
pg_resetxlog→pg_resetwal
pg_clog→pg_xact
pg_receivexlog→pg_receivewal
以上、私が気になった箇所のピックアップです。
詳しくは、公式の資料「OSS-DB 技術者認定試験の Ver.1.0 と Ver.2.0 の差分について」をご覧ください。
私の解説記事
主な変更点のうち、以下について、解説記事を書きました。
よかったら私の記事もご参考にしてください。
- 「チェックポイント」
→「(55日目)checkpoint_segmentsパラメータの廃止」 - 「pg_xlogディレクトリ等の変更」
→「(96日目)pg_xlogディレクトリ名の変更」 - 「トランザクションIDの周回エラー」
→「(211日目) トランザクションID周回問題」
サンプル問題/例題解説
最後にサンプル問題と例題解説です。
なお、このサンプル問題はVer.2.0の出題範囲に対応しています。
「LPI-Japan OSS-DB > 受験対策 > サンプル問題と例題解説」より
しっかりVer.2.0に対応していますね。
前回「(163日目)~勉強再開~」でご紹介したように、出題範囲は4つのジャンルに分かれています。以下のように問題もたくさんあります。
- 運用管理 …22問
- 性能監視 …16問
- パフォーマンスチューニング …15問
- 障害対応 …8問
ある程度問題数があるので、理解していない箇所のチェックに使えそうです。
解説もしっかりしているので、勉強になります。
まとめ
PostgreSQL 9.4までしか対応していない認定教材「PostgreSQL高度技術者育成テキスト」で勉強した後、どうやってVer.2.0の試験範囲のPostgreSQL 11に追いつくか見てきました。
公式サイトであるLPI Japan OSS-DBにすべて載ってました。
PostgreSQL 10の重要新機能であるロジカルレプリケーション、宣言的パーティショニング、パラレルクエリ改善について解説記事がありました。
また、「OSS-DB 技術者認定試験の Ver.1.0 と Ver.2.0 の差分について」の資料で、出題範囲で追加/変更/削除された項目が明示してありました。
サンプル問題/例題解説も充実していましたね。
残すは例題だけとなりました。
OSS-DB Gold受験準備もあと少しです。
もうひと頑張りしたいと思います。
最後までご覧いただき、ありがとうございました。
こんなことも知りたいといったご質問や間違ってるよといったご指摘、ご感想などありましたら、ページ一番下からお気軽にコメントください。
この記事が役に立ちましたら、下のボタンからシェアしていただけると嬉しいです。
それでは。
お薦めした本(PR):
[PR]<『PostgreSQL徹底入門 第4版』をAmazonで探す>
[PR]<『LPI-Japan OSS-DB Gold 認定教材 PostgreSQL 高度技術者育成テキスト』をAmazonで探す>
コメント