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

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

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

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

コンソール

高可用性

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

データ保護

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

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

接続

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

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

インスタンス

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

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

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

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

gdcloud CLI

次のコマンドを使用して、データベース クラスタを更新します。 sh gdcloud database clusters update CLUSTER_NAME [options]

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

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

オプションの全リストについては、コマンド リファレンスをご覧になるか、sh 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. ナビゲーション メニューで [データベース サービス] を選択します。

  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 オン、オフ ブール値 TRUE
dbs.enable_pg_bigm オン、オフ ブール値 TRUE
dbs.enable_pg_cron オン、オフ ブール値 TRUE
dbs.enable_pg_hint_plan オン、オフ ブール値 TRUE
dbs.enable_pg_squeeze オン、オフ ブール値 TRUE
dbs.enable_pg_wait_sampling オン、オフ ブール値 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