データベース クラスタの属性を更新する

次のデータベース クラスタ属性は、GDC コンソールまたは gdcloud CLI で変更できます。

  • 管理者ユーザーのデータベース パスワード
  • 外部接続(有効 / 無効)
  • 可用性レベル
  • バックアップが有効で、バックアップの保持日数が設定されている
  • データベース フラグ
  • データベース クラスタに割り当てられた CPU、メモリ、ストレージ

属性を変更する方法については、更新する属性タイプに対応するワークフローをご覧ください。

コンソール

高可用性

同じゾーンの高可用性を有効または無効にします。詳細については、高可用性を構成するをご覧ください。

データ保護

すべてのデータベース クラスタタイプで、データ保護を有効または無効にできます。

  1. [データ保護] に移動し、編集アイコン [編集] をクリックして、データ保護設定フォームにアクセスします。自動バックアップが有効になっている場合は、バックアップの保持期間を構成することもできます。
  2. 変更を加えたら、[保存] をクリックして、データベース クラスタに更新を適用します。

接続

すべてのデータベース クラスタ タイプで、データベース クラスタに GDC プロジェクト内からのみアクセスできるようにするか、プロジェクト外からもアクセスできるようにするかを選択できます。

  1. [接続] に移動し、編集 [編集] をクリックします。
  2. 接続構成を更新します。
  3. [保存] をクリックして変更を適用します。

インスタンス

すべてのデータベース クラスタタイプで、プライマリ インスタンスのプロパティを編集できます。

  1. [プライマリ インスタンス] に移動し、[編集 編集] をクリックします。
  2. [高パフォーマンス]、[標準]、[最小]、[カスタム] のいずれかの構成を選択します。[カスタム] オプションを使用すると、プライマリ インスタンスの CPU、メモリ、ストレージの数を選択できます。

  3. プライマリ インスタンスの CPU、メモリ、ストレージを更新するには、再起動が必要です。[保存して再起動] を選択して変更を適用します。

すべてのデータベース クラスタ タイプで、このフォームを使用してデータベース フラグを追加、変更、削除することもできます。使用可能なフラグのセットは、GDC によって事前に決定されています。詳細については、データベース フラグを構成するをご覧ください。

gdcloud

データベース クラスタを更新するには、次のコマンドを使用します。

gdcloud database clusters update CLUSTER_NAME [options]

CLUSTER_NAME は、更新するデータベース クラスタの名前に置き換えます。

オプションの全リストについては、コマンド リファレンスをご覧になるか、次のコマンドを実行してください。

gdcloud database clusters update --help

API

データ保護

すべてのデータベース クラスタタイプで、そのデータベース クラスタの BackupPlan リソースを作成することで、データ保護機能を有効にできます。

apiVersion: postgresql.dbadmin.gdc.goog/v1
kind: BackupPlan
metadata:
  name: DBCLUSTER_NAME-backupplan
  namespace: USER_PROJECT
spec:
  dbclusterRef: DBCLUSTER_NAME
  backupRetainDays: RETENTION_DAYS

次の変数を置き換えます。

  • DBCLUSTER_NAME: データ保護を有効にするデータベース クラスタの名前。
  • USER_PROJECT: データベース クラスタが作成されるユーザー プロジェクトの名前。
  • RETENTION_DAYS: オペレーターがこのバックアップを保持する日数。1 ~ 90 の整数で指定してください。

対応する BackupPlan リソースを編集して、保持日数などのデータ保護設定を構成することもできます。

データベース クラスタのデータ保護を無効にするには、以前に作成した対応する BackupPlan リソースを削除します。

管理者ユーザーのパスワードを再設定する

すべてのデータベース クラスタタイプで、管理者ユーザーのデータベース パスワードをリセットできます。

  1. パスワード シークレットを作成します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: db-pw-DBCLUSTER_NAME
      namespace: USER_PROJECT
    type: Opaque
    data:
      DBCLUSTER_NAME: "BASE64_PASSWORD"
    
  2. DBCluster にパッチを適用します。

    kubectl patch dbcluster.postgresql.dbadmin.gdc.goog DBCLUSTER_NAME -p '{"spec":{"primarySpec": {"adminUser": {"passwordRef": {"name": "db-pw-DBCLUSTER_NAME"}}}}}' --type=merge -n USER_PROJECT
    

次の変数を置き換えます。

  • DBCLUSTER_NAME: データベース クラスタの名前。
  • USER_PROJECT: データベース クラスタが更新されるユーザー プロジェクトの名前。
  • BASE64_PASSWORD: データベースの管理者パスワード(base64 エンコード)。

新しいパスワードが有効になるまでに 1 分ほどかかります。

データベース フラグを構成する

GDC に付属するデータベース イメージには、デフォルト設定が付属しています。ただし、アプリケーションの要件を満たすようにデフォルトのデータベース エンジンをカスタマイズできます。データベース クラスタには、GDC コンソールまたは gdcloud CLI を使用して設定できる事前定義フラグが用意されています。

コンソール

  1. ナビゲーション メニューで [Database Service] を選択します。

  2. データベース クラスタのリストで、データベース フラグを構成するデータベース クラスタをクリックします。

  3. [データベース クラスタ内のインスタンス] セクションで、[プライマリを編集] をクリックします。

    プライマリ データベース クラスタを編集してフラグを構成します。

  4. [フラグ] セクションで、[データベース フラグを追加] をクリックします。

  5. フラグを選択して値を入力します。入力した値が無効な場合、GDC コンソールに、必要な範囲または値のタイプを満たす方法が表示されます。

  6. [完了] をクリックします。

  7. 構成を設定するには、[保存] をクリックします。一部のフラグを有効にするには、データベース クラスタを再起動する必要があります。この場合は、[保存して再起動] をクリックします。

  8. 新しいフラグが設定されていることを確認するには、データベース クラスタの [データベース クラスタ内のインスタンス] セクションに戻り、新しいフラグと値が表示されていることを確認します。

データベース フラグを編集するには、[フラグ] セクションに戻り、既存のフラグを変更します。フラグ コンポーネントにカーソルを合わせ、 削除アイコンをクリックしてデータベース フラグを削除します。

gdcloud

クラスタに新しいデータベース フラグを構成することも、既存のすべてのフラグをデフォルト値にリセットすることもできます。

  • データベース クラスタのデータベース フラグを構成するには、次のコマンドを実行します。

    gdcloud database clusters update CLUSTER_NAME \
        --database-flags DB_FLAGS
    

    次のように置き換えます。

    • CLUSTER_NAME: データベース クラスタの名前。
    • DB_FLAGS: データベース クラスタで実行されているデータベースに設定するデータベース フラグのカンマ区切りのリスト。各データベース フラグと値は Key-Value ペアとして設定されます。値のないフラグは、= 文字の後に文字列を付けずに定義できます。

    たとえば、次のコマンドは、test-db-cluster に複数のデータベース フラグを設定します。

    gdcloud database clusters update test-db-cluster \
        --database-flags max_allowed_packet=55555,skip_grant_tables=,log_output=1
    

    使用可能なデータベース フラグの一覧については、使用可能なデータベース フラグをご覧ください。

  • すべてのデータベース フラグをデフォルト設定にリセットするには、次のコマンドを実行します。

    gdcloud database clusters update CLUSTER_NAME --clear-database-flags
    

    CLUSTER_NAME は、データベース クラスタの名前に置き換えます。

API

  • データベース クラスタのデータベース フラグを構成するには、次のコマンドを実行します。

      kubectl patch dbcluster.postgresql.dbadmin.gdc.goog DBCLUSTER_NAME -p '{"spec":{"primarySpec": {"parameters": DB_FLAGS}}}' --type=merge -n USER_PROJECT
    

    次の変数を置き換えます。

    • DBCLUSTER_NAME: データベース クラスタの名前。
    • USER_PROJECT: データベース クラスタが作成されたユーザー プロジェクトの名前。
    • DB_FLAGS: 追加または更新するデータベース構成パラメータ。これは、Key-Value ペアの JSON 形式のオブジェクトにする必要があります。ここで、キーはデータベース パラメータ名、値はそれぞれの設定です。たとえば、次のコマンドは複数のデータベース フラグを設定します。
    "autovacuum": "on", "autovacuum_analyze_threshold": "2147483647", "dbs.enable_anon": "on"
    

    使用可能なデータベース フラグの一覧については、使用可能なデータベース フラグをご覧ください。

  • すべてのデータベース フラグをデフォルト設定にリセットするには、次のコマンドを実行します。

    kubectl patch dbcluster.postgresql.dbadmin.gdc.goog DBCLUSTER_NAME --type=json -p='[{"op": "remove", "path": "/spec/primarySpec/parameters"}]' -n USER_PROJECT
    

    次の変数を置き換えます。

    • DBCLUSTER_NAME: データベース クラスタの名前。
    • USER_PROJECT: データベース クラスタが作成されたユーザー プロジェクトの名前。

使用可能なデータベース フラグ

フラグ 範囲 種類 再起動が必要
google_columnar_engine.enabled オン、オフ ブール値 TRUE
google_columnar_engine.memory_size_in_mb [128, 2147483647] Integer TRUE
anon.algorithm 文字列 FALSE
anon.maskschema 文字列 FALSE
anon.restrict_to_trusted_schemas オン、オフ ブール値 FALSE
anon.salt 文字列 FALSE
anon.sourceschema 文字列 FALSE
dbs.enable_anon on、off ブール値 TRUE
dbs.enable_pg_bigm on、off ブール値 TRUE
dbs.enable_pg_cron on、off ブール値 TRUE
dbs.enable_pg_hint_plan on、off ブール値 TRUE
dbs.enable_pg_squeeze on、off ブール値 TRUE
dbs.enable_pg_wait_sampling on、off ブール値 TRUE
pg_bigm.enable_recheck オン、オフ ブール値 FALSE
pg_bigm.gin_key_limit [0, 2147483647] Integer FALSE
pg_bigm.similarity_limit [0, 1] 浮動小数点数 FALSE
pg_hint_plan.debug_print off、on、detailed、verbose、0、1、2、3、no、yes、false、true 列挙型 TRUE
pg_hint_plan.enable_hint オン、オフ ブール値 FALSE
pg_hint_plan.enable_hint_table オン、オフ ブール値 FALSE
pg_hint_plan.message_level debug5、debug4、debug3、debug2、debug1、debug、info、notice、warning、error、log 列挙型 FALSE
pg_hint_plan.parse_messages debug5、debug4、debug3、debug2、debug1、debug、info、notice、warning、error、log 列挙型 FALSE
pg_stat_statements.max [100, 2147483647] Integer TRUE
pg_stat_statements.save オン、オフ ブール値 FALSE
pg_stat_statements.track none、top、all 列挙型 FALSE
pg_stat_statements.track_utility オン、オフ ブール値 FALSE
pg_wait_sampling.history_period [1, 2147483647] Integer FALSE
pg_wait_sampling.history_size [1, 2147483647] Integer FALSE
pg_wait_sampling.profile_period [1, 2147483647] Integer FALSE
pg_wait_sampling.profile_pid オン、オフ ブール値 FALSE
pg_wait_sampling.profile_queries オン、オフ ブール値 FALSE
pgaudit.log read、write、function、role、ddl、misc、misc_set、
all、none、-read、-write、-function、-role、-ddl、
-misc、-misc_set、-all、-none
繰り返す文字列 FALSE
pgaudit.log_client オン、オフ ブール値 FALSE
pgaudit.log_parameter オン、オフ ブール値 FALSE
pgaudit.log_level debug5、debug4、debug3、debug2、debug1、info、
notice、warning、error、log
列挙型 FALSE
pgaudit.log_relation オン、オフ ブール値 FALSE
pgaudit.log_catalog オン、オフ ブール値 FALSE
pgaudit.role 文字列 FALSE
pgaudit.log_statement_once オン、オフ ブール値 FALSE
pglogical.batch_inserts オン、オフ ブール値 TRUE
pglogical.conflict_log_level debug5、debug4、debug3、debug2、debug1、info、notice、warning、error、log、fatal、panic 列挙型 FALSE
pglogical.conflict_resolution error、apply_remote、keep_local、last_update_wins、first_update_wins 列挙型 FALSE
pglogical.extra_connection_options 文字列 FALSE
pglogical.synchronous_commit オン、オフ ブール値 TRUE
pglogical.use_spi オン、オフ ブール値 TRUE
pgtt.enabled オン、オフ ブール値 FALSE
plv8.execution_timeout [1, 65536] Integer FALSE
plv8.memory_limit [256, 3096] Integer FALSE
plv8.start_proc 文字列 FALSE