制限事項
次の制限が適用されます。
AlloyDB Omni はポート
5432で実行されます。カスタムポートの構成はサポートされていません。クラスタを作成する前に、すべてのデータベース パラメータ構成が正しいことを確認してください。クラスタを作成した後は、データベース パラメータを変更できません。
始める前に
クラスタを作成する前に、次の操作を行います。
オーケストレータ内にプロビジョニングされたすべてのデータベース ノードの PG_DATA_DIR に外部ボリューム(
DataDisk)をマウントします。Ansible の代わりに
alloydbctlを使用する場合は、必要なpolicycoreutils-python-utilsパッケージがすべての VM にインストールされていることを確認してください。このパッケージをインストールするには、次のコマンドを実行します。sudo dnf install policycoreutils-python-utilsGoogle Cloud 環境を使用している場合は、
ENVIRONMENT_TYPEをgcpに設定します。次に、rootユーザーとしてgcloud auth loginを実行して、gcloud CLI アカウントを認証する必要があります。また、認証済みアカウントには次の権限が必要です。compute.instances.getcompute.instances.listcompute.instances.updateNetworkInterface
クラスタ仕様を準備する
クラスタを作成するには、AlloyDB Omni がクラスタの構成方法を認識している必要があります。必要な仕様を作成するには、DBCluster 形式で YAML ファイルを作成します。
Secret:
metadata:
name: db-pw-DBCLUSTER_NAME
spec:
type: Opaque
data:
DBCLUSTER_NAME: BASE64_PASSWORD
---
DBCluster:
metadata:
name: DBCLUSTER_NAME
spec:
databaseVersion: 18.1.0
mode: ""
availability:
numberOfStandbys: NUM_STANDBY_NODES
enableAutoFailover: true
enableAutoHeal: true
autoFailoverTriggerThreshold: AUTOFAILOVER_TRIGGER_THRESHOLD
autoHealTriggerThreshold: AUTOHEAL_TRIGGER_THRESHOLD
healthcheckPeriodSeconds: HEALTHCHECK_PERIOD
replayReplicationSlotsOnStandbys: false
primarySpec:
adminUser:
passwordRef:
name: db-pw-DBCLUSTER_NAME
resources:
cpu: CPU_LIMIT
memory: MEMORY_LIMIT
disks:
- name: DataDisk
path: PG_DATA_DIR
parameters:
max_connections: "MAX_CONNECTIONS"
max_wal_size: "MAX_WAL_SIZE"
max_worker_processes: "MAX_WORKER_PROCESSES"
log_connections: "LOG_CONNECTIONS"
log_disconnections: "LOG_DISCONNECTS"
log_hostname: "LOG_HOSTNAME"
log_statement: "LOG_STATEMENT"
huge_pages: "HUGE_PAGES"
tcp_keepalives_idle: "TCP_KEEPALIVES_IDLE"
tcp_keepalives_interval: "TCP_KEEPALIVES_INTERVAL"
tcp_keepalives_count: "TCP_KEEPALIVES_COUNT"
dbLoadBalancerOptions:
DB_LOAD_BALANCER_TYPE:
loadBalancerIP: "VIRTUAL_IP"
loadBalancerType: "internal"
loadBalancerInterface: "VIRTUAL_IP_INTERFACE"
次の変数を置き換えます。
DBCLUSTER_NAME: データベース クラスタの名前。例:my-dbclusterBASE64_PASSWORD:postgres管理者ユーザーに使用される base64 エンコードされたパスワード。NUM_STANDBY_NODES: クラスタ内のスタンバイ ノードの数。例:2(省略可)
AUTOFAILOVER_TRIGGER_THRESHOLD: フェイルオーバーが発生するまでにヘルスチェックが失敗する回数。デフォルト値は3です。最小値は0ですが、値が0に設定されている場合、AlloyDB Omni はデフォルト値を使用します。ヘルスチェックが
AUTOFAILOVER_TRIGGER_THRESHOLD回失敗した場合、またはヘルスチェックの累積時間がHEALTHCHECK_PERIOD * AUTOFAILOVER_TRIGGER_THRESHOLD秒に達した場合、自動フェイルオーバーが発生します。(省略可)
AUTOHEAL_TRIGGER_THRESHOLD: 自動修復が開始されるまでにヘルスチェックが失敗する回数。デフォルト値は3です。最小値は0ですが、値が0に設定されている場合、AlloyDB Omni はデフォルト値を使用します。ヘルスチェックが
AUTOHEAL_TRIGGER_THRESHOLD回失敗した場合、またはヘルスチェックの累積時間がHEALTHCHECK_PERIOD * AUTOHEAL_TRIGGER_THRESHOLD秒に達した場合、自動復旧が行われます。(省略可)
HEALTHCHECK_PERIOD: 各ヘルスチェック間の待機時間(秒数)。デフォルト値は30です。最小値は1です。最大値は86400(1 日)です。CPU_LIMIT: データベース コンテナに割り当てる CPU の数。例:4MEMORY_LIMIT: データベース コンテナに割り当てるメモリ量。例:32Gi、500Mi。PG_DATA_DIR: データベース データが保存されるディレクトリのホストパス。(省略可)
MAX_CONNECTIONS: PostgreSQL データベースへの同時接続の最大数。デフォルト値は50です。サポートされている最小値も50です。詳細については、PostgreSQLmax_connectionsリファレンスをご覧ください。(省略可)
MAX_WAL_SIZE: 自動チェックポイント間にログ先行書き込み(WAL)が拡張する最大サイズ。デフォルト値は1GBです。詳細については、PostgreSQLmax_wal_sizeリファレンスをご覧ください。(省略可)
MAX_WORKER_PROCESSES: 単一のGatherまたはGather Mergeで起動できるワーカーの最大数。デフォルト値は64です。詳細については、PostgreSQLmax_worker_processesリファレンスをご覧ください。(省略可)
LOG_CONNECTIONS: PostgreSQL サーバーへの接続をロギングするかどうかを決定します。デフォルト値はonです。詳細については、PostgreSQLlog_connectionsリファレンスをご覧ください。(省略可)
LOG_DISCONNECTS: PostgreSQL セッションの終了がログに記録されるかどうかを決定します。デフォルト値はonです。詳細については、PostgreSQLlog_disconnectionsリファレンスをご覧ください。(省略可)
LOG_HOSTNAME: 接続ホストの IP に加えてホスト名をログに記録するかどうかを決定します。デフォルト値はonです。詳細については、PostgreSQLlog_hostnameリファレンスをご覧ください。(省略可)
LOG_STATEMENT: どの SQL ステートメントをロギングするかを決定します。デフォルト値はnoneです。詳細については、PostgreSQLlog_statementリファレンスをご覧ください。(省略可)
HUGE_PAGES: メインの共有メモリ領域に大容量ページがリクエストされるかどうかを決定します。デフォルト値はoffです。詳細については、PostgreSQLhuge_pagesリファレンスをご覧ください。(省略可)
TCP_KEEPALIVES_IDLE: OS がクライアントに TCPkeepaliveメッセージを送信しようとするまでの、ネットワーク アクティビティがない時間(秒単位)。デフォルト値は10です。詳細については、PostgreSQLtcp_keepalives_idleリファレンスをご覧ください。(省略可)
TCP_KEEPALIVES_INTERVAL: クライアントによって確認応答されていない TCPkeepaliveメッセージを再送信するまでの時間(秒単位)。デフォルト値は10です。詳細については、PostgreSQLtcp_keepalives_intervalリファレンスをご覧ください。(省略可)
TCP_KEEPALIVES_COUNT: サーバーとクライアントの接続が非アクティブと見なされるまでに失われる可能性がある TCPkeepaliveメッセージの数。デフォルト値は10です。詳細については、PostgreSQLtcp_keepalives_countリファレンスをご覧ください。(省略可)
ENVIRONMENT_TYPE: クラスタが設定される環境(onpremまたはgcp)を決定します。(省略可)
VIRTUAL_IP: ロードバランサで使用される仮想 IP アドレス。dbLoadBalancerOptionsを定義する場合は必須です。詳細については、高可用性を管理するをご覧ください。(省略可)
VIRTUAL_IP_INTERFACE:VIRTUAL_IPが構成されているネットワーク インターフェース。デフォルト値はeth0です。
クラスタを作成する
クラスタを作成するには、環境に一致するタブを選択し、手順に沿って操作します。
Ansible
クラスタを作成するには、次の手順を完了します。
データベース クラスタの仕様のプレイブックを作成します。
- name: Create DBCluster hosts: localhost vars: ansible_become: true ansible_user: ANSIBLE_USER ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE roles: - role: google.alloydbomni_orchestrator.bootstrap次の変数を置き換えます。
ANSIBLE_USER: Ansible が AlloyDB Omni ノードへのログインに使用する OS ユーザー。ANSIBLE_SSH_PRIVATE_KEY_FILE: Ansible が SSH を使用して AlloyDB Omni ノードに接続するために使用する秘密鍵。
ハンドブックを実行します。
ansible-playbook DBCLUSTER_PLAYBOOK -i "DEPLOYMENT_SPEC" \ -e resource_spec="DBCLUSTER_SPECIFICATIONS"次の変数を置き換えます。
DBCLUSTER_PLAYBOOK: データベース クラスタ用に作成したプレイブックのパス。DEPLOYMENT_SPEC: AlloyDB Omni コンポーネントをインストールするで作成したデプロイ仕様のパス。DBCLUSTER_SPECIFICATIONS: クラスタ仕様のパス。
alloydbctl
クラスタを作成するには、次のコマンドを実行します。
alloydbctl apply -d "DEPLOYMENT_SPEC" -r "DBCLUSTER_SPECIFICATIONS"次の変数を置き換えます。
DEPLOYMENT_SPEC: AlloyDB Omni コンポーネントをインストールするで作成したデプロイ仕様のパス。DBCLUSTER_SPECIFICATIONS: クラスタ仕様のパス。
クラスタの削除
クラスタを削除するには、環境に一致するタブを選択し、手順に沿って操作します。
Ansible
Ansible を使用してクラスタを削除するには、次の操作を行います。
teardown.yamlという名前のプレイブックを作成します。- name: Tear down AlloyDB Omni cluster hosts: localhost vars: ansible_become: true ansible_user: ANSIBLE_USER ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE roles: - role: google.alloydbomni_orchestrator.deleteansible-playbookを使用してハンドブックを実行します。DBClusterをresource_typeとして指定し、削除するクラスタの名前をresource_nameとして指定する必要があります。ansible-playbook -i "DEPLOYMENT_SPEC" teardown.yaml \ -e `resource_type`=`DBCluster` -e `resource_name`="DBCLUSTER_NAME"
クラスタの状態の不整合(ノードにアクセスできないなど)が原因で削除プロセスが失敗した場合は、コマンドに -e force=true を追加して、クラスタの強制削除を試みることができます。これにより、オーケストレーターは、破棄プロセス中のエラーを無視し、できるだけ多くのリソースを削除しようとします。
ansible-playbook -i "DEPLOYMENT_SPEC" teardown.yaml \
-e resource_type=DBCluster -e resource_name="DBCLUSTER_NAME" -e force=true alloydbctl
alloydbctl を使用してクラスタを削除するには、次のコマンドを実行します。
alloydbctl delete -d "DEPLOYMENT_SPEC" \
--resource_type DBCluster --resource_name "DBCLUSTER_NAME"次の変数を置き換えます。
DEPLOYMENT_SPEC: AlloyDB Omni コンポーネントをインストールするで作成したデプロイ仕様のパス。DBCLUSTER_NAME: データベース クラスタの名前。例:my-dbcluster