OSS-DB Gold参考書
性能監視・チューニング・障害対応・レプリケーションまで踏み込む PostgreSQL の上級運用スキルを証明する OSS-DB 技術者認定 Gold(LPI-Japan・Ver3.0)。
OSS-DB Gold(OSS-DB Gold)について
OSS-DB Gold(OSS-DB Gold)は、LPI-Japan が提供するプロフェッショナル・エキスパートレベルの認定資格です。このページでは、試験範囲を全 4 章・13 節の参考書として体系的に解説し、本番形式の練習問題で理解度を確認できます。下の章一覧から順に読み進め、「問題集で演習する」で実力を試すのが効率的な学習の流れです。
試験で問われる分野(出題範囲の目安)
- 運用管理約 30%
- 性能監視約 30%
- パフォーマンスチューニング約 20%
- 障害対応約 20%
配点は本番試験の目安です。各分野は下の章・節で詳しく解説しています。
公式の試験情報:https://oss-db.jp/outline/gold
1運用管理
- 1.1データベースサーバ構築
サーバ構築時に固める暗号化・認証・監査の基盤を深掘りします。SSL通信とpgcryptoによるデータ暗号化、暗号化状況を確認するpg_stat_ssl、クライアント認証のSCRAM-SHA-256、監査ログの中核log_statementと稼働統計の設定track_functions・track_activities、ユーザー/DB単位でパラメータを固定するALTER ROLE・ALTER DATABASE、チェックサム付きで初期化するinitdb --data-checksums、クラスタ内の主要ディレクトリpg_tblspc・pg_wal・pg_stat_tmpを押さえます。
- 1.2運用管理コマンド
バックアップ・リカバリと日常メンテナンスの実務コマンド群を深掘りします。非排他的バックアップとPITR・WALの仕組み、pg_dump・pg_dumpall・pg_basebackup、Ver12-14で有効なpg_start_backup()・pg_stop_backup()、VACUUM・vacuumdb・ANALYZE・CLUSTER・REINDEX・CHECKPOINT、autovacuumの詳細、肥大化調査のpgstattuple、pg_cancel_backend()・pg_reload_conf()、並列度のmax_parallel_workers、監視用ロールpg_monitorを押さえます。
- 1.3データベースの構造
クラスタの物理的な実体とプロセスの内部構造を深掘りします。物理ファイル配置とプロセスアーキテクチャ(postmaster・backend・backgroundプロセス)、大きな値を分割格納するTOAST、テーブルの空き領域率を制御するFILLFACTOR、autovacuumの内部動作、外部データを扱う外部テーブル(FDW)のpostgres_fdw・file_fdw・CREATE SERVER・USER MAPPING・FOREIGN TABLEを押さえます。
- 1.4レプリケーション運用
ストリーミングレプリケーションとロジカルレプリケーションの構築・監視を深掘りします。wal_level・max_wal_senders・synchronous_standby_names・synchronous_commit・hot_standby_feedbackによるストリーミング構成、ロジカルレプリケーションのCREATE/ALTER/DROP PUBLICATION・SUBSCRIPTION、監視ビューのpg_stat_replication・pg_stat_wal_receiver、送受信プロセスのwalsender・walreceiver、専用受信ツールのpg_receivewalを押さえます。
2性能監視
- 2.1アクセス統計情報
サーバーの「今」を映す統計ビュー群を学びます。接続中セッションを可視化するpg_stat_activity(wait_event_type/wait_event)、ロック競合を追うpg_locks、DB単位の集計を持つpg_stat_database、テーブルアクセス傾向のpg_stat_all_tables、物理I/Oのpg_statio_all_tables、WALアーカイブのpg_stat_archiver、チェックポイント/バッファ書き出しのpg_stat_bgwriterを押さえます。
- 2.2テーブル/カラム統計情報
プランナが実行計画を選ぶ根拠となるpg_statistic/pg_statsを学びます。カラムごとのnull_frac・n_distinct・most_common_vals・most_common_freqs・histogram_bounds・correlationの意味と、統計の精度を左右するdefault_statistics_target、キャッシュ規模の見積もりに使うeffective_cache_size、複数カラム相関を捉える拡張統計(CREATE STATISTICS・pg_statistic_ext)を押さえます。
- 2.3クエリ実行計画
実行計画を読み解く力を学びます。計画を可視化するEXPLAIN/実際に実行して実測値も出すEXPLAIN ANALYZE、結合戦略のNested Loop・Hash Join・Merge Join、スキャン種別のSeq Scan・Index Scan・Bitmap Scan、集計のウィンドウ関数、複数プロセスで処理を分担するパラレルクエリ(max_worker_processes・max_parallel_workers_per_gather)を押さえます。
- 2.4その他の性能監視
サーバー全体・クエリ単位の追加監視手段を学びます。拡張機能をサーバー起動時に読み込むshared_preload_libraries、実行計画を自動的にログへ出すauto_explain、クエリ単位の累積統計を持つpg_stat_statements、遅いクエリ・自動VACUUM・ロック待ち・チェックポイント・一時ファイルをログへ記録するlog_min_duration_statement・log_autovacuum_min_duration・log_lock_waits・log_checkpoints・log_temp_filesを押さえます。
3パフォーマンスチューニング
- 3.1性能に関係するパラメータ
PostgreSQLの主要な性能パラメータを学びます。メモリ系のshared_buffers・huge_pages・work_mem・maintenance_work_mem、WAL/チェックポイント系のwal_level・fsync・checkpoint_timeout・max_wal_size・wal_keep_size・checkpoint_completion_target、ロック系のdeadlock_timeout、そしてプランナ・統計・リソース使用に関わるパラメータの相互作用を押さえます。
- 3.2チューニングの実施
実行計画とSQLレベルのチューニングを学びます。Index Only ScanとVisibility Mapの関係、関数インデックス・部分インデックス、パーティショニング、プランナ制御のenable_*パラメータ(例enable_seqscan)・random_page_cost・hash_mem_multiplier、そしてCREATE INDEX CONCURRENTLY・FILLFACTOR・REINDEXによる無停止運用を押さえます。
4障害対応
- 4.1起こりうる障害のパターン
障害トリアージの基本を学びます。エラーメッセージからの障害特定、サーバ停止・データ消失・OSリソース枯渇・プロセス状態分析、タイムアウト系パラメータのstatement_timeout・lock_timeout・idle_in_transaction_session_timeout、クラッシュ後の整合性を左右するsynchronous_commit・restart_after_crash、サーバ制御のpg_ctl、ロック管理の上限max_locks_per_transactionを押さえます。
- 4.2破損クラスタ復旧
破損したデータベースクラスタからの復旧手順を学びます。PITR(ポイントインタイムリカバリ)を軸に、WAL制御情報を再構築するpg_resetwal、起動時のトラブルシューティングフラグignore_system_indexes・ignore_checksum_failure、コミットログを保持するpg_xact、緊急時のシングルユーザモード、トランザクションID周回対策のVACUUM FREEZEを押さえます。
- 4.3レプリケーションの障害と復旧
レプリケーション運用中の障害対応を学びます。スタンバイをマスタへ昇格させるpg_ctl promote、旧マスタを新マスタの子として再構成するpg_rewind、WALを直接受信し続けるpg_receivewal、ロジカルレプリケーション特有の競合(conflict)、そしてストリーミングレプリケーションのエラーハンドリングを押さえます。

