手動アップグレードの実行

この項では、TimesTenClassicオブジェクトの手動アップグレードの実行のプロセスについて説明します。この項にはさらに次の項が含まれています:

TimesTenClassicオブジェクトの変更: 手動アップグレード

manualアップグレード・プロセスを利用するには、新しいTimesTenコンテナ・イメージを参照するようにTimesTenClassicオブジェクトの.spec.ttspec.imageデータ項目を変更する必要があります。新しいTimesTenイメージを参照するようにTimesTenClassicオブジェクトを変更すると、オペレータは変更を認識して、オペレータが作成したStatefulSetを変更します。

新しいTimesTenイメージを参照するようにTimesTenClassicのsample2オブジェクトを変更しましょう。sample2オブジェクトの.spec.ttspec.imageUpgradeStrategyManualであるとします。

  1. 開発ホストで、sample TimesTenClassicオブジェクトを編集し、新しいTimesTenコンテナ・イメージを参照するように.spec.ttspec.imageデータ項目を変更します。この例では、新しいコンテナ・イメージの場所と名前はcontainer-registry.oracle.com/timesten/timesten:22.1.1.19.0です。

    ノート: 出力のすべては示していません。

    kubectl edit timestenclassic sample2
    
    # 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: timesten.oracle.com/v1
    kind: TimesTenClassic
    metadata:
      ...
      name: sample2
      namespace: mynamespace
      resourceVersion: "74928067"
      uid: e6d49f75-05ed-4b4b-9412-4a577ad19bbe
    spec:
    ...
      ttspec:
        additionalMemoryRequest: 1Gi
        automaticMemoryRequests: true
        daemonLogCPURequest: 200m
        daemonLogMemoryRequest: 20Mi
        dbConfigMap:
        - sample2
        exporterCPURequest: 200m
        exporterMemoryRequest: 200Mi
        image: container-registry.oracle.com/timesten/timesten:22.1.1.19.0
        imagePullPolicy: Always
        imagePullSecret: sekret
        imageUpgradeStrategy: Manual
        memoryWarningPercent: 90
        storageClassName: oci-bv
        storageSize: 250G
    ...
    出力は次のようになります。
    timestenclassic.timesten.oracle.com/sample2 edited
  2. オペレータによってsample2のStatefulSetが変更されイメージが新しいイメージに置き換えられたことを確認してください。
    kubectl describe statefulset sample2

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

    Name:               sample2
    Namespace:          mynamespace
    ...
    Replicas:           2 desired | 2 total
    Update Strategy:    OnDelete
    Pods Status:        2 Running / 0 Waiting / 0 Succeeded / 0 Failed
    Pod Template:
      Labels:       app=sample2
                    database.timesten.oracle.com=sample2
      Annotations:  TTC: e6d49f75-05ed-4b4b-9412-4a577ad19bbe
      Init Containers:
       ttinit:
        Image:       container-registry.oracle.com/timesten/timesten:22.1.1.19.0
        Ports:       8443/TCP, 6624/TCP, 6625/TCP, 4444/TCP
        Host Ports:  0/TCP, 0/TCP, 0/TCP, 0/TCP
        Environment:
          TT_OPERATOR_MANAGED:      1
          TIMESTEN_HOME:            /tt/home/timesten/instances/instance1
          LD_LIBRARY_PATH:          /tt/home/timesten/instances/instance1/ttclasses/lib:/tt/home/timesten/instances/instance1/install/lib:/tt/home/timesten/instances/instance1/install/ttoracle_home/instantclient_11_2:/tt/home/timesten/instances/instance1/install/ttoracle_home/instantclient
          TT_REPLICATION_TOPOLOGY:  activeStandbyPair
          TT_INIT_CONTAINER:        1
          TTC_UID:                  e6d49f75-05ed-4b4b-9412-4a577ad19bbe
        Mounts:
          /tt from tt-persistent (rw)
          /ttagent from tt-agent (rw)
          /ttconfig from tt-config (rw)
      Containers:
       tt:
        Image:       container-registry.oracle.com/timesten/timesten:22.1.1.19.0
        Ports:       8443/TCP, 6624/TCP, 6625/TCP, 4444/TCP
        Host Ports:  0/TCP, 0/TCP, 0/TCP, 0/TCP
        Environment:
          TT_OPERATOR_MANAGED:      1
          TIMESTEN_HOME:            /tt/home/timesten/instances/instance1
          LD_LIBRARY_PATH:          /tt/home/timesten/instances/instance1/ttclasses/lib:/tt/home/timesten/instances/instance1/install/lib:/tt/home/timesten/instances/instance1/install/ttoracle_home/instantclient_11_2:/tt/home/timesten/instances/instance1/install/ttoracle_home/instantclient
          TT_REPLICATION_TOPOLOGY:  activeStandbyPair
        Mounts:
          /tt from tt-persistent (rw)
          /ttagent from tt-agent (rw)
          /ttconfig from tt-config (rw)
       daemonlog:
        Image:      container-registry.oracle.com/timesten/timesten:22.1.1.9.0
        Port:       <none>
        Host Port:  <none>
        Command:
          sh
          -c
          /bin/bash <<'EOF'
          while [ 1 ] ; do tail --follow=name /tt/home/timesten/instances/instance1/diag/ttmesg.log --max-unchanged-stats=5; sleep 1; done
          exit 0
          EOF
        Requests:
          cpu:     100m
          memory:  20Mi
        Environment:
          TIMESTEN_HOME:        /tt/home/timesten/instances/instance1
          TT_OPERATOR_MANAGED:  1
          LD_LIBRARY_PATH:      /tt/home/timesten/instances/instance1/ttclasses/lib:/tt/home/timesten/instances/instance1/install/lib:/tt/home/timesten/instances/instance1/install/ttoracle_home/instantclient_11_2:/tt/home/timesten/instances/instance1/install/ttoracle_home/instantclient
        Mounts:
          /tt from tt-persistent (rw)
      Volumes:
       tt-agent:
        Type:        Secret (a volume populated by a Secret)
        SecretName:  tte6d49f75-05ed-4b4b-9412-4a577ad19bbe
        Optional:    false
       tt-config:
        Type:               Projected (a volume that contains injected data from multiple sources)
        ConfigMapName:      sample2
        ConfigMapOptional:  <nil>
    Volume Claims:
      Name:          tt-persistent
      StorageClass:  oci-bv
      Labels:        <none>
      Annotations:   <none>
      Capacity:      50G
      Access Modes:  [ReadWriteOnce]
    Events:          <none>
    

新しいTimesTenコンテナ・イメージを使用するようにsample2 TimesTenClassicオブジェクトを変更しました。スタンバイ・データベースをアップグレードすることで手動アップグレードを続行しましょう。

スタンバイ・データベースのアップグレード

次のステップを実行して、スタンバイ・データベースをアップグレードします。

ノート:

スタンバイ・データベースをアップグレードする場合でも、レプリケーション構成によっては、アクティブ・データベースが中断する可能性があります。これは、アプリケーションに影響を与える可能性があります。適切なタイミングでアップグレードを実行してください。

  1. kubectl get ttcコマンドを使用して、次の作業を実行します。
    • どのポッドがスタンバイかを判別します。アクティブ・ポッドは、ACTIVE列に示されるポッドです。スタンバイ・ポッドは、それ以外のポッド(ACTIVE列に示されないもの)です。そのため、sample2 TimesTenClassicオブジェクトの場合、アクティブ・ポッドはsample2-0であり、スタンバイ・ポッドはsample2-1です。

    • TimesTenClassicオブジェクト(この例ではsample2)の状態がNormalになっていることを確認してください。

    kubectl get ttc sample2

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

    NAME      STATE    ACTIVE      AGE
    sample2   Normal   sample2-0   19h
  2. スタンバイを新しいTimesTenイメージにアップグレードするには、スタンバイ・ポッド(この例ではsample2-1)を削除します。
    kubectl delete pod sample2-1

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

    pod "sample2-1" deleted

    削除されたポッドを置き換えるために、Kubernetesは新しいsample2-1ポッドを自動的に作成します。オペレータは、新しいsample2-1ポッドをスタンバイ・ポッドとして構成します。この時点で、この新しいポッドは新しく作成したTimesTenイメージを実行するようになります。

  3. スタンバイが稼働中でありその状態がNormalであることを確認してください。
    kubectl get ttc sample2

    その状態が最初はStandbyDownであることに注目してください。

    NAME      STATE         ACTIVE      AGE
    sample2   StandbyDown   sample2-0   19h

    数分間待機してから、コマンドを再実行します。

    kubectl get ttc sample2

    その状態がNormalに変わったことに注目してください。

    NAME      STATE    ACTIVE      AGE
    sample2   Normal   sample2-0   19h
  4. スタンバイが再び稼働しておりアクティブ・スタンバイ・ペアの状態がNormalになっていることを確認してください。スタンバイのアップグレード時に、アプリケーションが中断されることはありません。アプリケーションは、アクティブ・データベースの使用を継続できます。
    kubectl describe ttc sample2

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

    Name:         sample2
    Namespace:    mynamespace
    ...
    Kind:         TimesTenClassic
    ...
    Spec:
      ...
      Ttspec:
        Additional Memory Request:  1Gi
        Automatic Memory Requests:  true
        Daemon Log CPU Request:     200m
        Daemon Log Memory Request:  20Mi
        Db Config Map:
          sample2
        Exporter CPU Request:     200m
        Exporter Memory Request:  200Mi
        Image:                    container-registry.oracle.com/timesten/timesten:22.1.1.19.0
        Image Pull Policy:        Always
        Image Pull Secret:        sekret
        Image Upgrade Strategy:   Manual
        Memory Warning Percent:   90
        Storage Class Name:       oci-bv
        Storage Size:             250G
    Status:
      ...
      Classic Upgrade Status:
       ...
      High Level State:              Normal
      ...
      Pod Status:
        Active:           true
        Admin User File:  true
        Cache Status:
          Cache Agent:        Not Running
          Cache UID Pwd Set:  true
          N Cache Groups:     0
        Cache User File:      false
        Cg File:              false
        Db Status:
          ...
        Name:                                           sample2-0
        Pod Status:
          Agent:                Up
          Last Time Reachable:  1673213068
          Pod IP:               192.0.2.3
          Pod Phase:            Running
        Prev Active:            true
        Prev High Level State:  Healthy
        Prev Image:             container-registry.oracle.com/timesten/timesten:22.1.1.9.0
        Prev Intended State:
        Prev Ready:             true
        Ready:                  true
        Replication Status:
          Last Time Rep State Changed:  0
          Rep Agent:                    Running
          Rep Peer P State:             start
          Rep Scheme:                   Exists
          Rep State:                    ACTIVE
        Scaleout Status:
          Instance Type:  classic
        Schema File:      true
        Timesten Status:
          Daemon:         Up
          Instance:       Exists
          Release:        22.1.1.9.0
        Tt Pod Type:      Database
        Using Twosafe:    false
        Active:           false
        Admin User File:  true
        Cache Status:
          Cache Agent:        Not Running
          Cache UID Pwd Set:  true
          N Cache Groups:     0
        Cache User File:      false
        Cg File:              false
        Db Status:
          ...
        Name:                                                 sample2-1
        Pod Status:
          Agent:                Up
          Last Time Reachable:  1673213068
          Pod IP:               192.0.2.4
          Pod Phase:            Running
        Prev Active:            false
        Prev High Level State:  Healthy
        Prev Image:             container-registry.oracle.com/timesten/timesten:22.1.1.9.0
        Prev Intended State:
        Prev Ready:             true
        Ready:                  true
        Replication Status:
          Last Time Rep State Changed:  1673212993
          Rep Agent:                    Running
          Rep Peer P State:             start
          Rep Scheme:                   Exists
          Rep State:                    STANDBY
        Scaleout Status:
          Instance Type:  classic
        Schema File:      true
        Timesten Status:
          Daemon:             Up
          Instance:           Exists
          Release:            22.1.1.19.0
        Tt Pod Type:          Database
        Using Twosafe:        false
      Prev High Level State:  StandbyCatchup
      Prev Reexamine:
      Prev Stop Managing:
      Rep Create Statement:   create active standby pair "sample2" on "sample2-0.sample2.mynamespace.svc.cluster.local", "sample2" on "sample2-1.sample2.mynamesoace.svc.cluster.local" NO RETURN store "sample2" on "sample2-0.sample2.mynamespace.svc.cluster.local" PORT 4444 FAILTHRESHOLD 0 store "sample2" on "sample2-1.sample2.mynamespace.svc.cluster.local" PORT 4444 FAILTHRESHOLD 0
      Rep Port:               4444
      Rep Start Fail Count:   0
      Standby Cache Agent:    Not Running
      Standby Down Standby AS:
        Async Id:           c3cf41af-61c2-438c-a4d0-f3dfbdb6043d
        Destroy Db:         true
        Id:                 8a9a22ee-deaa-4eb6-8e00-c0d8932af623
        Pod Name:           sample2-1
        Rep Duplicate:      true
        Start Rep Agent:    true
        Status:             complete
      Standby Perm In Use:  15291
      Standby Perm Size:    200
      Standby Rep Agent:    Running
      Status Version:       1.0
      Using Twosafe:        false
    Events:
      Type     Reason       Age    From      Message
      ----     ------       ----   ----      -------
      Normal   Upgrade      4m15s  timesten  Image updated, automatic upgrade disabled
      Normal   Info         3m24s  timesten  Pod sample2-1 Agent Down
      Normal   StateChange  3m24s  timesten  Pod sample2-1 is Not Ready
      Warning  StateChange  3m19s  timesten  TimesTenClassic was Normal, now ActiveTakeover
      Normal   StateChange  3m14s  timesten  TimesTenClassic was ActiveTakeover, now StandbyDown
      Normal   Info         2m19s  timesten  Pod sample2-1 Agent Up
      Normal   Info         2m19s  timesten  Pod sample2-1 Instance Exists
      Normal   Info         2m19s  timesten  Pod sample2-1 Daemon Down
      Normal   Info         2m19s  timesten  Pod sample2-1 Daemon Up
      Normal   Info         2m19s  timesten  Pod sample2-1 Database Unloaded
      Normal   Info         2m12s  timesten  Pod sample2-1 Database None
      Normal   Info         116s   timesten  Pod sample2-1 Database Loaded
      Normal   Info         116s   timesten  Pod sample2-1 RepAgent Not Running
      Normal   Info         116s   timesten  Pod sample2-1 RepScheme Exists
      Normal   StateChange  116s   timesten  Pod sample2-1 RepState IDLE
      Normal   Info         111s   timesten  Pod sample2-1 RepAgent Running
      Normal   StateChange  111s   timesten  TimesTenClassic was StandbyDown, now StandbyStarting
      Normal   StateChange  110s   timesten  TimesTenClassic was StandbyStarting, now StandbyCatchup
      Normal   StateChange  75s    timesten  Pod sample2-1 RepState STANDBY
      Normal   StateChange  75s    timesten  TimesTenClassic was StandbyCatchup, now Normal
      Normal   StateChange  70s    timesten  Pod sample2-1 is Ready
    

    次の点に注目してください。

    • イメージが新しいリリースにアップグレードされています。

    • アクティブ・データベース(sample2-0)は新しいリリースにアップグレードされていません。

    • スタンバイ・データベース(sample2-1)が新しいリリースにアップグレードされています。

スタンバイ・データベースを正常にアップグレードしました。これで、アクティブ・データベースからスタンバイにフェイルオーバーする準備が整いました。

フェイルオーバー

この時点で、アクティブ・データベースからスタンバイ・データベースにフェイルオーバーする必要があります。

ノート:

フェイルオーバーすると、アクティブなデータベースは停止され、すぐにフェイルオーバーされます。本番日の最も忙しい時間にこの手順を実行しないでください。

フェイルオーバーする前に、アクティブ・データベースでアプリケーションを停止します。(ttAdmin -closeおよびttAdmin -disconnectコマンドを使用することもできます。『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』ユーザー接続のためのデータベースのオープンとクローズおよびデータベースの接続の切断を参照してください。

データ損失の可能性をなくすために、ttRepAdmin -waitコマンドを使用して、アクティブ・データベースで実行されたすべてのトランザクションがスタンバイ・データベースにレプリケートされるように、レプリケーションの遅れが回復されるまで待機します。Oracle TimesTen In-Memory DatabaseリファレンスttRepAdminを参照してください

スタンバイの遅れが回復されたら、アクティブ・ポッドを削除して、アクティブ・データベースからスタンバイにフェイルオーバーします。アクティブ・ポッドを削除すると、オペレータは自動的に障害を検出して、スタンバイ・データベースをアクティブに昇格させます。アクティブ・データベース(この例ではsample2-0)を使用しているクライアント/サーバー・アプリケーションは、自動的に新しいアクティブ・データベース(この例ではsample2-1)に再接続されます。処理中のトランザクションはロールバックされます。準備したSQL文は、アプリケーションで再準備する必要があります。クライアント/サーバーのフェイルオーバーの詳細は、「フェイルオーバーおよびリカバリの処理について」を参照してください。

削除されたポッドを置き換えるために、Kubernetesは新しいsample2-0ポッドを自動的に作成します。オペレータは、新しいポッドをスタンバイ・ポッドとして構成します。この新しいポッドは、新しく作成したTimesTenイメージを実行するようになります。

ノート:

この操作は、スケジュールされた本番環境の停止中に実行することをお薦めします。

  1. kubectl deleteコマンドを使用して、アクティブ・ポッド(この例ではsample2-0)を削除します。
    kubectl delete pod sample2-0

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

    pod "sample2-0" deleted
  2. kubectl getコマンドを使用してsample2 TimesTenClassicオブジェクトの状態を評価します。
    kubectl get ttc sample2

    その状態が最初はActiveDownであることに注目してください。

    NAME      STATE        ACTIVE   AGE
    sample2   ActiveDown   None     19h
    

    数分間待機してから、コマンドを再実行します。

    kubectl get ttc sample2

    その状態がNormalに変わったことに注目してください。

    NAME     STATE    ACTIVE     AGE
    sample2   Normal   sample2-1   19h

    オペレータによってsample-1がアクティブへと昇格されました。

  3. kubectl describeコマンドを使用して、オペレータがどのように障害からリカバリするかを確認します。オペレータは、スタンバイ・データベース(sample2-1)をアクティブに昇格させます。sample2-0データベースに接続されていたすべてのアプリケーションは、TimesTenによってsample2-1データベースに自動的に再接続されます。短時間の停止後、アプリケーションは引き続きデータベースを使用できます。アクティブ・スタンバイ・ペアの状態の詳細は、「データベースのアクティブ・スタンバイ・ペアの状態の監視について」を参照してください。
    kubectl describe ttc sample2

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

    Name:         sample2
    Namespace:    mynamespace
    ...
    Kind:         TimesTenClassic
    ...
    Spec:
      ...
      Ttspec:
        Additional Memory Request:  1Gi
        Automatic Memory Requests:  true
        Daemon Log CPU Request:     200m
        Daemon Log Memory Request:  20Mi
        Db Config Map:
          sample2
        Exporter CPU Request:     200m
        Exporter Memory Request:  200Mi
        Image:                    container-registry.oracle.com/timesten/timesten:22.1.1.19.0
        Image Pull Policy:        Always
        Image Pull Secret:        sekret
        Image Upgrade Strategy:   Manual
        Memory Warning Percent:   90
        Storage Class Name:       oci-bv
        Storage Size:             250G
    Status:
      ...
      Classic Upgrade Status:
        ...
      High Level State:              Normal
      Last Event:                    0
      Last High Level State Switch:  1673214034
      Last Reconcile:                1673214897250
      Last Reconciling Operator:     timesten-operator-6f9d96bdfc-h22lm
      Observed Generation:           2
      Pod Status:
        Active:           false
        Admin User File:  true
        Cache Status:
          Cache Agent:        Not Running
          Cache UID Pwd Set:  true
          N Cache Groups:     0
        Cache User File:      false
        Cg File:              false
        Db Status:
          Db:  Loaded
          ...
        Name:                                                 sample2-0
        Pod Status:
          Agent:                Up
          Last Time Reachable:  1673214897
          Pod IP:               192.0.2.3
          Pod Phase:            Running
        Prev Active:            false
        Prev High Level State:  Healthy
        Prev Image:             container-registry.oracle.com/timesten/timesten:22.1.1.9.0
        Prev Intended State:    Active
        Prev Ready:             true
        Ready:                  true
        Replication Status:
          Last Time Rep State Changed:  1673213965
          Rep Agent:                    Running
          Rep Peer P State:             start
          Rep Scheme:                   Exists
          Rep State:                    STANDBY
        Scaleout Status:
          Instance Type:  classic
        Schema File:      true
        Timesten Status:
          Daemon:         Up
          Instance:       Exists
          Release:        22.1.1.19.0
        Tt Pod Type:      Database
        Using Twosafe:    false
        Active:           true
        Admin User File:  true
        Cache Status:
          Cache Agent:        Not Running
          Cache UID Pwd Set:  true
          N Cache Groups:     0
        Cache User File:      false
        Cg File:              false
        Db Status:
          Db:  Loaded
          ...
        High Level State:                                     Healthy
        Initialized:                                          true
        Intended State:                                       Active
        Last High Level State Switch:                         1673214897
        Local Commit:                                         false
        Name:                                                 sample2-1
        Pod Status:
          Agent:                Up
          Last Time Reachable:  1673214897
          Pod IP:               192.0.2.4
          Pod Phase:            Running
        Prev Active:            true
        Prev High Level State:  Healthy
        Prev Image:             container-registry.oracle.com/timesten/timesten:22.1.1.9.0
        Prev Intended State:    Standby
        Prev Ready:             true
        Ready:                  true
        Replication Status:
          Last Time Rep State Changed:  1673212993
          Rep Agent:                    Running
          Rep Peer P State:             start
          Rep Scheme:                   Exists
          Rep State:                    ACTIVE
        Scaleout Status:
          Instance Type:  classic
        Schema File:      true
        Timesten Status:
          Daemon:             Up
          Instance:           Exists
          Release:            22.1.1.19.0
        Tt Pod Type:          Database
        Using Twosafe:        false
      Prev High Level State:  StandbyDown
      Prev Reexamine:
      Prev Stop Managing:
      ...
    Events:
      Type     Reason       Age   From      Message
      ----     ------       ----  ----      -------
      ...
      Warning  StateChange  15m   timesten  TimesTenClassic was Normal, now ActiveDown
      Normal   Info         15m   timesten  Pod sample2-0 Agent Down
      Normal   StateChange  15m   timesten  Pod sample2-0 is Not Ready
      Normal   StateChange  15m   timesten  Pod sample2-0 is Not Active Ready
      Normal   Info         15m   timesten  Pod sample2-1 Database Updatable
      Normal   StateChange  15m   timesten  Pod sample2-1 RepState ACTIVE
      Normal   StateChange  15m   timesten  Pod sample2-1 is Not Ready
      Normal   StateChange  15m   timesten  TimesTenClassic was ActiveDown, now ActiveTakeover
      Normal   StateChange  15m   timesten  Pod sample2-1 is Ready
      Normal   StateChange  15m   timesten  TimesTenClassic was ActiveTakeover, now StandbyDown
      Normal   StateChange  15m   timesten  Pod sample2-1 is Active Ready
      Normal   Info         14m   timesten  Pod sample2-0 Agent Up
      Normal   Info         14m   timesten  Pod sample2-0 Instance Exists
      Normal   Info         14m   timesten  Pod sample2-0 Daemon Down
      Normal   Info         14m   timesten  Pod sample2-0 Daemon Up
      Normal   Info         14m   timesten  Pod sample2-0 Database Unloaded
      Normal   Info         14m   timesten  Pod sample2-0 Database None
      Normal   Info         14m   timesten  Pod sample2-0 Database Loaded
      Normal   Info         14m   timesten  Pod sample2-0 RepAgent Not Running
      Normal   Info         14m   timesten  Pod sample2-0 RepScheme Exists
      Normal   StateChange  14m   timesten  Pod sample2-0 RepState IDLE
      Normal   Info         14m   timesten  Pod sample2-0 RepAgent Running
      Normal   StateChange  14m   timesten  Pod sample2-0 RepState STANDBY
      Normal   StateChange  14m   timesten  Pod sample2-0 is Ready
      Normal   StateChange  14m   timesten  TimesTenClassic was StandbyDown, now Normal
    

新しいリリースのTimesTenに正常にアップグレードされました。この時点で、アクティブ・ポッドとスタンバイ・ポッドは、新しいTimesTenリリースが含まれている新しいTimesTenイメージを実行しています。

この例では、sampleおよびsample2 TimesTenClassicオブジェクトがアップグレードされます。アップグレード・プロセスが完了しました。アクティブ・データベースとスタンバイ・データベースで新しいリリースのTimesTenが実行されていることを確認しましょう。