PostgreSQL 運用管理(情報スキーマ、システムカタログ)

情報スキーマ

https://www.postgresql.jp/document/11/html/information-schema.html

  • SELECT * FROM information_schema.tables;
  • データベース内のオブジェクトに関する様々な情報を提供する、information_schemaというスキーマ内のビューの集合として構成されます。
  • 標準SQLで仕様が定められている。
  • すべてのRDBMSは情報スキーマをサポートしているわけではない。
  • 拡張機能についてはシステムカタログなどを利用することで問い合わせることができる。
  • テーブルや列に関する情報は、情報スキーマでは tables と columns に格納されている。
  • ビューとテーブルのグループであり、スーパーユーザに所有される 。

システムカタログ

https://www.postgresql.jp/document/11/html/catalogs.html
https://www.postgresql.jp/document/11/html/view-pg-settings.html

  • システムカタログは「pg_catalog」スキーマに属する。
  • pg_class にはテーブルおよびテーブルに類する(列を持つ)オブジェクト(ビュー、シーケンス、マテリアライズド・ビューなど)に関する情報が格納されている。
  • テーブルや列に関する情報は、システムカタログでは pg_tables と pg_attribute に格納されている。
  • データベース管理に関する情報が格納されている 。
  • pg_tablesはテーブルに関する情報としてインデックスの有無を保持している
  • pg_databaseはデータベースクラスタごとに存在する
  • pg_indexesはインデックスに関する情報を保持している
  • pg_authidは暗号化されたパスワードを保持している
pg_settings
  • サーバのパラメータ値を取得するビュー。
  • サーバのパラメータ値を参照・変更できる。
  • nameカラムにパラメータ名、settingカラムにパラメータ値が表示される。
  • contextカラムからはパラメータ値の反映に必要な操作が読み取れる。
    • internal … データベースクラスタの構築後は変更できない
    • postmaster … PostgreSQLサーバの起動・再起動
    • sighup … 「postgresql.conf」の再読み込み
    • superuser-backend … スーパーユーザで新しいセッションを開始
    • backend … 一般ユーザで新しいセッションを開始
    • superuser … スーパーユーザでSETコマンド実行
    • user … 一般ユーザでSETコマンド実行