TimesTenデータベースの管理

オペレータは、データベースのアクティブ・スタンバイ・ペアがデプロイされると、実行し続けようとします。Kubernetesでは、ポッドのライフサイクルが管理されます。ポッドに障害が発生した場合、ポッドは再作成されます。また、ポッドを実行しているノードで障害が発生した場合、使用可能なKubernetesクラスタ・ノード上にポッドが再作成されます。オペレータはポッドで実行されているTimesTenを監視し、データベースのペアを動作させておくための適切な操作を開始します。これらの操作はオペレータによって自動的に行われるため、管理者操作が最小限に抑えられます。

次の各項では、実行できる手動操作について説明します。

TimesTenユーティリティの手動による起動

kubectl exec -itコマンドを使用して、TimesTenインスタンスでTimesTenユーティリティを手動で起動できます。このコマンドを使用すると、ポッドのシェルを起動し、ポッドでのTimesTenの実行を制御できます。

TimesTenは、ttコンテナでtimestenユーザーとして実行されます。

ノート:

オペレータは引き続き、ポッドのステータスおよびポッド内のTimesTenのステータスを問い合せています。ポッドまたはTimesTenの機能を妨げるコマンドを起動すると、オペレータは実行された操作の修正を試みることがあります。

次の例は、kubectl exec -itコマンドを使用して、TimesTenデータベースを含むsample-0ポッド内のシェルを起動する方法を示しています。その後、ttIsqlユーティリティを実行できます。

% kubectl exec -it sample-0 -c tt -- /bin/bash
% ttIsql sample
 
Copyright (c) 1996, 2023, Oracle and/or its affiliates. All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
 
 
 
connect "DSN=sample";
Connection successful:
DSN=sample;UID=timesten;DataStore=/tt/home/timesten/datastore/sample;
DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;PermSize=200;
DDLReplicationLevel=3;
(Default setting AutoCommit=1)

TimesTen接続属性の変更

TimesTenでは、データベースの属性を定義するために接続属性を使用します。接続属性には次の3つのタイプがあります。

  • データ・ストア属性: データベースを破棄して再作成することでのみ変更できるデータベースの特性を定義します。

  • 初期接続属性: データベースをアンロードしてメモリーにリロードすることで変更できるデータベースの特性を定義します。

  • 一般接続属性: アプリケーションがデータベースにアクセスする方法を制御します。このような属性は、接続中は保持されます。

TimesTen接続属性の詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』接続属性のリストおよび『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』データ・マネージャDSNまたはサーバーDSNの接続属性を参照してください。

Kubernetes環境の場合:

  • データ・ストア属性を変更するには、TimesTenClassicオブジェクトとTimesTenClassicオブジェクトに関連付けられたPersistentVolumeClaimsを削除する必要があります。そうすることで、TimesTenデータベースを削除します。削除プロセスの詳細は、「TimesTenデータベースのアクティブ・スタンバイ・ペアの削除」および「クリーン・アップ」を参照してください。

  • 初期接続属性と一般接続属性の変更には、TimesTenClassicオブジェクトの削除(それによるデータベースの削除)とTimesTenClassicオブジェクトに関連付けられたPersistentVolumeClaimsの削除は不要です。一部の初期接続属性を変更する場合に、TimesTenの制限がある点に注意してください。

初期接続属性または一般接続属性を変更するには:

  • まず、db.iniファイルを編集する必要があります。「db.iniファイルの手動編集」の手順を完了します。このセクションは、最初に完了しておく必要があります。

その後で、次のステップを実行します。

db.iniファイルの手動編集

このセクションは、初期接続属性と一般接続属性のどちらか(または両方)を変更する場合に完了します。この項は、「初期接続属性の変更」または「一般接続属性の変更」の項に進む前に完了しておく必要があります。

初期接続属性または一般接続属性を変更するには、sys.odbc.iniファイルを変更する必要があります。

TimesTenClassicオブジェクトを作成してTimesTenデータベースのアクティブ・スタンバイ・ペアをすでに作成していたときに、sys.odbc.iniファイル内の初期接続属性または一般接続属性を変更する場合は、db.iniファイルを変更する必要があります。

db.iniファイルの変更方法の詳細は、db.iniファイルを収容するために最初に使用した機能によって異なります。(その可能性のある機能には、ConfigMap、Secretまたは初期化コンテナが含まれます。詳細は、「/ttconfigディレクトリの移入」を参照してください。)

この例では、最初にdb.iniファイルを収容してTimesTenコンテナの/ttconfigディレクトリを移入するためにConfigMap機能が使用されました。この例では、sample ConfigMapを変更します。

そのステップは次のとおりです。

  1. kubectl describeコマンドを使用して、元のsample ConfigMapにあるdb.iniファイル(boldで表示)の内容を確認します。
    % kubectl describe configmap sample
    Name:         sample
    Namespace:    mynamespace
    Labels:       <none>
    Annotations:  <none>
     
    Data
    ====
    adminUser:
    ----
    sampleuser/samplepw
     
    db.ini:
    ----
    PermSize=200
    DatabaseCharacterSet=AL32UTF8
    ConnectionCharacterSet=AL32UTF8
    
    schema.sql:
    ----
    create sequence sampleuser.s;
    create table sampleuser.emp (id number not null primary key, name char (32));
     
    Events:  <none>
    
  2. kubectl editコマンドを使用して、元のsample ConfigMapのdb.iniファイルを変更します。初期接続属性のPermSize600 (boldで表示)に変更します。初期接続属性のTempSizeを追加して、その値を300 (boldで表示)に設定します。ConnectionCharacterSet接続属性を追加します。
    % kubectl edit configmap sample
    # Please edit the object below. Lines beginning with a '#' will be ignored,
    # and an empty file will abort the edit. If an error occurs while saving this 
    # file will be reopened with the relevant failures.
    #
    apiVersion: v1
    data:
      adminUser: |
        sampleuser/samplepw
      db.ini: |
        PermSize=600
        TempSize=300
        DatabaseCharacterSet=AL32UTF8
        ConnectionCharacterSet=AL32UTF8
      schema.sql: |
        create sequence sampleuser.s;
        create table sampleuser.emp (id number not null primary key, name char (32));
    kind: ConfigMap
    metadata:
      creationTimestamp: "2023-04-30T19:23:59Z"
      name: sample
      namespace: mynamespace
      resourceVersion: "71907255"
      selfLink: /api/v1/namespaces/mynamespace/configmaps/sample 
     uid: 0171ff7f-f789-11ea-82ad-0a580aed0453
    ...
    configmap/sample edited
    
  3. kubectl describeコマンドを使用して、sample ConfigMapに対する変更内容を検証します。(変更箇所はboldで表示しています)。
    % kubectl describe configmap sample
    Name:         sample
    Namespace:    mynamespace
    Labels:       <none>
    Annotations:  <none>
     
    Data
    ====
    schema.sql:
    ----
    create sequence sampleuser.s;
    create table sampleuser.emp (id number not null primary key, name char (32));
     
    adminUser:
    ----
    sampleuser/samplepw
     
    db.ini:
    ----
    PermSize=600
    TempSize=300
    DatabaseCharacterSet=AL32UTF8
    ConnectionCharacterSet=AL32UTF8
     
    Events:  <none>
    

sample ConfigMapの変更が完了しました。初期接続属性を変更する場合は、「初期接続属性の変更」に進んでください。一般接続属性のみを変更する場合は、「一般接続属性の変更」に進んでください。

初期接続属性の変更

db.iniファイルを変更していない場合は、「db.iniファイルの手動編集」に進みます。ここでは、スタンバイ・ポッドを削除してから、アクティブ・ポッドを削除する必要があります。TimesTenを実行しているコンテナを収容するポッドを削除すると、オペレータは削除したポッドを置き換えるために新しいポッドを作成します。この新しいポッドには、/ttconfigディレクトリにあるdb.iniファイルの内容から作成された新しいsys.odbc.iniファイルが収容されます。

次のステップを実行して、スタンバイ・データベースを削除します。

  1. kubectl getコマンドを使用して、どのポッドがsample TimesTenClassicオブジェクトのスタンバイ・ポッドであるかを確認します。アクティブ・ポッドは、ACTIVE列に示されるポッドです。スタンバイ・ポッドは、それ以外のポッド(ACTIVE列に示されないもの)です。そのため、sample TimesTenClassicオブジェクトの場合、アクティブ・ポッドはsample-0 (boldで表示)で、スタンバイ・ポッドはsample-1です。
    % kubectl get ttc sample
    NAME     STATE    ACTIVE     AGE
    sample   Normal   sample-0   47h
    
  2. スタンバイ・ポッド(この例ではsample-1)を削除します。この結果として、オペレータは削除されたポッドを置き換えるための新しいスタンバイ・ポッドを作成します。新しいスタンバイ・ポッドが作成されるときに、そのポッドは新しく変更されたsample ConfigMapを使用するようになります。(このConfigMapは、「db.iniファイルの手動編集」で変更したものです。)
    % kubectl delete pod sample-1
    pod "sample-1" deleted
    
  3. kubectl getコマンドを使用して、スタンバイ・ポッドが稼働中であり、状態がNormalになっていることを確認します。

    状態はStandbyDown (boldで表示)になっている点に注目してください。

    % kubectl get ttc sample
    NAME     STATE         ACTIVE     AGE
    sample   StandbyDown   sample-0   47h
    

    数分間待機してから、コマンドを再実行します。状態がNormal (boldで表示)に変化した点に注目してください。

    % kubectl get ttc sample
    NAME     STATE    ACTIVE     AGE
    sample   Normal   sample-0   47h
    
  4. kubectl exec -itコマンドを使用して、スタンバイ・ポッド(この例ではsample-1)のシェルを呼び出します。その次に、ttIsqlユーティリティを実行してsampleデータベースに接続します。この接続の出力では、新しいPermSize値の600と、新しいTempSize値の300に注目してください(boldで表示)。
    % kubectl exec -it sample-1 -c tt -- /bin/bash
    % ttIsql sample 
    Copyright (c) 1996, 2023, Oracle and/or its affiliates. All rights reserved. 
    Type ? or "help" for help, type "exit" to quit ttIsql. 
    connect "DSN=sample"; 
    Connection successful:  
    DSN=sample;UID=timesten;DataStore=/tt/home/timesten/datastore/sample;
    DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;
    AutoCreate=0;PermSize=600;TempSize=300;DDLReplicationLevel=3;
    ForceDisconnectEnabled=1; 
    (Default setting AutoCommit=1)
    
  5. アクティブ・ポッドからスタンバイ・ポッドにフェイルオーバーします。フェイルオーバー・プロセスの詳細は、「フェイルオーバー」を参照してください。このステップを開始する前に、アクティブ・データベースで実行されていたすべてのトランザクションがスタンバイ・データベースにレプリケートされるように、アプリケーションを静止し、ttRepAdmin -waitコマンドを使用してレプリケーションの遅れが回復されるまで待機します。スタンバイの遅れが回復されたら、アクティブ・ポッドを削除して、アクティブ・データベースからスタンバイにフェイルオーバーします。アクティブ・ポッドを削除すると、オペレータは自動的に障害を検出して、スタンバイ・データベースをアクティブに昇格させます。

    アクティブ・ポッド(この例ではsample-0)を削除します。

    % kubectl delete pod sample-0
    pod "sample-0" deleted
    
  6. 数分間待機してから、kubectl getコマンドを使用して、sample TimesTenClassicオブジェクトのアクティブ・ポッドがsample-1で、状態がNormalになっていることを確認します(boldで表示)。
    % kubectl get ttc sample
    NAME     STATE    ACTIVE     AGE
    sample   Normal   sample-1   47h
    
  7. kubectl exec -itコマンドを使用して、アクティブ・ポッド(この例ではsample-1)のシェルを呼び出します。その次に、ttIsqlユーティリティを実行してsampleデータベースに接続します。この接続の出力では、新しいPermSize値の600と、新しいTempSize値の300に注目してください(boldで表示)。
    % kubectl exec -it sample-1 -c tt -- /bin/bash
    Last login: Fri Apr 08 15:50:29 UTC 2023 on pts/0
    [timesten@sample-1 ~]$ ttIsql sample
     
    Copyright (c) 1996, 2023, Oracle and/or its affiliates. All rights reserved.
    Type ? or "help" for help, type "exit" to quit ttIsql.
     
     
     
    connect "DSN=sample";
    Connection successful: 
    DSN=sample;UID=timesten;DataStore=/tt/home/timesten/datastore/sample;
    DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;
    AutoCreate=0;PermSize=600;TempSize=300;DDLReplicationLevel=3;
    ForceDisconnectEnabled=1;
    (Default setting AutoCommit=1)
    
  8. kubectl exec -itコマンドを使用して、スタンバイ・ポッド(この例ではsample-0)のシェルを呼び出します。その次に、ttIsqlユーティリティを実行してsampleデータベースに接続します。この接続の出力では、新しいPermSize値の600と、新しいTempSize値の300に注目してください(boldで表示)。
    % kubectl exec -it sample-0 -c tt -- /bin/bash
    % ttIsql sample
     
    Copyright (c) 1996, 2023, Oracle and/or its affiliates. All rights reserved.
    Type ? or "help" for help, type "exit" to quit ttIsql.
     
     
     
    connect "DSN=sample";
    Connection successful: 
    DSN=sample;UID=timesten;DataStore=/tt/home/timesten/datastore/sample;
    DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;
    AutoCreate=0;PermSize=600;TempSize=300;DDLReplicationLevel=3;
    ForceDisconnectEnabled=1;
    (Default setting AutoCommit=1)

初期接続属性のPermSizeTempSizeの変更が正常に完了しました。

一般接続属性の変更

db.iniファイルを変更していない場合は、「db.iniファイルの手動編集」に進みます。アクティブTimesTenデータベースのsys.odbc.iniファイルとスタンバイTimesTenデータベースのsys.odbc.iniファイルは、直接変更することも、「初期接続属性の変更」の項のステップに従って変更することもできます。最初の方法(sys.odbc.iniファイルの直接的な変更)のほうが、問題の発生が少なくなります。

この項では、sys.odbc.iniファイルを直接変更する手順について説明します。

sys.odbc.iniファイルは、アクティブTimesTenデータベースを収容するポッドのTimesTenコンテナと、スタンバイTimesTenデータベースを収容するポッドのTimesTenコンテナにあります。sys.odbc.iniファイルの変更を完了していると、それ以降のアプリケーションは該当する一般接続属性を使用してデータベースに接続できるようになります。

この例では、sys.odbc.iniファイルの編集方法について説明します。

  1. kubectl exec -itコマンドを使用して、アクティブ・ポッドのシェルを呼び出します。(この例では、sample-0がアクティブ・ポッドです)。

    % kubectl exec -it sample-0 -c tt -- /bin/bash
    Last login: Fri Apr 08 22:43:26 UTC 2023 on pts/8
  2. 現在のディレクトリ(/tt/home/timesten)を確認します。

    % pwd
    /tt/home/timesten
  3. sys.odbc.iniファイルが格納されているディレクトリに移動します。sys.odbc.iniファイルは、/tt/home/timesten/instances/instance1/confディレクトリにあります。したがって、instances/instance1/confディレクトリに移動します。

    % cd instances/instance1/conf
    
  4. DSN (この例ではsample)の一般接続属性を追加、変更または削除することで、sys.odbc.iniファイルを編集します。

    ノート:

    TimesTenの一般接続属性にのみ変更を加えるようにしてください。データ・ストア属性と初期接続属性は、sys.odbc.iniファイルを直接編集して変更することはできません。

    この例では、sample DSNを変更し、一般接続属性のConnectionCharacterSetを追加して、その値をAL32UTF8に設定します(boldで表示)。

    vi sys.odbc.ini
    
    [ODBC Data Sources]
    sample=TimesTen 22.1 Driver
    tt=TimesTen 22.1 Driver
     
    [sample]
    Datastore=/tt/home/timesten/datastore/sample
    PermSize=200
    DatabaseCharacterSet=AL32UTF8
    ConnectionCharacterSet=AL32UTF8
    DDLReplicationLevel=3
    AutoCreate=0
    ForceDisconnectEnabled=1
    ...
    
  5. ttIsqlユーティリティを使用して、sampleデータベースに接続し、ConnectionCharacterSet属性の値がAL32UTF8になっていることを確認します(boldで表示)。

    % ttIsql sample
     
    Copyright (c) 1996, 2023, Oracle and/or its affiliates. All rights reserved.
    Type ? or "help" for help, type "exit" to quit ttIsql.
     
     
     
    connect "DSN=sample";
    Connection successful: 
    DSN=sample;UID=timesten;DataStore=/tt/home/timesten/datastore/sample;
    DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;
    AutoCreate=0;PermSize=200;DDLReplicationLevel=3;ForceDisconnectEnabled=1;
    (Default setting AutoCommit=1)
    

アクティブ・ポッド(この例ではsample-0)のTimesTenコンテナにある sys.odbc.iniファイルの変更が完了しました。同じ手順を使用して、スタンバイ・ポッド(この例ではsample-1)のTimesTenコンテナにあるsys.odbc.iniファイルを変更します。

次に例を示します。

  1. kubectl exec -itコマンドを使用して、スタンバイ・ポッド(この例ではsample-1)のシェルを呼び出します。
    % kubectl exec -it sample-1 -c tt -- /bin/bash
    Last login: Fri Apr 08 23:08:08 UTC 2023 on pts/0
  2. 現在のディレクトリ(/tt/home/timesten)を確認します。
    % pwd
    /tt/home/timesten
  3. sys.odbc.iniファイルが格納されているディレクトリに移動します。sys.odbc.iniファイルは、/tt/home/timesten/instances/instance1/confディレクトリにあります。したがって、instances/instance1/confディレクトリに移動します。
    % cd instances/instance1/conf
    
  4. sys.odbc.iniファイルを編集して、アクティブ・データベースで変更したものと同じ一般接続属性を追加、変更または削除します。したがって、この例では、sample DSNを変更し、一般接続属性のConnectionCharacterSetを追加して、その値をAL32UTF8に設定します(boldで表示)。
    vi sys.odbc.ini
    
    [ODBC Data Sources]
    sample=TimesTen 22.1 Driver
    tt=TimesTen 22.1 Driver
     
    [sample]
    Datastore=/tt/home/timesten/datastore/sample
    PermSize=200
    DatabaseCharacterSet=AL32UTF8
    ConnectionCharacterSet=AL32UTF8
    DDLReplicationLevel=3
    AutoCreate=0
    ForceDisconnectEnabled=1
    ...
    
  5. ttIsqlユーティリティを使用して、sampleデータベースに接続し、ConnectionCharacterSet属性の値がAL32UTF8になっていることを確認します(boldで表示)。
    % ttIsql sample
     
    Copyright (c) 1996, 2023, Oracle and/or its affiliates. All rights reserved.
    Type ? or "help" for help, type "exit" to quit ttIsql.
     
     
     
    connect "DSN=sample";
    Connection successful:
    DSN=sample;UID=timesten;DataStore=/tt/home/timesten/datastore/sample;
    DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;
    AutoCreate=0;PermSize=200;DDLReplicationLevel=3;ForceDisconnectEnabled=1;
    (Default setting AutoCommit=1)
    

アクティブ・ポッド(sample-0)のTimesTenコンテナにあるsys.odbc.iniファイルと、スタンバイ・ポッド(sample-1)のTimesTenコンテナにあるsys.odbc.iniファイルの変更が完了しました。また、一般接続属性ConnectionCharacterSetも変更されました。

手動制御に戻す

アクティブ・スタンバイ・ペアを手動で操作する場合は、timesten-operatorデプロイメントを削除できます。オペレータは停止し、再起動しません。これは、Kubernetesクラスタで実行されているすべてのTimesTenClassicオブジェクトに影響します。オペレータですべてのTimesTenClassicオブジェクトの管理を停止しない場合は、個々のTimesTenClassicオブジェクトの管理を一時停止できます。詳細は、「TimesTenClassicオブジェクトの管理の一時停止」を参照してください。

TimesTenデータベースのアクティブ・スタンバイ・ペアを表すTimesTenClassicオブジェクトは、それらに関連付けられた他のKubernetesオブジェクトと同様にKubernetesに残ります。kubectl exec -itコマンドを使用してポッドのシェルを起動し、それらのポッドで実行されているTimestenを制御できます。

アクティブ・スタンバイ・ペアの1つまたは両方のポッドで障害が発生した場合、Kubernetesは新しいポッドを作成して置き換えます。これは、オペレータが以前にKubernetesで作成したStatefulSetオブジェクトによるものです。ただし、オペレータは新しいポッドを実行していないため、TimesTenを自動的に起動できません。この場合、アクティブ・スタンバイ・ペアを構成または起動することはできません。ユーザーがポッドでTimesTenの操作を行う必要があります。

再びオペレータで制御を行う場合は、オペレータを再デプロイする必要があります。オペレータを再デプロイすると、オペレータはKubernetesクラスタ内のTimesTenClassicオブジェクトを自動的に識別し、それらの管理を再試行します。

この例は、TimesTenを手動で制御する方法を示しています。

  1. オペレータおよびTimesTenデータベースが実行されていることを確認します。
    % kubectl get pods
    NAME                                        READY   STATUS    RESTARTS   AGE
    sample-0                                    2/2     Running   0          18h
    sample-1                                    2/2     Running   0          18h
    timesten-operator-5d7dcc7948-pzj58          1/1     Running   0          18h
    
  2. operator.yamlが存在する/deployディレクトリに移動します。(この例ではkube_files/deploy。)
    % cd kube_files/deploy
    
  3. kubectl deleteコマンドを使用してオペレータを削除します。オペレータは停止し、デプロイされなくなります。
    % kubectl delete -f operator.yaml
    deployment.apps "timesten-operator" deleted
    
  4. オペレータは実行されていないが、TimesTenデータベースが実行されていることを確認します。
    % kubectl get pods
    NAME       READY   STATUS    RESTARTS   AGE
    sample-0   2/2     Running   0          19h
    sample-1   2/2     Running   0          19h
    
  5. kubectl exec -itコマンドを使用して、TimesTenを実行するポッドのシェルを起動します。
    % kubectl exec -it sample-0 -c tt -- /bin/bash
    Last login: Fri Apr  8 14:30:45 UTC 2023 on pts/0
    
  6. ttStatusユーティリティを実行します。
    % ttStatus
    TimesTen status report as of Fri Apr  8 14:36:31 2023
     
    Daemon pid 183 port 6624 instance instance1
    TimesTen server pid 190 started on port 6625
    ------------------------------------------------------------------------
    ------------------------------------------------------------------------
    Data store /tt/home/timesten/datastore/sample
    Daemon pid 183 port 6624 instance instance1
    TimesTen server pid 190 started on port 6625
    There are 20 connections to the data store
    Shared Memory KEY 0x02200bbc ID 32769
    PL/SQL Memory Key 0x03200bbc ID 65538 Address 0x5000000000
    Type            PID     Context            Connection Name             ConnID
    Replication     263     0x00007f99fc0008c0 LOGFORCE:140299698493184      2029
    Replication     263     0x00007f9a040008c0 XLA_PARENT:140300350273280    2031
    Replication     263     0x00007f9a080008c0 REPLISTENER:140300347123456   2030
    Replication     263     0x00007f9a080acd60 RECEIVER:140299429472000      2028
    Replication     263     0x00007f9a0c0008c0 FAILOVER:140300353423104      2032
    Replication     263     0x00007f9a2c0009b0 TRANSMITTER(M):140299695343360 2034
    Replication     263     0x00007f9a300008c0 REPHOLD:140300356572928        2033
    Subdaemon       187     0x00000000023365b0 Manager                        2047
    Subdaemon       187     0x00000000023b57f0 Rollback                       2046
    Subdaemon       187     0x0000000002432cf0 Log Marker                     2041
    Subdaemon       187     0x000000000244fc00 Garbage Collector              2035
    Subdaemon       187     0x00007f90c80008c0 Aging                          2038
    Subdaemon       187     0x00007f90d00008c0 Deadlock Detector              2044
    Subdaemon       187     0x00007f90d001d7d0 HistGC                         2039
    Subdaemon       187     0x00007f90d40008c0 Checkpoint                     2042
    Subdaemon       187     0x00007f90d401d7d0 AsyncMV                        2036
    Subdaemon       187     0x00007f90d80008c0 Monitor                        2043
    Subdaemon       187     0x00007f90f808b360 IndexGC                        2037
    Subdaemon       187     0x00007f90fc0008c0 Flusher                        2045
    Subdaemon       187     0x00007f910004efd0 XactId Rollback                2040
    Open for user connections
    RAM residence policy: Always
    Replication policy  : Manual
    Replication agent is running.
    Cache Agent policy  : Manual
    PL/SQL enabled.
    ------------------------------------------------------------------------
    Accessible by group timesten
    End of report
    
  7. ttIsqlユーティリティを実行してsampleデータベースに接続し、様々な操作を実行します。
    % ttIsql sample
     
    Copyright (c) 1996, 2023, Oracle and/or its affiliates. All rights reserved.
    Type ? or "help" for help, type "exit" to quit ttIsql.
     
     
     
    connect "DSN=sample";
    Connection successful: 
    DSN=sample;UID=timesten;DataStore=/tt/home/timesten/datastore/sample;
    DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;PermSize=200;
    DDLReplicationLevel=3;
    (Default setting AutoCommit=1)
    Command> describe sampleuser.emp;
     
    Table SAMPLEUSER.EMP:
      Columns:
       *ID                              NUMBER NOT NULL
        NAME                            CHAR (32)
     
    1 table found.
    (primary key columns are indicated with *)
    
    Command> INSERT INTO sampleuser.emp VALUES (1,'This is a test.');
    1 row inserted.
    Command> SELECT * FROM sampleuser.emp;
    < 1, This is a test.                  >
    1 row found.

TimesTenデータベースのアクティブ・スタンバイ・ペアの削除

TimesTenデータベースのアクティブ・スタンバイ・ペアを表すTimesTenClassicオブジェクトを削除すると、Kubernetesは自動的にすべてのKubernetesオブジェクトとそのオブジェクトが使用しているリソースを削除します。ペアに関連付けられているStatefulSet、サービスおよびポッドは、すべてKubernetesから削除されます。ただし、(TimesTenデータベースが格納されている) PersistentVolumeClaimsは削除されません。TimesTenClassicオブジェクトを削除した後、PersistentVolumeClaims (PVC)を手動で削除する必要があります。PVCを手動で削除した後、データベースを保持しているPersistentVolumesはKubernetesで再利用されます。(これはKubernetesボリューム保存ポリシーを使用して制御できますが、オペレータでは制御されません)。

例として、kubectl deleteコマンドを使用して、sampleデータベースのPVCを削除します。

% kubectl delete pvc tt-persistent-sample-0
persistentvolumeclaim "tt-persistent-sample-0" deleted
% kubectl delete pvc tt-persistent-sample-1
persistentvolumeclaim "tt-persistent-sample-1" deleted