グリッドのデプロイ

この項では、KubernetesクラスタにTimesTen Scaleoutグリッドおよびデータベースを作成およびデプロイする方法を順を追って説明します。まず、メタデータ・ファイルの作成方法およびKubernetes ConfigMapの作成方法を示す例について説明します。次に、TimesTenScaleoutオブジェクトの定義を含むYAMLファイルを作成する方法を示す例について説明します。ここでは、そのYAMLファイルをKubernetesクラスタにデプロイする方法を示します。TimesTenグリッドおよびデータベースのプロビジョニングを監視し、基礎となるKubernetesオブジェクトがTimesTenオペレータによって作成されたことを確認する方法について学習します。この説明は、TimesTenデータベースに接続して操作を実行する方法を示す1つの例で完結します。最後の例では、管理インスタンスに接続してデータベースとその要素の状態を確認する方法を示します。

グリッドの構成メタデータおよびKubernetes ConfigMapの作成

次の例では、TimesTenグリッドおよびデータベースのdb.iniadminUserおよびschema.sqlメタデータ・ファイルを作成します。この例では、直接接続可能オブジェクトとクライアント/サーバー接続可能オブジェクトも作成します。この例では、Kubernetes ConfigMapを作成して、これらのメタデータ・ファイルをTimesTenコンテナの/ttConfigディレクトリに配置します。

ノート:

Kubernetesメカニズムを使用して、これらのメタデータ・ファイルをTimesTenコンテナの/ttConfigディレクトリに配置できます。「/ttconfigディレクトリの移入」を参照してください。

開発ホストで、次のステップを実行します。

  1. 選択したディレクトリから、メタデータ・ファイル用に空のサブディレクトリを作成します。この例では、cm_scaleoutサブディレクトリを作成します。(この例ではこれ以降、このディレクトリを示すためにcm_scaleoutディレクトリを使用します。)
    mkdir -p cm_scaleout
  2. このConfigMapディレクトリに移動します。
    cd cm_scaleout
  3. このConfigMapディレクトリにdb.iniファイルを作成します。この例では、PermSize接続属性とDatabaseCharacterSet接続属性を定義します。
    vi db.ini
    
    PermSize=200
    DatabaseCharacterSet=AL32UTF8
  4. adminUserファイルを作成します。
    vi adminUser
    
    adminuser/adminuserpwd
  5. schema.sqlファイルを作成します。このschema.sqlファイル内で、sampleuserユーザーを作成し、sampleuserユーザーのs順序、およびsampleuserユーザーのemp表を作成します。オペレータは、これらのオブジェクト定義を使用して、TimesTenデータベースの各要素を自動的に初期化します。
    vi schema.sql
    
    create user sampleuser identified by sampleuserpwd;
    grant admin to sampleuser;
    create sequence sampleuser.s;
    create table sampleuser.emp (id number not null primary key, name char (32));
  6. sampledirect直接接続可能オブジェクトを作成します。
    vi sampledirect.connect
    
    ConnectionCharacterSet=AL32UTF8
  7. sampleclientクライアント/サーバー接続可能オブジェクトを作成します。
    vi sampleclient.csconnect
    
    ConnectionCharacterSet=AL32UTF8
    TTC_Timeout=30
  8. オプション: メタデータ・ファイルがcm_scaleout ConfigMapディレクトリに存在することを確認します。
    ls
    出力は次のようになります。
    adminUser
    db.ini
    sampleclient.csconnect
    sampledirect.connect
    schema.sql
  9. cm_scaleoutディレクトリから、samplescaleout ConfigMapを作成します。cm_scaleoutディレクトリ内のファイルは、ConfigMapに含まれます。これらのファイルは、後でTimesTenコンテナで使用できます。samplescaleoutを任意の名前に置き換えます。
    kubectl create configmap samplescaleout --from-file .

    出力は次のようになります。

    configmap/samplescaleout created
  10. kubectl describeコマンドを使用して、samplescaleout ConfigMapの内容を確認します。
    kubectl describe configmap samplescaleout

    出力は次のようになります。

    Name:         samplescaleout
    Namespace:    mynamespace
    Labels:       <none>
    Annotations:  <none>
    
    Data
    ====
    adminUser:
    ----
    adminuser/adminuserpwd
    
    db.ini:
    ----
    PermSize=200
    DatabaseCharacterSet=AL32UTF8
    
    sampleclient.csconnect:
    ----
    ConnectionCharacterSet=AL32UTF8
    TTC_Timeout=30
    
    sampledirect.connect:
    ----
    ConnectionCharacterSet=AL32UTF8
    
    schema.sql:
    ----
    create user sampleuser identified by sampleuserpwd;
    grant admin to sampleuser;
    create sequence sampleuser.s;
    create table sampleuser.emp (id number not null primary key, name char (32));
    
    Events:  <none>
    
メタデータ・ファイルとConfigMapが正常に作成されました。

TimesTenScaleoutオブジェクトの定義およびデプロイ

環境を定義するには、環境用にカスタマイズされた属性を使用してTimesTenScaleoutオブジェクトを作成する必要があります。これらの属性については、次のステップで説明します。TimesTenScaleoutタイプのオブジェクトの定義の詳細は、TimesTen Scaleoutを参照してください。

TimesTenScaleoutオブジェクトを定義および作成するには、次のステップを実行します。

  1. YAMLファイルを作成します。このYAMLファイルに任意の名前を選択できますが、TimesTenScaleoutオブジェクトに使用した名前と同じ名前を使用することもできます。(この例ではsamplescaleoutを使用します。)YAMLファイルには、TimesTenScaleoutオブジェクトの定義が格納されています。この例では、TimesTenScaleoutオブジェクトに固有のフィールドは次のとおりです。
    • k: kの値をTimesTenデータベースのデータのコピー数に設定します。この値により、TimesTenオペレータによって作成されるStatefulSetの数が決まります。StatefulSetは、グリッドに単一のデータ領域を実装するために使用されるポッドを提供します。たとえば、k2に設定した場合、オペレータは2つのStatefulSetを作成します。1つのStatefulSetは、データ領域1のデータ・インスタンスのポッドを提供します。もう1つのStatefulSetは、データ領域2のデータ・インスタンスのポッドを提供します。

      この例では、k2に設定します。

      K-safetyおよびkの適切な値の決定の詳細は、『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』K-Safetyを参照してください。

    • nReplicaSets: 値をグリッド内のレプリカ・セットの数に設定します。レプリカ・セットにはk要素が含まれます(各要素は、レプリカ・セット内の他の要素の正確なコピーです)。nReplicaSetsの値により、各StatefulSetのレプリカの数が決まります。たとえば、k2に設定した場合、TimesTenオペレータはデータ・インスタンスに対して2つのStatefulSetを作成します。nReplicaSets3に設定した場合、各StatefulSetには3つのレプリカが含まれ、データベース内のレプリカ・セットの合計数は3になります。

      この例では、nReplicaSets3に設定します。

      レプリカ・セットの詳細は、『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』レプリカ・セットの理解を参照してください。

    • nZookeeper: 値を、StatefulSetでプロビジョニングするZooKeeperポッドの数に設定します。オプションは、13または5です。

      この例では、nZookeeper3に設定します。

    次のフィールドも指定する必要があります。

    • name: samplescaleoutを、TimesTenScaleoutオブジェクトの名前に置き換えます。

    • storageClassName: oci-bvを、TimesTenデータベースを保持する永続ボリュームの割当てに使用されるKubernetesクラスタ内の記憶域クラスの名前に置き換えます。

    • storageSize: 250Giを、各ポッドがTimesTenを保持するために要求する必要がある記憶域の量に置き換えます。(この例は、本番環境を想定しているため、250Giの記憶域を使用します。デモ用の場合は、50Giの記憶域を使用できます。)表19-7storageSizeエントリとlogStorageSizeエントリを参照してください。

    • image: container-registry.oracle.com/timesten/timesten:22.1.1.27.0を、イメージ・レジストリの場所、およびイメージの名前に置き換えます。Oracleのcontainer-registry.oracle.com/timestenレジストリをイメージ・レジストリとして使用し、timesten:22.1.1.27.0イメージをコンテナ・イメージとして使用している場合、置き換えは必要ありません。

    • imagePullSecret: sekretを、KubernetesがTimesTenイメージをフェッチするために使用するイメージ・プル・シークレットに置き換えます。

    • dbConfigMap: この例では、db.iniadminUserschema.sqlsampledirect.connectおよびsampleclient.csconnectメタデータ・ファイル用に1つのConfigMap (名前はsamplescaleout)を使用します。このConfigMapは、予測ボリュームに含まれています。このボリュームはTimesTenコンテナに/ttconfigとしてマウントされます。ConfigMapおよびシークレットの使用を参照してください。

    vi samplescaleout.yaml
    
    kind: TimesTenScaleout
    metadata:
      name: samplescaleout
    spec:
      ttspec:
        storageClassName: oci-bv
        storageSize: 250Gi
        image: container-registry.oracle.com/timesten/timesten:22.1.1.27.0
        imagePullSecret: sekret
        dbConfigMap:
        - samplescaleout
        k: 2
        nReplicaSets: 3
        nZookeeper: 3
    
  2. YAMLファイルの内容からTimesTenScaleoutオブジェクトを作成します。これにより、KubernetesクラスタにTimesTenグリッドおよびデータベースを作成およびプロビジョニングするプロセスが開始されます。
    kubectl create -f samplescaleout.yaml
    出力は次のようになります。
    timestenscaleout.timesten.oracle.com/samplescaleout created

KubernetesクラスタにTimesTenScaleoutオブジェクトが正常に作成されました。TimesTenグリッドおよびデータベースをプロビジョニングするプロセスが開始されますが、まだ完了していません。

TimesTenScaleoutオブジェクトの高レベル状態の監視

kubectl getコマンドおよびkubectl describeコマンドを使用して、グリッドおよびデータベースの作成の進捗状況を監視します。

ノート:

kubectl get timestenscaleoutコマンドの場合、kubectl get ttsを指定することもできます。kubectl getコマンドで使用する場合、timestenscaleoutttsは同義で、同じ結果を返します。この章の最初のkubectl getの例では、timestenscaleoutを使用しています。簡潔にするために、このマニュアルの残りの例ではttsを使用しています。

  1. TimesTenScaleoutオブジェクトの高レベル状態を確認します。kubectl getコマンドを使用して、STATEフィールドを確認します。値がInitializingであることに注意してください。オペレータによってKubernetesのStatefulSetおよびサービスが作成されました。グリッドおよびデータベースをデプロイおよびプロビジョニングするプロセスが開始されましたが、まだ完了していません。追加のkubectl getコマンドを発行したときに、TimesTenScaleoutオブジェクトが様々な状態にどのように遷移するかを確認します。これらの状態の詳細は、「グリッドの作成について」を参照してください。
    kubectl get tts samplescaleout

    出力は、次のようになります。

    NAME             OVERALL        MGMT   CREATE   LOAD   OPEN   AGE
    samplescaleout   Initializing                                 20s
    
    kubectl get tts samplescaleout

    出力は、次のようになります。

    NAME             OVERALL          MGMT   CREATE   LOAD   OPEN   AGE
    samplescaleout   ZookeeperReady                                 2m48s
    
    kubectl get tts samplescaleout

    出力は、次のようになります。

    NAME             OVERALL       MGMT   CREATE   LOAD   OPEN   AGE
    samplescaleout   GridCreated                                 3m58s
    
    kubectl get tts samplescaleout

    出力は、次のようになります。

    NAME             OVERALL            MGMT   CREATE   LOAD   OPEN   AGE
    samplescaleout   InstancesCreated                                 6m4s
    
    kubectl get tts samplescaleout

    出力は、次のようになります。

    NAME             OVERALL   MGMT     CREATE    LOAD              OPEN   AGE
    samplescaleout   DatabaseCreated                                       6m10s
    
  2. kubectl getコマンドを再度使用して、高レベル状態がDatabaseCreatedからNormalに遷移したかどうかを確認します。Normal状態は、グリッドおよびデータベースがプロビジョニングされ、プロセスが完了したことを示します。
    kubectl get tts samplescaleout

    出力は、次のようになります。

    NAME             OVERALL   MGMT     CREATE    LOAD              OPEN   AGE
    samplescaleout   Normal    Normal   created   loaded-complete   open   6m52s
    

TimesTen ScaleoutグリッドおよびデータベースがKubernetesクラスタに正常に作成およびプロビジョニングされました。データベースは接続のために開いています。

基礎となるオブジェクトの確認

TimesTenオペレータは、samplescaleout TimesTenScaleoutオブジェクトに対して次のオブジェクトを作成します。

  1. StatefulSets:
    kubectl get statefulsets

    出力は次のようになります。

    NAME                    READY   AGE
    samplescaleout-data-1   3/3     26m
    samplescaleout-data-2   3/3     26m
    samplescaleout-mgmt     1/1     26m
    samplescaleout-zk       3/3     26m

    オペレータは、samplescaleout-data-1およびsamplescaleout-data-2のStatefulSetを作成します。kの値が2に設定されているため、2つのStatefulSetが作成されます。各StatefulSetは、単一のデータ領域のポッドを提供します。グリッドには2つのデータ領域があります。各StatefulSetには3つのレプリカがあります(nReplicaSets3に設定されています)。したがって、グリッド内のレプリカ・セットの数は3です。データ領域1に3つのデータ・インスタンスがあり、データ領域2に3つのデータ・インスタンスがあります。

    samplescaleout-mgmt StatefulSetは、管理インスタンスのポッドを提供します。管理インスタンスが1つあります。

    samplscaleout-zk StatefulSetは、ZooKeeperインスタンスのポッドを提供します。3つのZooKeeperインスタンスがあります(nZookeeper3に設定されています)。

  2. Pods:
    kubectl get pods

    出力は次のようになります。

    NAME                                 READY   STATUS    RESTARTS   AGE
    samplescaleout-data-1-0              2/2     Running   0          27m
    samplescaleout-data-1-1              2/2     Running   0          27m
    samplescaleout-data-1-2              2/2     Running   0          27m
    samplescaleout-data-2-0              2/2     Running   0          27m
    samplescaleout-data-2-1              2/2     Running   0          27m
    samplescaleout-data-2-2              2/2     Running   0          27m
    samplescaleout-mgmt-0                2/2     Running   0          27m
    samplescaleout-zk-0                  1/1     Running   0          27m
    samplescaleout-zk-1                  1/1     Running   0          26m
    samplescaleout-zk-2                  1/1     Running   0          25m
    timesten-operator-7677964df9-sp2zp   1/1     Running   0          3d20h
    

    samplescaleout-data-1 StatefulSetには、データ領域1のデータ・インスタンスが含まれます。このStatefulSetは、samplescaleout-data-1-0samplescaleout-data-1-1およびsamplescaleout-data-1-2のポッドを作成します。samplescaleout-data-2には、データ領域2のデータ・インスタンスが含まれます。このStatefulSetは、samplescaleout-data-2-0samplescaleout-data-2-1およびsamplescaleout-data-2-2のポッドを作成します。

    samplescaleout-mgmt-0 StatefulSetには、グリッドの管理インスタンスが含まれます。このStatefulSetは、samplescaleout-mgmt-0ポッドを作成します。

    前述した各ポッドは、TimesTenを実行します。各ポッドには2つ以上のコンテナがあります。この例では、各ポッドに2つのコンテナがあります。ttコンテナは、TimesTenエージェントおよびTimesTenを実行します。daemonlogコンテナは、TimesTenデーモン・ログをstdoutに書き込みます。

    samplescaleout-zk StatefulSetには、3つのZooKeepersインスタンスが含まれます。このStatefulSetは、samplescaleout-zk-1samplescaleout-zk-2およびsamplescaleout-zk-3のポッドを作成します。これらの各ポッドには、zookeeperという単一のコンテナが含まれています。

    TimesTenオペレータは、timesten-operator-554887b4c-48zwkポッドで実行されています。

  3. headlessサービス:
    kubectl get services

    出力は次のようになります。

    NAME                TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                         AGE
    samplescaleout      ClusterIP   None            <none>        6625/TCP                        28m
    samplescaleout-zk   ClusterIP   None            <none>        2181/TCP,2888/TCP,3888/TCP      28m
    

    オペレータは、samplescaleout headlessサービスを作成します。このサービスは、TimesTen管理インスタンスおよびデータ・インスタンスを含むポッドのDNS名を提供します。このサービスにより、クライアント/サーバー・ポート(6625)を使用するポッドへのクライアント/サーバー・アクセスが可能になります。DNS名の形式はpodname.samplescaleout.namespace.svc.cluster.localです。

    次の例は、samplescaleout headlessサービスのDNS名を示しています。
    samplescaleout-mgmt-0.samplescaleout.mynamespace.svc.cluster.local
    samplescaleout-data-1-0.samplescaleout.mynamespace.svc.cluster.local
    samplescaleout-data-1-1.samplescaleout.mynamespace.svc.cluster.local
    samplescaleout-data-1-2.samplescaleout.mynamespace.svc.cluster.local
    samplescaleout-data-2-0.samplescaleout.mynamespace.svc.cluster.local
    samplescaleout-data-2-1.samplescaleout.mynamespace.svc.cluster.local
    samplescaleout-data-2-2.samplescaleout.mynamespace.svc.cluster.local

    オペレータは、samplescaleout-zkという2番目のheadlessサービスを作成します。このサービスにより、ZooKeeperの内部ポート(28883888)および外部ポート(2181)にアクセスできます。DNS名の形式はsamplescaleout-zk-n.samplescaleout-zk.namespace.svc.cluster.localです。

    次の例は、samplescaleout-zk headlessサービスのDNS名を示しています。
    samplescaleout-zk-0.samplescaleout-zk.mynamespace.svc.cluster.local
    samplescaleout-zk-1.samplescaleout-zk.mynamespace.svc.cluster.local
    samplescaleout-zk-2.samplescaleout-zk.mynamespace.svc.cluster.local
  4. 永続ボリューム要求(PVC):
    kubectl get pvc

    出力は次のようになります。

    
    NAME                                    STATUS   VOLUME                                                                              CAPACITY      ACCESS MODES   STORAGECLASS   AGE
    tt-persistent-samplescaleout-data-1-0   Bound    ocid1.volume.oc1.phx.abyhqljtl63wgaxd3nvengilkaxs5h2b23kmtinpzmmqt7bkzjdpnfu2c2fq   53687091200   RWO            oci-bv            14m
    tt-persistent-samplescaleout-data-1-1   Bound    ocid1.volume.oc1.phx.abyhqljthxuwtpqx7rjtwvwsxjjkbgr25amjk7wtk26untbqrealcqhe324q   53687091200   RWO            oci-bv            14m
    tt-persistent-samplescaleout-data-1-2   Bound    ocid1.volume.oc1.phx.abyhqljthtm6frcjtttp6ye7hq4w5vm3jxyay54f4xtcbolv2ercjeca5khq   53687091200   RWO            oci-bv            14m
    tt-persistent-samplescaleout-data-2-0   Bound    ocid1.volume.oc1.phx.abyhqljtxgzm3raxj5sfoe56aonlh2mqqjre4quva4k3q3zbbe7lftwqk3xa   53687091200   RWO            oci-bv            14m
    tt-persistent-samplescaleout-data-2-1   Bound    ocid1.volume.oc1.phx.abyhqljtk3htdair4akll5dfrwpkipv3acjtww5hx3x2fz46af7zdew7gsiq   53687091200   RWO            oci-bv            14m
    tt-persistent-samplescaleout-data-2-2   Bound    ocid1.volume.oc1.phx.abyhqljtiekgulpbadtwigehsuml75sngcuqjgqmx77lfpi3wdeecbecavfa   53687091200   RWO            oci-bv            14m
    tt-persistent-samplescaleout-mgmt-0     Bound    ocid1.volume.oc1.phx.abyhqljtacxwop7r2wqx6hsvun4haaydnco3y6g3rkgbwp5hq35alay7uwaq   53687091200   RWO            oci-bv            14m
    tt-persistent-samplescaleout-zk-0       Bound    ocid1.volume.oc1.phx.abyhqljtyoa5hdchax4sus652jtp665ckaef2cq3lakac2lq52vfbls6kkcq   53687091200   RWO            oci-bv            14m
    tt-persistent-samplescaleout-zk-1       Bound    ocid1.volume.oc1.phx.abyhqljtongpcoggzpg2is25vmumijmah5gustwc3avgnijrjigtqphtrana   53687091200   RWO            oci-bv            13m
    tt-persistent-samplescaleout-zk-2       Bound    ocid1.volume.oc1.phx.abyhqljttmgoljskb2ruawzv365uit7lsln2sbfno5e4vhh6plbgh4tiblfq   53687091200   RWO            oci-bv            10m
    

    オペレータは、ポッドごとに1つまたは2つの永続ボリューム要求(PVC)を自動的に作成します。これらのPVCにより、永続ボリューム(PV)がKubernetesによって割り当てられ、TimesTenポッドにアタッチされます。TimesTenは、これらのPVを使用してTimesTenインスタンスおよびデータベースを保持します。2つのPVCを指定した場合、1つのPVにTimesTenインスタンスおよびチェックポイント・ファイルが保持され、もう1つのPVにはTimesTenトランザクション・ログが保持されます。この例では、オペレータはポッドごとに1つのPVCを作成し、合計6つのPVCを作成します。6つのPVにはそれぞれ、TimesTenインスタンスおよびデータベースの要素が保持されます。

    オペレータは、管理インスタンスを含むポッド用に1つのPVCを作成します。

    オペレータは、ZooKeeperインスタンスを実行するポッドごとに1つのPVCを作成します。このPVCにより、PVがKubernetesによって割り当てられ、ZooKeeperポッドにアタッチされます。各PVにはZooKeeperの永続データが保持されます。この例では、ZooKeeperインスタンスが3つあるため、オペレータは3つのPVCを作成しました。

データベースへの接続

TimesTenポッドにシェルを設定し、グリッドのTimesTenデータベースに接続できます。その後、このTimesTenデータベースで操作を実行できます。

  1. TimesTen samplescaleout-data-1-0ポッドにシェルを設定します。
    kubectl exec -it samplescaleout-data-1-0 -c tt -- /bin/bash
  2. samplescaleoutデータベースに接続します。メタデータ・ファイルの情報がデータベースに存在することを確認します。この例では、sampleuserユーザーとしてデータベースに接続します。(このユーザーはschema.sqlファイルで作成されました)。この例では、ttConfiguration組込みプロシージャをコールして、データベースのこの要素のPermSize接続属性の値が200であることを確認します。この例では、次に、sampleuser.emp表が存在することを確認します。
    ttisql -connstr "DSN=samplescaleout;uid=sampleuser;pwd=sampleuserpwd";
    出力は、次のようになります。
    Copyright (c) 1996, 2024, Oracle and/or its affiliates. All rights reserved.
    Type ? or "help" for help, type "exit" to quit ttIsql.
    
    
    
    connect "DSN=samplescaleout;uid=sampleuser;pwd=********";
    Connection successful: DSN=samplescaleout;Durability=0;UID=sampleuser;DataStore=/tt/home/timesten/datastore/samplescaleout;
    DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;PermSize=200;
    Connections=100;
    (Default setting AutoCommit=1)
    Command> call ttConfiguration ('PermSize');
    < PermSize, 200 >
    1 row found.
    Command> tables;
      SAMPLEUSER.EMP
    1 table found.
    

グリッドとそのデータベースの管理

管理インスタンスのTimesTenポッドにシェルを設定できます。ttGridAdminユーティリティを使用して、グリッド(TimesTenデータベースとその要素の状態を含む)を管理および監視できます。

  1. TimesTen samplescaleout-management-0ポッドにシェルを設定します。
    kubectl exec -it samplescaleout-mgmt-0 -c tt -- /bin/bash
  2. ttGridAdmin dbStatus -allを実行して、TimesTenデータベースのステータスを確認します。
    ttGridAdmin dbStatus -all

    出力は次のようになります。

    Database samplescaleout summary status as of Sun Jan 15 17:00:11 UTC 2024
    
    created,loaded-complete,open
    Completely created elements: 6 (of 6)
    Completely loaded elements: 6 (of 6)
    Completely created replica sets: 3 (of 3)
    Completely loaded replica sets: 3 (of 3)
    
    Open elements: 6 (of 6)
    
    Database samplescaleout element level status as of Sun Jan 15 17:00:11 UTC 2024
    
    Host                    Instance  Elem Status Cache Agent Date/Time of Event  Message
    ----------------------- --------- ---- ------ ----------- ------------------- -------
    samplescaleout-data-1-0 instance1    1 opened stopped     2024-01-15 16:28:57
    samplescaleout-data-1-1 instance1    2 opened stopped     2024-01-15 16:28:57
    samplescaleout-data-1-2 instance1    3 opened stopped     2024-01-15 16:28:56
    samplescaleout-data-2-0 instance1    4 opened stopped     2024-01-15 16:28:57
    samplescaleout-data-2-1 instance1    5 opened stopped     2024-01-15 16:28:56
    samplescaleout-data-2-2 instance1    6 opened stopped     2024-01-15 16:28:56
    
    Database samplescaleout Replica Set status as of Sun Jan 15 17:00:11 UTC 2024
    
    RS DS Elem Host                    Instance  Status Cache Agent Date/Time of Event  Message
    -- -- ---- ----------------------- --------- ------ ----------- ------------------- -------
     1  1    1 samplescaleout-data-1-0 instance1 opened stopped     2024-01-15 16:28:57       
     1  2    4 samplescaleout-data-2-0 instance1 opened stopped     2024-01-15 16:28:57       
     2  1    2 samplescaleout-data-1-1 instance1 opened stopped     2024-01-15 16:28:57       
     2  2    5 samplescaleout-data-2-1 instance1 opened stopped     2024-01-15 16:28:56       
     3  1    3 samplescaleout-data-1-2 instance1 opened stopped     2024-01-15 16:28:56       
     3  2    6 samplescaleout-data-2-2 instance1 opened stopped     2024-01-15 16:28:56       
    
    Database samplescaleout Data Space Group status as of Sun Jan 15 17:00:11 UTC 2024
    
    DS RS Elem Host                    Instance  Status Cache Agent Date/Time of Event  Message
    -- -- ---- ----------------------- --------- ------ ----------- ------------------- -------
     1  1    1 samplescaleout-data-1-0 instance1 opened stopped     2024-01-15 16:28:57       
     1  2    2 samplescaleout-data-1-1 instance1 opened stopped     2024-01-15 16:28:57       
     1  3    3 samplescaleout-data-1-2 instance1 opened stopped     2024-01-15 16:28:56       
     2  1    4 samplescaleout-data-2-0 instance1 opened stopped     2024-01-15 16:28:57       
     2  2    5 samplescaleout-data-2-1 instance1 opened stopped     2024-01-15 16:28:56       
     2  3    6 samplescaleout-data-2-2 instance1 opened stopped     2024-01-15 16:28:56