NOBTAの気ままにITブログ

Azure全般 / SQL Serverに関する情報を発信していきます。

【第7回】基本から始める Azure Database for PostgreSQL 【フレキシブル サーバー : 既定のサーバー構成パラメータ、エンコーディング】


スポンサーリンク

第6回では、Azure Database for PostgreSQL シングル サーバーを日本語ロケール設定に変更する方法に関する内容をまとめてみました。

今回は、Azure Database for PostgreSQL フレキシブル サーバーの既定のサーバー構成パラメータ値、エンコーディング設定について、自分の整理も兼ねて、まとめてみようと思います。

※ Azure Database for PostgreSQL フレキシブル サーバー バージョン 13.3 を使用して検証

 

 

 

Azure Database for PostgreSQL フレキシブル サーバーについて

Azure Database for PostgreSQL フレキシブル サーバーは、Azure Database for PostgreSQL シングル サーバーと同様に、データベース管理機能、構成設定のきめ細かい制御、および 柔軟性を備えた フル マネージド データベース サービスとなりますが、以下のような違いがあります。

  • Azure Database for PostgreSQL フレキシブル サーバーの基盤は Linux 
    ( Azure Database for PostgreSQL シングル サーバーの基盤は Windows)
  • 可用性ゾーン毎に フレキシブル サーバー を配置し、ゾーン冗長(高可用性)構成を組むことが可能
    (Amazon RDS マルチ AZ 構成と類似の構成)
  • Azure Database for PostgreSQL フレキシブル サーバーをオンデマンドで停止/開始することが可能
    (Azure Database for PostgreSQL フレキシブル サーバーを停止することで、コンピューティング 課金が発生しなくなる (但し データ使用量に応じたストレージ課金は発生) ことで、コスト削減を図ることが可能となる。しかしながら、1回の停止処理における最大停止期間は 7日間 となり、その後、開始状態に状態が遷移する点に注意が必要。)
  • 組み込みの PgBouncer (接続プーリング機能) を使用して、データベースの接続が可能  (同一ホスト名 + ポート 6432)
  • ユーザー名のみで接続が可能
    (Azure Database for PostgreSQL シングルサーバーの場合は、「ユーザー名@Azure Database for PostgreSQL ホスト名」

 

f:id:nobtak:20210919171918p:plain

Azure Database for PostgreSQL プライマリ と セカンダリ間は、同期ストリーミング レプリケーションによる同期モードによるデータ同期が行われ、プライマリ 側では データバックアップ (日時) 、セカンダリ 側では ログ バックアップ (WAL) が行われ、ゾーン冗長ストレージ上に バックアップが実施される。

 

Azure Database for PostgreSQL シングル サーバーとフレキシブル サーバーとの相違点については、以下の公開情報を参照。

 

既定のサーバー構成パラメータ、エンコーディング (フレキシブル サーバー)

Azure Database for PostgreSQL フレキシブル サーバー デプロイ後、既定のロール (ユーザー)、接続可能なユーザー データベース「postgres」が作成されます。

既定のロール (ユーザー)で既定で作成されたユーザー データベースにログインし、既定のサーバー構成パラメータ、エンコーディングについて確認してみようと思います。

 

既定のサーバー エンコーディング

1) psql ツールから Azure Database for PostgreSQL フレキシブル サーバー上のデータベース「postgres」に接続

>psql "host=***01.postgres.database.azure.com port=5432 dbname=postgres user=**** sslmode=require"

※ 組み込み PgBouncer を有効化している場合は、ポート 6432 を指定して接続。

 

2) サーバーのエンコーディングを確認するためのクエリを実行

postgres=> select name, setting, context from pg_settings where name like 'server_%';
        name        | setting | context
--------------------+---------+----------
 server_encoding    | UTF8    | internal
 server_version     | 13.3   | internal
 server_version_num | 130003  | internal

 

既定のサーバー エンコーディングは「UTF8」であることが確認できました。 なお、Azure Database for PostgreSQL フレキシブル サーバー の サーバー エンコーディングは 「UTF8」以外に変更することはできないようです。

 

既定のサーバー構成パラメータ

1) psql ツールから Azure Database for PostgreSQL フレキシブル サーバー上のデータベース「postgres」に接続

2) 既定のロケール (照合順序、日付や時刻の書式、通貨書式、小数区切り文字) を確認するためのクエリを実行

postgres=> select name, setting, context from pg_settings where name like 'lc%';
    name     |          setting           |  context
-------------+----------------------------+-----------
 lc_collate  | en_US.utf8 | internal
 lc_ctype    | en_US.utf8 | internal
 lc_messages | en_US.utf-8 | superuser
 lc_monetary | en_US.utf-8  | user
 lc_numeric  | en_US.utf8  | user
 lc_time     | en_US.utf8 | user

 

既定のロケールでは、「en_US.utf8」が設定されていることが確認できました。

 

変更可能なサーバー構成パラメータ

Azure Database for PostgreSQL フレキシブル サーバー では、利用ユーザーに対して スーパーユーザー(superuser) 権限を解放していないため、オンプレミス版の PostgreSQL と比較し、変更可能なサーバー構成パラメータが制限されています。

 

変更可能なサーバー構成パラメータについては、以下の URL を確認。

 

変更可能なサーバー構成パラメータ (ロケール関連)

1) Azure ポータル から Azure Database for PostgreSQL サーバー (種類: フレキシブル サーバー) - 設定 - サーバー パラメータ を選択

f:id:nobtak:20210919194709p:plain

 

2) 検索欄に「lc」と入力し、ロケール関連のサーバー パラメータを確認

 

f:id:nobtak:20210919194823p:plain

ロケール関連で設定可能なサーバー パラメータは、「lc_monetary」、「lc_numeric」のみであることが確認できます。

 

まとめ

今回は、Azure Database for PostgreSQL フレキシブル サーバーの既定のサーバー構成パラメータ値、エンコーディング設定について確認してみました。

次回は、Azure Database for PostgreSQL フレキシブル サーバーで 日本語ロケール のデータベースを作成する方法についてまとめてみようと思います。

 

【第8回】基本から始める Azure Database for PostgreSQL 【フレキシブル サーバー 日本語ロケール設定方法】へ