目的
「PostgreSQL 高度技術者育成テキスト」は OSS-DB Gold 試験の摸擬問題集として有用です。
ですが、発行年が2014年のため、当時の PostgreSQL と OSS-DB Gold Ver.1.0 をベースとした記述となっています。このため、最新の出題範囲(現時点では Ver.2.0)で基準としている PostgreSQL のバージョン(現時点では PostgreSQL 11)と乖離している記述があります。
また、私が知る限り「PostgreSQL 高度技術者育成テキスト」の正誤表は公開されていません。
そこで、「PostgreSQL 高度技術者育成テキスト」内の摸擬問題集に対し、OSS-DB Gold Ver.2.0 をベースとした差分と誤記の修正をまとめました。この取り組みは著者に許可を得たものではなく、読者としての個人的な活動です。よって、この記事の内容に関し、著者や出版元に問い合わせることはおやめください。
今回の記事で取り上げるのは摸擬問題集かつ気が付いた範囲に限定されます。差分を網羅したものではないことをご了承ください。
摸擬問題集 表紙
公式サイトでは、OSS-DB Exam Gold 試験の出題範囲と合わせて各分野の重要度が公開されていますが、「重要度の低い分野の項目は、出題率が必ずしも低いわけではない」と筆者は考えます。
(中略)
ちなみに、重要度を全て合計すると、Silver は 50、Gold は 30 となり、それぞれ出題数と一致します。
OSS-DB Gold Ver.2.0 の出題範囲の重要度を合計すると 30 になりました。よって、今も有効な考え方といえそうです。
運用管理
(01)
選択肢のファイルサイズは全て 1/10 にして考える必要があります。
(例)「約16メガバイト」⇒「約1.6メガバイト」
(05)
「複合」は「復号」の誤記です。
(06)
pg_hba.conf ファイルで接続形式が host のレコードは SSL でも非 SSL でも対応します。
hostssl のレコードは SSL のみに対応します。
(16)
選択肢 3 に「-x オプションを設定しないと WAL ログをバックアップしない」とあります。
ですが、この挙動は PostgreSQL 10 以降で変更されました。
pg_basebackupがデフォルトでバックアップをリストアするのに必要とされるWALをストリームするようにしました。(Magnus Hagander)
これはpg_basebackupの-X/--xlog-methodのデフォルトをstreamに変えます。従来の振る舞いを再現するオプション値noneが追加されました。pg_basebackupのオプション-xは取り除かれました(代わりに-X fetchを使ってください)。
E.6. リリース10
(21)
ディレクトリ名が以下のとおり変更されています。
pg_clog ⇒ pg_xact
pg_xlog ⇒ pg_wal
(22)
ディレクトリ名が以下のとおり変更されています。
pg_xlog ⇒ pg_wal
(24,25)
この問題は PostgreSQL 11 を基準に解きます。
PostgreSQL 12 以降は recovery.conf の設定が postgresql.conf に移されました。他にも standby_mode の設定が削除されるなどの差分があります。
PostgreSQL 12 のリリースノートから引用します。
recovery.confの設定をpostgresql.confに移動しました。(Masao Fujii, Simon Riggs, Abhijit Menon-Sen, Sergei Kornilov)
recovery.confはもはや使われず、このファイルがあるとサーバは起動しなくなります。非プライマリモードに切り替えするのに、これからはrecovery.signalとstandby.signalファイルが使われます。trigger_file設定はpromote_trigger_fileに改名されました。standby_mode設定は廃止されました。
E.5. リリース12
(25)
解説に誤記があります。
standby_mod ⇒ standby_mode
性能監視
(07)
解説に『blks_hit 列と blks_read 列は bigint 型ですので、実際に演算を行う場合はキャストを行う必要があります』とあります。ですが、PostgreSQL 10/14 で確認したところ、明示的なキャストは不要でした。
(09)
n_tup_upd は更新された行数で、HOT 更新された行数を含みます。
28.2. 統計情報コレクタ
解説に『n_tup_hot_upd 列と n_tup_upd 列は bigint 型ですので、実際に演算を行う場合はキャストを行う必要があります』とあります。ですが、PostgreSQL 10/14 で確認したところ、明示的なキャストは不要でした。
(11)
解説に誤記があります。
「選択肢 2」⇒「選択肢 4」
パフォーマンスチューニング
(04)
解説に『2014 年 9 月時点での PostgreSQL には、標準機能としてパラレルクエリは実装されておらず』とあります。PostgreSQL 9.6 から標準機能としてパラレルクエリが実装されました。
第15章 パラレルクエリ
(05)
解説に誤記があります。
「チェックポイン」⇒「チェックポイント」
(17)
temp_buffers の一時バッファは一時テーブルにアクセスする時のみ使用されるセッションローカルのバッファです。
19.4. 資源の消費
障害対応
(02)
ディレクトリ名が以下のとおり変更されています。
pg_xlog ⇒ pg_wal
pg_resetxlog ⇒ pg_resetwal
pg_clog ⇒ pg_xact
(04)
ディレクトリ名が以下のとおり変更されています。
pg_resetxlog ⇒ pg_resetwal
pg_clog ⇒ pg_xact
pg_xlog ⇒ pg_wal
解説に誤記があります。
「行われないためため」⇒「行われないため」
(13)
ディレクトリ名が以下のとおり変更されています。
pg_resetxlog ⇒ pg_resetwal
(14)
ディレクトリ名が以下のとおり変更されています。
pg_xlog ⇒ pg_wal