4.2.4 データ・ストアのプロパティ

MicroTxはデータ・ストアを使用して、トランザクション状態の永続性を確保し、トランザクション・ログを格納します。

トランザクション・ログを格納するには、etcdクラスタ、Oracle Databaseまたは内部メモリーを使用できます。トランザクション・コーディネータの複数のレプリカを使用する場合、etcdクラスタまたはOracleデータベースをトランザクション・ログ・データ・ストアとして設定する必要があります。内部メモリーを使用する場合、トランザクション・コーディネータのレプリカを複数作成することはできません。MicroTxを再起動するたびにすべてのトランザクション詳細が失われるため、開発環境にのみ内部メモリーを使用します。

トランザクション・ログのデータ・ストアのタイプ

tmmConfiguration.storageの下に、MicroTxがトランザクション状態の永続化に使用するデータ・ストアのタイプを指定します。データ・ストアのタイプを指定した後、外部データ・ストアに接続するための追加の詳細を指定できます。

プロパティ 説明
type

次の値のいずれかを入力して、MicroTxがトランザクション情報の追跡に使用する永続データを指定します。

  • etcdをデータ・ストアとして使用する場合は、etcd。etcdデータ・ストアに接続するための詳細をstorage.etcdフィールドに指定する必要があります。
  • Oracle Databaseをデータ・ストアとして使用する場合は、db。Oracleデータ・ストアに接続するための詳細をstorage.dbフィールドに指定する必要があります。
  • etcdまたはOracle Databaseに接続するための詳細の入力をスキップし、かわりに内部メモリーを使用する場合は、memory。内部メモリーを使用すると、MicroTxを再起動するたびに、すべてのトランザクションの詳細が失われます。
completedTransactionTTL 完了トランザクション・レコードのトランザクション・データ・ストアでの存続時間(TTL)(秒単位)。指定できる値の範囲は60から1200秒です。指定した時間が終了すると、完了トランザクション・エントリはデータ・ストアから削除されます。

トランザクション・ログのデータ・ストアとしてのOracle Database

tmmConfiguration.storage.db下に、Oracle Databaseに接続するための詳細を指定します。etcdデータベースに接続している場合、または内部メモリーを使用している場合は、この項をスキップして、これらの値を指定しないでください。

次の表に、MicroTxデータ・ストアであるOracle Databaseに接続するために必要なプロパティを示します。

プロパティ 説明
connectionString

Oracle Databaseのデータ・ストアの接続文字列を入力します。

  • Oracle Autonomous Transaction Processingなどの資格証明ウォレットを使用するデータベースを使用している場合は、次の形式を使用して接続文字列を入力します:
    tcps://<database-host>:<database-portNumber>/<service_name>

    必要な詳細(プロトコル、ホスト、ポート、サービス名など)は、資格証明ウォレットを抽出したフォルダにあるtnsnames.oraファイルで確認できます。共有ExadataインフラストラクチャでのOracle Autonomous Databaseの使用クライアント資格証明(ウォレット)のダウンロードに関する項を参照してください。

    たとえば:

    tcps://adb.us-phoenix-1.oraclecloud.com:1521/sales.adb.oraclecloud.com
    また、接続文字列に追加することで、retry_countretry_delayなどのデータベース・タイムアウト・パラメータを渡すことができます。たとえば、
    <connection-string>?retry_count=20&retry_delay=3
  • 非自律型Oracle Database (資格証明ウォレットを使用しないデータベース)を使用している場合は、次の形式を使用して接続文字列を入力します:
    <database-host-IPaddress>:<database-portNumber>/<databaseUniqueName>.<hostDomainName>
    たとえば:
    123.213.85.123:1521/CustDB_iad1vm.sub05031027070.customervcnwith.oraclevcn.com

    ここで、CustDB_iad1vm.sub05031027070.customervcnwithは、データベースまたはサービス名の一意の名前です。

  • Oracle RACデータベースを使用している場合は、SCANを使用したOracle RACデータベースへの接続についてを参照してください。
credentialSecretName Oracle Databaseに接続するための資格証明を含むKubernetesシークレットの名前を入力します。たとえば、db-secretです。「Oracle Database資格証明のKubernetesシークレットの作成」を参照してください。
connectionParams 接続パラメータのスペース区切りリストを入力します。指定できる接続パラメータの詳細は、https://pkg.go.dev/github.com/godror/godror#section-documentationを参照してください。たとえば、poolMinSessions=1 poolMaxSessions=300です。
walletConfigMap.configMapName このフィールドの値は、Autonomous Databaseなどの資格証明ウォレットを使用するデータベースに接続する場合にのみ指定します。他のデータベースの場合、このフィールドは空のままにできます。Autonomous Databaseインスタンスの資格証明ウォレット用に作成した構成マップの名前を入力します。「Autonomous Databaseクライアント資格証明の取得」を参照してください。たとえば、db-wallet-configmapです。

トランザクション・ログのデータ・ストアとしてのetcdデータベース

tmmConfiguration.storage.etcd下に、etcdデータベースに接続する詳細を指定します。Oracleデータベースに接続している場合、または内部メモリーを使用している場合は、この項をスキップして、これらの値を指定しないでください。

次の表に、MicroTxデータ・ストアであるetcdデータベースに接続するために必要なプロパティを示します。

この情報を入力する前に、次のタスクを完了し、必要な詳細を書き留めておいてください。

  1. etcdのRSA証明書の生成
  2. etcdのKubernetesシークレットの作成
プロパティ 説明
endpoints etcdデータベース・サーバーの外部IPアドレスを入力します。MicroTxをインストールするKubernetesクラスタにetcdクラスタをインストールした場合は、Kubernetesサービス名およびetcdクラスタ(ノード)のポートを値として指定します。それ以外の場合は、198.51.100.1:4002,198.51.100.2:4002,198.51.100.3:4002のように、etcdクラスタ・ノードのホスト名またはIPアドレスとポートのカンマ区切りリストを入力します。
skipHostNameVerification etcdデータベース・サーバーのIPアドレスを確認するには、これをfalseに設定します。これをtrueに設定すると、サーバーのホスト名またはIPアドレスは検証されません。このフィールドをtrueに設定できるのは、テスト環境または開発環境の場合のみです。

注意:

本番環境では、このフィールドをfalseに設定する必要があります。
credentialSecret.secretName コンテナ内のKubernetesシークレットへのパスを入力します。シークレットには、クライアント資格証明、クライアント・キーおよびクライアント証明書の保護に使用したパスワードが含まれます。たとえば、/etc/otmm/etcd-cert-secretです。「etcdのKubernetesシークレットの作成」を参照してください。
credentialSecret.secretFileName クライアント資格証明、クライアント・キーおよびクライアント証明書の保護に使用したパスワードを含むJSONファイルの場所を入力します。たとえば、/etc/otmm/etcdecred.jsonです。「etcdのRSA証明書の生成」を参照してください。
cacertConfigMap.configMapName 認証局の初期化中に作成した構成マップ・ファイルの名前を入力します。たとえば、etcd-ca-cert-mapです。「etcdのKubernetesシークレットの作成」を参照してください。
cacertConfigMap.configMapFileName 認証局の初期化中に作成したPEMファイルの名前を入力します。たとえば、ca.pemです。「etcdのRSA証明書の生成」を参照してください。
次のコード・スニペットは、「etcdのRSA証明書の生成」および「etcdのKubernetesシークレットの作成」のトピックに記載されているサンプル値に基づくサンプル値を示しています。
storage:
    type: etcd
    etcd:
      endpoints: "https://198.51.100.1:4002"
      skipHostNameVerification: "false"
      credentialSecret:
        secretName: "etcd-cert-secret"
        secretFileName: "etcdecred.json"
      cacertConfigMap:
        configMapName: "etcd-ca-cert-map"
        configMapFileName: "ca.pem"

endpointsフィールドに正しいIPアドレスを指定しない場合、MicroTxのインストール時にホスト検証が失敗します。