主コンテンツへ
Oracle® TimesTen In-Memory Databaseインストレーション、移行およびアップグレード・ガイド
リリース18.1
F16947-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

6 TimesTen Classicでのアップグレード

この章では、新しいリリースのTimesTen Classicにアップグレードする手順について説明します。TimesTen Scaleoutのアップグレード手順の詳細は、Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイドのグリッドのアップグレードおよびデータの移行、バックアップおよびリストアを参照してください。

この章で説明しているアップグレード手順を完了する前に、前の章のインストール手順を確認してください。

内容は次のとおりです。

リリース番号の概要

TimesTenリリースにはリリース採番スキームがあります。このスキームはアップグレードについて説明する際に関連してきます。たとえば、特定のリリースa.b.c.d.eの場合は、次のことを意味します。

  • aは、メジャー・リリースの最初の部分を示します。

  • bは、メジャー・リリースの2番目の部分を示します。

  • cは、パッチ・セットを示します。

  • dは、パッチ・セット内のパッチ・レベルを示します。

  • eは予約されています。

重要な考慮事項:

  • 同じメジャー・リリース(a.b)内の各リリースには、バイナリ互換性があります。リリースがバイナリ互換の場合、アップグレード(またはダウングレード)のためにデータベースを再作成する必要はありません。

  • メジャー・リリースが異なるリリースはバイナリ互換ではありません。この場合は、データベースを再作成する必要があります。詳細は、「データベースの移行」を参照してください。

たとえば、18.1.4.1.0リリースの場合は次のようになります。

  • 5つの部分を持つリリース番号の最初の2つの番号(18.1)は、メジャー・リリースを示します。

  • 5つの部分を持つリリース番号の3番目の番号(4)は、パッチ・セットを示します。たとえば、18.1.4.1.0は、最初の2つの番号(18および1)が同じであるため、18.1.3.5.0とバイナリ互換性があります。

  • 5つの部分を持つリリース番号の4番目の番号(1)は、パッチ・セット内のパッチ・レベルを示します。18.1.4.1.0は、パッチ・セット4内の最初のパッチ・レベルです。

  • 5つの部分を持つリリース番号の5番目の番号(0)は予約されています。


ノート:

11.2.1.w.xおよび11.2.2.y.zリリースでは、最初の3桁はメジャー・リリースを示していました。したがって、11.2.111.2.2のようにメジャー・リリースとみなされます。

アップグレードのタイプ

TimesTen Classicでは、次の2種類のアップグレードがサポートされています。

  • オフライン・アップグレードでは、すべてのアプリケーションをTimesTenから切断し、すべてのデータベースをメモリーからアンロードする必要があります。オフライン・アップグレードは、要件に応じて2つの異なる状況で行われます。

    必要に応じて、次のことを行います。

  • オンライン・アップグレードでは、レプリケートされたデータベースのペアを使用して、各データベースのオフライン・アップグレードを順に実行します。詳細は、「オンライン・アップグレード: TimesTenレプリケーションの使用」を参照してください。

オフライン・アップグレード: 別のパッチまたはパッチ・セットへの移動: ttInstanceModify

パッチ・セット間またはパッチ・レベル間で移行する推奨のオフライン・アップグレード方法では、新しい場所に新しいインストール環境を作成し、-installオプションを指定したttInstanceModifyユーティリティを使用して、そのインスタンスが新しいインストール環境を指すようにします。このオフライン・アップグレードでは、インスタンス管理者はすべてのデータベースをユーザー接続に対してクローズし、すべてのデータベースからすべてのアプリケーションを切断して、すべてのデータベースをメモリーからアンロードする必要があります。

アップグレードを実行するには、次のステップに従います。

  1. 新しい場所に新しいインストール環境を作成します。たとえば、fullinstall_newインストール・ディレクトリを作成します。次に、新しいパッチ・リリースのzipファイルをそのディレクトリに解凍します。(たとえば、timesten181410.server.linux8664.zipfullinstall_newディレクトリに解凍します)。

    % mkdir fullinstall_new
    % cd fullinstall_new
    % unzip /swdir/TimesTen/ttinstallers/timesten181410.server.linux8664.zip
    [...UNZIP OUTPUT...]
    

    詳細は、「TimesTenのインストール」を参照してください。

  2. すべてのデータベースをアンロードします。詳細は、メモリーからのデータベースのアンロードを参照してください。

  3. TimesTenデーモンを停止します。

    % ttDaemonAdmin -stop
    TimesTen Daemon (PID: 24224, port: 6324) stopped.
    
  4. 新しいインストール環境を指すようにインスタンスを変更します。この例では、swdir/TimesTen/ttinstallations/ttinstalllatest/tt18.1.4.1.0にあるインストール環境をインスタンスが指し示すようにします。

    % $TIMESTEN_HOME/bin/ttInstanceModify -install
     /swdir/TimesTen/ttinstallations/ttinstalllatest/tt18.1.4.1.0
    
    Instance Info (UPDATED)
    -----------------------
     
    Name:           ttuserinstance
    Version:        18.1.4.1.0
    Location:       /swdir/TimesTen/ttinstances/ttuserinstance
    Installation:   /swdir/TimesTen/ttinstallations/ttinstalllatest/tt18.1.4.1.0
    Daemon Port:    6324
    Server Port:    6325
     
    **********************************************
     
    NOTE: The ttclasses source code may have changed since the last release.
          Make sure to rebuild the ttclasses library in 
          /swdir/TimesTen/ttinstances/ttuserinstance/ttclasses.
     
    The instance ttuserinstance now points to the installation in 
    /swdir/TimesTen/ttinstallations/ttinstalllatest/tt18.1.4.1.0
    
  5. デーモンを再起動します。

    % ttDaemonAdmin -start
    TimesTen Daemon (PID: 31202, port: 6324) startup OK.
    
  6. データベースをロードします。詳細は、「メモリーへのデータベースの再ロード」を参照してください。

  7. オプション: データベースに接続できることを確認します。

    % ttIsql database1
     
    Copyright (c) 1996, 2020, Oracle and/or its affiliates. All rights reserved.
    Type ? or "help" for help, type "exit" to quit ttIsql.
     
     
     
    ...
    Command> SELECT * FROM dual;
    < X >
    1 row found.
    
  8. オプション: 前のパッチ・リリース・インストールを削除します。

    % chmod -R 750 installation_dir/tt18.1.3.5.0
    % rm -rf installation_dir/tt18.1.3.5.0
    

メモリーからのデータベースのアンロード

メモリーからデータベースをアンロードするには、次のステップを実行します。

  1. 18.1.3.1.0以降のリリースでは、データベースをクローズします。これにより、今後データベースに接続できなくなります。18.1.3.1.0より前のリリースでは、このステップは無視してください。

    % ttAdmin -close database1
    RAM Residence Policy            : manual
    Manually Loaded In RAM          : True
    Replication Agent Policy        : manual
    Replication Manually Started    : False
    Cache Agent Policy              : manual
    Cache Agent Manually Started    : False
    Database State                  : Closed
    

    『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のユーザー接続のためのデータベースのオープンおよびクローズに関する項を参照してください。

  2. データベースに接続している場合は、すべてのアプリケーションをデータベースから切断します。手動で実行するか、切断を実行するようにTimesTenに指示できます。後者の場合は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のデータベースからの切断に関する項および『Oracle TimesTen In-Memory Databaseリファレンス』のForceDisconnectEnabledに関する項を参照してください。

  3. RAMポリシーがmanualまたはinUseに設定されていることを確認します。次に、データベースをメモリーからアンロードします。RAMポリシーの指定の詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のRAMポリシーの指定に関する項を参照してください。

    RAMポリシーがalwaysに設定されている場合は、manualに変更した後で、メモリーからデータベースをアンロードします。

    % ttAdmin -ramPolicy manual -ramUnload database1
    
    RAM Residence Policy            : manual
    Manually Loaded In RAM          : False
    Replication Agent Policy        : manual
    Replication Manually Started    : False
    Cache Agent Policy              : manual
    Cache Agent Manually Started    : False
    Database state                  : closed
    

    RAMポリシーがmanualに設定されている場合は、メモリーからデータベースをアンロードします。

    ttAdmin -ramUnload database1
    
    RAM Residence Policy            : manual
    Manually Loaded In RAM          : False
    Replication Agent Policy        : manual
    Replication Manually Started    : False
    Cache Agent Policy              : manual
    Cache Agent Manually Started    : False
    Database state                  : closed
    

    RAMポリシーがinUseに設定されており、猶予期間が設定されている場合は、猶予期間に0 (ゼロ)を設定するか、猶予期間に設定した時間が経過するまで待機します。アクティブな接続をすべてクローズすると、RAMポリシーがinUseであるデータベースがメモリーからアンロードされます。

    % ttAdmin -ramGrace 0 database1
    
    RAM Residence Policy            : inUse
    Replication Agent Policy        : manual
    Replication Manually Started    : False
    Cache Agent Policy              : manual
    Cache Agent Manually Started    : False
    Database state                  : closed
    
  4. ttStatusユーティリティを実行して、データベースがメモリーからアンロードされていること、およびリリース18.1.3.1.0以上の場合はデータベースがクローズされていることを確認します。詳細は、Oracle TimesTen In-Memory DatabaseリファレンスのttStatusを参照してください。

    % ttStatus
    TimesTen status report as of Mon Jun 29 14:11:19 2020
     
    Daemon pid 24224 port 6324 instance ttuserinstance
    TimesTen server pid 22019 started on port 6325
    ------------------------------------------------------------------------
    Data store /scratch/databases/database1
    Daemon pid 24224 port 6324 instance ttuserinstance
    TimesTen server pid 22019 started on port 6325
    There are no connections to the data store
    Closed to user connections
    RAM residence policy: Manual
    Data store is manually unloaded from RAM
    Replication policy  : Manual
    Cache Agent policy  : Manual
    PL/SQL enabled.
    ------------------------------------------------------------------------
    Accessible by group g900
    End of report
    

メモリーへのデータベースの再ロード

次の手順に従って、データベースをメモリーにロードします。

  1. メモリーにデータベースをロードします。この例では、RAMポリシーをmanualに設定した後、database1データベースをメモリーにロードします。

    RAMポリシーをmanualに設定します。

    % ttAdmin -ramPolicy manual database1
    
    RAM Residence Policy            : manual
    Manually Loaded In RAM          : False
    Replication Agent Policy        : manual
    Replication Manually Started    : False
    Cache Agent Policy              : manual
    Cache Agent Manually Started    : False
    Database state                  : closed
    

    メモリーにdatabase1データベースをロードします。

    % ttAdmin -ramLoad database1
    
    RAM Residence Policy            : manual
    Manually Loaded In RAM          : True
    Replication Agent Policy        : manual
    Replication Manually Started    : False
    Cache Agent Policy              : manual
    Cache Agent Manually Started    : False
    Database state                  : closed
    

    RAMポリシーの詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のRAMポリシーの指定に関する項を参照してください。

  2. 18.1.3.1.0以降のリリースでは、ユーザー接続用のデータベースを開きます。18.1.3.1.0より前のリリースでは、このステップは無視してください。

    % ttAdmin -open database1
    RAM Residence Policy            : manual
    Manually Loaded In RAM          : True
    Replication Agent Policy        : manual
    Replication Manually Started    : False
    Cache Agent Policy              : manual
    Cache Agent Manually Started    : False
    Database State                  : Open
    

    『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のユーザー接続のためのデータベースのオープンおよびクローズに関する項を参照してください。

オフライン・アップグレード: 別のパッチまたはパッチ・セットへの移動: ttBackup

ttBackupおよびttRestoreユーティリティを実行してTimesTen Classicの新しいパッチ・リリースに移動できますが、これは適切な方法ではありません。

各データベースについて、次のステップを実行します。

旧リリースの場合:

  1. すべてのアプリケーションをデータベースから切断します。手動で実行するか、切断を実行するようにTimesTenに指示できます。後者の場合は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のデータベースからの切断に関する項および『Oracle TimesTen In-Memory Databaseリファレンス』のForceDisconnectEnabledに関する項を参照してください。

  2. データベースをバックアップします。この例では、リリース18.1.3.5.0database1_1813データベースをバックアップします。

    ttBackup -dir /tmp/dump/backup_181350 -fname database1_1813 database1_1813
    Backup started ...
    Backup complete
    
  3. データベースをメモリーからアンロードします。この例では、RAMポリシーがmanualであることを前提としています。RAMポリシーの詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のRAMポリシーの指定に関する項を参照してください。

    % ttAdmin -ramUnload database1_1813
    
    RAM Residence Policy            : manual
    Manually Loaded In RAM          : False
    Replication Agent Policy        : manual
    Replication Manually Started    : False
    Cache Agent Policy              : manual
    Cache Agent Manually Started    : False
    
  4. TimesTenデーモンを停止します。

    % ttDaemonAdmin -stop
    TimesTen Daemon (PID: 2749, port: 6666) stopped.
    

新しいリリースの場合:

  1. 新しい場所に新しいインストール環境を作成します。たとえば、fullinstall_newインストール・ディレクトリを作成します。次に、パッチ・リリースのzipファイルをそのディレクトリに解凍します。(たとえば、timesten181410.server.linux8664.zipfullinstall_newディレクトリに解凍します)。詳細は、「TimesTenのインストール」および「Linux/UNIXでのインストール環境の作成」を参照してください。

    % mkdir fullinstall_new
    % cd fullinstall_new
    % unzip /swdir/TimesTen/ttinstallers/timesten181410.server.linux8664.zip
    [...UNZIP OUTPUT...]
    
  2. ttInstanceCreateユーティリティを実行してインスタンスを作成します。この例では、ttInstanceCreateユーティリティを対話形式で実行します。詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のttInstanceCreateに関する項およびこのマニュアルの「Linux/UNIXでのインスタンスの作成: 基本」を参照してください。

    ユーザーの入力は太字で示されています。

    % installation_dir/tt18.1.4.1.0/bin/ttInstanceCreate
     
    NOTE: Each TimesTen instance is identified by a unique name.
          The instance name must be a non-null alphanumeric string, not longer
          than 255 characters.
     
    Please choose an instance name for this installation? [ tt181 ] inst1814_new
    Instance name will be 'inst1814_new'.
    Is this correct? [ yes ]
    Where would you like to install the inst1814_new instance of TimesTen? 
    [ /home/ttuser ] /scratch/ttuser
    Creating instance in /scratch/ttuser/inst1814_new ...
    INFO: Mapping files from the installation to 
    /scratch/ttuser/inst1814_new/install
    TCP port 6624 is in use!
     
    NOTE: If you are configuring TimesTen for use with Oracle Clusterware, the
          daemon port number must be the same across all TimesTen installations
          managed within the same Oracle Clusterware cluster.
     
    ** The default daemon port (6624) is already in use or within a range of 8
    ports of an existing TimesTen instance. You must assign a unique daemon port
    number for this instance. This installer will not allow you to assign another
    instance a port number within a range of 8 ports of the port you assign below.
     
    NOTE: All installations that replicate to each other must use the same daemon
          port number that is set at installation time. The daemon port number can
          be verified by running 'ttVersion'.
     
    Please enter a unique port number for the TimesTen daemon (<CR>=list)? [ ] 6324
     
    In order to use the 'TimesTen Application-Tier Database Cache' feature in any 
    databases
    created within this installation, you must set a value for the TNS_ADMIN
    environment variable. It can be left blank, and a value can be supplied later
    using <install_dir>/bin/ttInstanceModify.
     
    Please enter a value for TNS_ADMIN (s=skip)? [  ] s
    What is the TCP/IP port number that you want the TimesTen Server to listen on?
     [ 6325 ]
     
    Would you like to use TimesTen Replication with Oracle Clusterware? [ no ]
     
    NOTE: The TimesTen daemon startup/shutdown scripts have not been installed.
     
    The startup script is located here :
            '/scratch/ttuser/inst1814_new/startup/tt_inst1814_new'
     
    Run the 'setuproot' script :
            /scratch/ttuser/inst1814_new/bin/setuproot -install
    This will move the TimesTen startup script into its appropriate location.
     
    The 18.1 Release Notes are located here :
      '/scratch/ttuser/181410/tt18.1.4.1.0/README.html'
     
    Starting the daemon ...
    TimesTen Daemon (PID: 3253, port: 6324) startup OK.
    
  3. データベースをリストアします。環境変数を設定し、sys.odbc.iniファイル(またはodbc.iniファイル)内の接続属性に対して必要なすべての変更を行い、データベースをリストアする前にデーモンを起動します(まだ起動していない場合)。

    % ttRestore -dir /tmp/dump/backup_181350 -fname database1_1813 database1_1814
    Restore started ...
    Restore complete
    

データベースが正しく構成され完全に動作すると、バックアップ・ファイル(この例では/tmp/dump/backup_181350/database1_1813)をオプションで削除できます。

オフライン・アップグレード: 別のメジャー・リリースへの移動

複数のメジャー・リリースをホストに同時にインストールできます。ただし、あるメジャー・リリースで作成したデータベースには、異なるメジャー・リリースのアプリケーションから直接アクセスすることはできません。たとえば、メジャー・リリース間でのデータの移行を、TimesTen 11.2.2から18.1に対して行う場合、ttMigrateユーティリティを使用して以前のリリースのデータをエクスポートし、ttMigrateユーティリティを使用して新しいリリースにインポートする必要があります。

あるメジャー・リリースから別のメジャー・リリースにデータベースを移行する前に、必ず古いリリースのデータベースをバックアップしてください。詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のttBackupに関する項とttRestoreに関する項、およびこのマニュアルの「データベースのバックアップおよびリストア」を参照してください。

アップグレードを実行するには、次のステップに従ってください。

旧リリースの場合:

  1. すべてのアプリケーションをデータベースから切断します。手動で実行するか、切断を実行するようにTimesTenに指示できます。後者の場合は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のデータベースからの切断に関する項および『Oracle TimesTen In-Memory Databaseリファレンス』のForceDisconnectEnabledに関する項を参照してください。

  2. ttMigrateユーティリティを使用してデータベースのコピーを保存します。この例では、database1用にいくつかのデータベース・オブジェクトが保存されています。

    % ttMigrate -c database1 /tmp/database1.data
    Saving user PUBLIC
    User successfully saved.
     
    Saving table TTUSER.COUNTRIES
      Saving foreign key constraint COUNTR_REG_FK
      Saving rows...
      25/25 rows saved.
    Table successfully saved.
     
    Saving table TTUSER.DEPARTMENTS
      Saving foreign key constraint DEPT_LOC_FK
      Saving rows...
      27/27 rows saved.
    Table successfully saved.
     
    Saving table TTUSER.EMPLOYEES
      Saving index TTUSER.TTUNIQUE_0
      Saving foreign key constraint EMP_DEPT_FK
      Saving foreign key constraint EMP_JOB_FK
      107/107 rows saved.
      Saving rows...
    Table successfully saved.
     
    Saving table TTUSER.JOBS
      Saving rows...
      19/19 rows saved.
    Table successfully saved.
     
    Saving table TTUSER.JOB_HISTORY
      Saving foreign key constraint JHIST_DEPT_FK
      Saving foreign key constraint JHIST_EMP_FK
      Saving foreign key constraint JHIST_JOB_FK
      Saving rows...
      10/10 rows saved.
    Table successfully saved.
     
    Saving table TTUSER.LOCATIONS
      Saving foreign key constraint LOC_C_ID_FK
      Saving rows...
      23/23 rows saved.
    Table successfully saved.
     
    Saving table TTUSER.REGIONS
      Saving rows...
      4/4 rows saved.
    Table successfully saved.
     
    Saving view TTUSER.EMP_DETAILS_VIEW
    View successfully saved.
     
    Saving sequence TTUSER.DEPARTMENTS_SEQ
    Sequence successfully saved.
     
    Saving sequence TTUSER.EMPLOYEES_SEQ
    Sequence successfully saved.
     
    Saving sequence TTUSER.LOCATIONS_SEQ
    Sequence successfully saved.
    

    ttMigrateユーティリティの詳細は、Oracle TimesTen In-Memory DatabaseリファレンスのttMigrateを参照してください。

  3. データベースをメモリーからアンロードします。詳細は、メモリーからのデータベースのアンロードを参照してください。

  4. TimesTenデーモンを停止します。

    % ttDaemonAdmin -stop
    TimesTen Daemon (PID: 30841, port: 54496) stopped.
    
  5. 移行オブジェクト・ファイルを、新しいリリースのインスタンスからアクセスできるファイル・システムにコピーします。

新しいリリースの場合:

  1. 新しい場所に新しいインストール環境を作成します。たとえば、fullinstall_newインストール・ディレクトリを作成します。次に、パッチ・リリースのzipファイルをそのディレクトリに解凍します。(たとえば、timesten181410.server.linux8664.zipfullinstall_newディレクトリに解凍します)。詳細は、「TimesTenのインストール」および「Linux/UNIXでのインストール環境の作成」を参照してください。

    % mkdir fullinstall_new
    % cd fullinstall_new
    % unzip /swdir/TimesTen/ttinstallers/timesten181410.server.linux8664.zip
    [...UNZIP OUTPUT...]
    
  2. ttInstanceCreateユーティリティを実行してインスタンスを作成します。この例では、ttInstanceCreateユーティリティを対話形式で実行します。詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のttInstanceCreateに関する項およびこのマニュアルの「Linux/UNIXでのインスタンスの作成: 基本」を参照してください。

    ユーザーの入力は太字で示されています。

    % installation_dir/tt18.1.4.1.0/bin/ttInstanceCreate
     
    NOTE: Each TimesTen instance is identified by a unique name.
          The instance name must be a non-null alphanumeric string, not longer
          than 255 characters.
     
    Please choose an instance name for this installation? [ tt181 ] inst1814_new
    Instance name will be 'inst1814_new'.
    Is this correct? [ yes ]
    Where would you like to install the inst1814_new instance of TimesTen? 
    [ /home/ttuser ] /scratch/ttuser
    Creating instance in /scratch/ttuser/inst1814_new ...
    INFO: Mapping files from the installation to 
    /scratch/ttuser/inst1814_new/install
    TCP port 6624 is in use!
     
    NOTE: If you are configuring TimesTen for use with Oracle Clusterware, the
          daemon port number must be the same across all TimesTen installations
          managed within the same Oracle Clusterware cluster.
     
    ** The default daemon port (6624) is already in use or within a range of 8
    ports of an existing TimesTen instance. You must assign a unique daemon port
    number for this instance. This installer will not allow you to assign another
    instance a port number within a range of 8 ports of the port you assign below.
     
    NOTE: All installations that replicate to each other must use the same daemon
          port number that is set at installation time. The daemon port number can
          be verified by running 'ttVersion'.
     
    Please enter a unique port number for the TimesTen daemon (<CR>=list)? [ ] 6324
     
    In order to use the 'TimesTen Application-Tier Database Cache' feature in any 
    databases
    created within this installation, you must set a value for the TNS_ADMIN
    environment variable. It can be left blank, and a value can be supplied later
    using <install_dir>/bin/ttInstanceModify.
     
    Please enter a value for TNS_ADMIN (s=skip)? [  ] s
    What is the TCP/IP port number that you want the TimesTen Server to listen on?
     [ 6325 ]
     
    Would you like to use TimesTen Replication with Oracle Clusterware? [ no ]
     
    NOTE: The TimesTen daemon startup/shutdown scripts have not been installed.
     
    The startup script is located here :
            '/scratch/ttuser/inst1814_new/startup/tt_inst1814_new'
     
    Run the 'setuproot' script :
            /scratch/ttuser/inst1814_new/bin/setuproot -install
    This will move the TimesTen startup script into its appropriate location.
     
    The 18.1 Release Notes are located here :
      '/scratch/ttuser/181410/tt18.1.4.1.0/README.html'
     
    Starting the daemon ...
    TimesTen Daemon (PID: 3253, port: 6324) startup OK.
    
  3. 新しいリリースのインスタンスからデータベースを作成します。環境変数を設定し、sys.odbc.iniファイル(またはodbc.iniファイル)内の接続属性に対して必要なすべての変更を行い、デーモンを起動したことを確認します(まだ起動していない場合)。

    データベースを作成するには、次のコマンドを実行します。

    % ttIsql -connstr "DSN=new_database1;AutoCreate=1" -e "quit"
    Copyright (c) 1996, 2020, Oracle and/or its affiliates. All rights reserved.
     
    Type ? or "help" for help, type "exit" to quit ttIsql.
     
     
     
    connect "DSN=new_database1;AutoCreate=1";
    Connection successful: DSN=new_database1;
    UID=instadmin;DataStore=/scratch/databases/new_database1;
    DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;
    PermSize=128;
    (Default setting AutoCommit=1)
     
    quit;
    Disconnecting...
    Done.
    

    この時点でデータベースは空です。

  4. 新しいリリースのインスタンスから、-rおよび-relaxedUpgradeオプションを指定してttMigrateユーティリティを実行し、バックアップしたデータベースを新しいリリースにリストアします。例:

    % ttMigrate -r -relaxedUpgrade new_database1 /tmp/database1.data
    
     
      Restoring rows...
    Restoring table TTUSER.JOBS
      19/19 rows restored.
    Table successfully restored.
     
    Restoring table TTUSER.REGIONS
      Restoring rows...
      4/4 rows restored.
    Table successfully restored.
     
    Restoring table TTUSER.COUNTRIES
      Restoring rows...
      25/25 rows restored.
      Restoring foreign key dependency COUNTR_REG_FK on TTUSER.REGIONS
    Table successfully restored.
     
    Restoring table TTUSER.LOCATIONS
      Restoring rows...
      23/23 rows restored.
      Restoring foreign key dependency LOC_C_ID_FK on TTUSER.COUNTRIES
    Table successfully restored.
     
    Restoring table TTUSER.DEPARTMENTS
      Restoring rows...
      27/27 rows restored.
      Restoring foreign key dependency DEPT_LOC_FK on TTUSER.LOCATIONS
    Table successfully restored.
     
    Restoring table TTUSER.EMPLOYEES
      Restoring rows...
      107/107 rows restored.
      Restoring foreign key dependency EMP_DEPT_FK on TTUSER.DEPARTMENTS
      Restoring foreign key dependency EMP_JOB_FK on TTUSER.JOBS
    Table successfully restored.
     
    Restoring table TTUSER.JOB_HISTORY
      Restoring rows...
      10/10 rows restored.
      Restoring foreign key dependency JHIST_DEPT_FK on TTUSER.DEPARTMENTS
      Restoring foreign key dependency JHIST_EMP_FK on TTUSER.EMPLOYEES
      Restoring foreign key dependency JHIST_JOB_FK on TTUSER.JOBS
    Table successfully restored.
     
    Restoring view TTUSER.EMP_DETAILS_VIEW
    View successfully restored.
     
    Restoring sequence TTUSER.DEPARTMENTS_SEQ
    Sequence successfully restored.
     
    Restoring sequence TTUSER.EMPLOYEES_SEQ
    Sequence successfully restored.
     
    Restoring sequence TTUSER.LOCATIONS_SEQ
    Sequence successfully restored.
    

データベースが新しいリリースで稼働したら、このデータベースのバックアップを作成して、データベースの有効なリストア・ポイントを作成します。データベースのバックアップを作成したら、データベースのttMigrateコピー(この例では、/tmp/database1.data)を削除できます。オプションで、旧リリースの場合、インスタンスを削除してインストール環境を削除できます。

オンライン・アップグレード: TimesTenレプリケーションの使用

TimesTen Classicの新しいリリースにアップグレードする場合、連続してアプリケーションから使用可能な状態にする必要があるミッション・クリティカルなデータベースがある場合があります。データベースが異なるリリースのTimesTenで構成されている場合でも、TimesTenレプリケーションを使用して、データベースの2つのコピーの同期をとることができます。これによって、一方のデータベースのインスタンスをアップグレードしている間に、データベースのもう一方のコピーにアプリケーションを接続したままにできます。アップグレードが完了すると、アクティブ・データベースに対して行われたすべての更新は、アップグレードされたインスタンスのデータベースに即時に送信されるため、アプリケーションは、データの損失や停止時間なしで切り替えることができます。詳細は、「クラシック・レプリケーションを使用したオンライン・アップグレードの実行」を参照してください。

オンライン・アップグレード処理は、アップグレード実行中のユーザー表の更新のみをサポートしています。レプリケートする表には、PRIMARY KEYまたは一意索引(NULLを指定できない列)が含まれている必要があります。CREATE TABLECREATE INDEXなどのデータ定義の変更は、DDLReplicationLevel2に設定されたアクティブ・スタンバイ・ペアの場合を除き、レプリケートされません。後者の場合、CREATE TABLEおよびCREATE INDEXがレプリケートされます。

アップグレードではデータベースの2つのコピー(データベースが複数ある場合はそれぞれの2つのコピー)が必要なため、アップグレードを1つのホストで実行する場合は、データベースが通常必要とする量の2倍のメモリーとディスク領域が使用可能である必要があります。


ノート:

  • 読取り専用キャッシュ・グループの場合、キャッシュ・グループを使用したアクティブ・スタンバイ・ペアのオンライン・メジャー・アップグレードのみがサポートされます。

  • Oracle Clusterwareによって管理されるアクティブ・スタンバイ・ペアのオンライン・メジャー・アップグレードは、サポートされません。


クラシック・レプリケーションによるオンライン・アップグレードの実行

この項では、TimesTenレプリケーション機能を使用して、データの継続使用が必要なアプリケーションのオンライン・アップグレードを実行する方法について説明します。

この手順は、一方向、双方向または複数方向のシナリオのクラシック・レプリケーション用です。

通常、データの高可用性が求められるアプリケーションでは、TimesTenレプリケーションを使用して、最新のデータベースのコピーを1つ以上保持しておきます。これらの2つのコピーの一方が更新中の場合にも、一方をアプリケーションで使用できるように保持することで、オンライン・アップグレードが機能します。この項で説明した手順は、Oracle TimesTen In-Memory Databaseレプリケーション・ガイドの単方向または双方向のレプリケーションの説明のとおり、双方向のレプリケーション・スキームが構成されていて、2つのデータベースに対して実行されていることを前提としています。

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

次の項では、レプリケーションを使用したオンライン・アップグレードの実行方法について説明します。

要件

レプリケーションを使用してオンライン・アップグレードを実行する場合は、静的ポートを使用するようにレプリケーションを構成する必要があります。詳細は、Oracle TimesTen In-Memory Databaseレプリケーション・ガイドのポートの割当てを参照してください。

ttMigrateユーティリティを使用して作成したデータベースのバックアップ・コピーを格納するために、追加のディスク領域を割り当てる必要があります。通常、バックアップ・コピーのサイズは、使用中のデータベースのサイズとほぼ同じです。このサイズを確認するには、ttIsqlを使用してv$monitorビューを問い合せます。

Command> SELECT perm_in_use_size FROM v$monitor;

アップグレード・ステップ

次のステップは、レプリケーションの実行中にオンライン・アップグレードを実行する方法を示しています。アップグレード・ホストは、データベースのアップグレードが実行されているホストで、アクティブなホストは、アプリケーションが引き続き接続されるデータベースを含むホストです。


ノート:

次のステップで、標準アップグレードを行います。接続属性ReplicationApplyOrdering0に設定されているTimesTen 11.2.1のデータベースや、ReplicationParallelism<2に設定されているTimesTen 11.2.1以上のデータベースからのアップグレードでは、リリースが同じメジャー・リリース・ラインであっても、データベースの再作成が必要です。

ステップ ホストのアップグレード アクティブなホスト
1. 静的ポートを使用してアクティブ・ホストにレプリケートされるように、レプリケーションを構成します。 静的ポートを使用してアップグレード・ホストにレプリケートされるように、レプリケーションを構成します。
2. 該当なし すべてのアプリケーションをアクティブ・データベースに接続します(接続されていない場合)。
3. アップグレードするデータベースからすべてのアプリケーションを切断します。 該当なし
4. 該当なし アップグレード・ホストへのレプリケーションをPAUSE状態に設定します。
5. アクティブ・ホストに更新が伝播されるまで待機します。 該当なし
6. レプリケーションを停止します。 該当なし
7. ttMigrate -cを使用してデータベースをバックアップし、ttDestroyを実行してデータベースを破棄します。 該当なし
8. 以前のリリースのTimesTenデーモンを停止します。 該当なし
9. 新しいリリースの新しいインストール環境および新しいインスタンスを作成します。詳細は、「Linux/UNIXでのインストール環境の作成」および「Linux/UNIXでのインスタンスの作成: 基本」を参照してください。 該当なし
10. 新しいリリースのアップグレード後のデータベースのDSNを作成します。DSNの並列処理オプションを調整します。 該当なし
11. ttMigrate -rを使用して、バックアップからデータベースをリストアします。 該当なし
12. ttRepAdmin -receiver -resetを使用して、アクティブ・ホストへのレプリケーションをstopに設定した後start状態に設定し、レプリケーション・ブックマークおよびログを消去します。 該当なし
13. レプリケーションを開始します。 該当なし
14. 該当なし アップグレード・ホストへのレプリケーションをstart状態に設定し、レプリケーションの再開後、蓄積された更新が確実に伝播されるようにします。
15. 該当なし レプリケーションを開始します。
16. 該当なし すべての更新内容がアップグレード・ホストに伝播されるまで待機します。
17. アップグレード後のデータベースにすべてのアプリケーションを再接続します。 該当なし

アップグレード・ホストで前述の手順が完了した後、同じステップを使用してアクティブなホストをアップグレードできます。

オンライン・アップグレードの例

この項では、双方向でレプリケートされている2つのデータベースのシナリオでオンライン・アップグレードを実行する手順について説明します。

ここでは、2つのホストを、アップグレード・ホスト(インスタンスとデータベースがアップグレードされる)およびアクティブ・ホスト(アップグレード期間中、操作可能でアプリケーションに接続される)と呼びます。手順が完了した後、同じステップを繰り返してアクティブ・ホストをアップグレードできます。ただし、アップグレードされたインスタンスを最初にテストするために、アクティブ・ホストの変換を遅延することもできます。

この例では、アップグレード・ホストは、サーバーupgradehost上のデータベースupgradeで構成されています。アクティブ・ホストは、サーバーactivehost上のデータベースactiveで構成されています。

以降のステップを記載の順に実行します。

ステップ ホストのアップグレード アクティブなホスト
1. データベースがリリース間で通信できるように静的レプリケーション・ポート番号を設定し、ttIsqlを使用してレプリケーション・スキームrepschemeを変更します。

Command> call ttRepStop;

Command> ALTER REPLICATION repscheme ALTER STORE upgrade ON upgradehost SET PORT 40000 ALTER STORE active ON activehost SET PORT 40001;

Command> call ttRepStart;

データベースがリリース間で通信できるように静的レプリケーション・ポート番号を設定し、ttIsqlを使用してレプリケーション・スキームrepschemeを変更します。

Command> call ttRepStop;

Command> ALTER REPLICATION repscheme ALTER STORE upgrade ON upgradehost SET PORT 40000 ALTER STORE active ON activehost SET PORT 40001;

Command> call ttRepStart;

2. データベースに接続されているすべての本番アプリケーションを切断します。アップグレード・ホストで実行されているワークロードが、かわりにアクティブ・ホストで実行を開始する必要があります。 ttRepAdminユーティリティを使用して、データベースactiveからデータベースupgradeへのレプリケーションを一時停止します。
ttRepAdmin -receiver -name upgrade
 -state pause active

このコマンドにより、データベースactiveからデータベースupgradeへの更新のレプリケーションは一時的に停止されますが、activeに対する更新内容はデータベースのトランザクション・ログ・ファイルに保存されます。アップグレード手順の実行中にactiveに対して行われた更新は、後でupgradeが再起動されたときに適用されます。

詳細は、『Oracle TimesTen In-Memory Databaseレプリケーション・ガイド』のサブスクライバのレプリケーション状態の設定に関する説明を参照してください。

3. データベースactiveに送信されるすべてのレプリケーションの更新を待機します。データベースupgradeで、更新の確認用として予約されている表に認識可能な更新を適用することで、更新がすべて送信されたことを確認できます。データベースactiveに更新が適用されると、すべての以前の更新が送信されたことになります。

たとえば、ttRepSubscriberWait組込みプロシージャをコールします。タイムアウトではなくクリーンな応答があったことを示す値<00>が返されることを予期する必要があります。(タイムアウトがあった場合、ttRepSubscriberWaitは値01を返します。)

Command> call ttRepSubscriberWait (,,,,60);
< 00 >
1 row found.

詳細は、Oracle TimesTen In-Memory DatabaseリファレンスのttRepSubscriberWaitを参照してください。

該当なし
4. ttAdminを使用して、レプリケーション・エージェントを停止します。
ttAdmin -repStop upgrade

これ以降、データベースactiveに更新は送信されません。

ttAdminを使用して、レプリケーション・エージェントを停止します。
ttAdmin -repStop active

これ以降、データベースupgradeに更新は送信されません。

詳細は、Oracle TimesTen In-Memory Databaseレプリケーション・ガイドのレプリケーション・エージェントの起動および停止に関する説明を参照してください。

5. ttMigrateを使用して、データベースupgradeをバックアップします。データベースが非常に大規模な場合は、このステップに長時間かかる可能性があります。/backupファイル・ホストに十分なディスク領域の空きがある場合は、次のttMigrateコマンドを使用します。
ttMigrate -c upgrade /backup/upgrade.dat
該当なし
6. ttMigrateコマンドが正常に実行された場合、データベースupgradeを破棄します。
ttDestroy upgrade
データベースactiveのレプリケーション・エージェントを再開します。
ttAdmin -repStart active
7. 新しいリリースの新しいインストール環境および新しいインスタンスを作成します。詳細は、「Linux/UNIXでのインストール環境の作成」および「Linux/UNIXでのインスタンスの作成: 基本」を参照してください。 レプリケーション状態をstartに設定して、activeからupgradeへのレプリケーションを再開します。
ttRepAdmin -receiver -name upgrade
 -start start active
8. ttMigrateを使用して、ステップ5で作成したバックアップを新しいリリースのデータベースupgradeにロードします。
ttMigrate -r upgrade /backup/upgrade.dat
ttAdmin -ramLoad upgrade

ノート: このステップでは、アップグレードしている新しいリリースのttMigrateユーティリティを使用する必要があります。

該当なし
.9 ttRepAdminを使用して、データベースactiveの受信側の状態を再設定し、レプリケーションをstop状態に設定した後start状態に設定することで、レプリケーション・ブックマークおよびログを消去します。
ttRepAdmin -receiver -name active
   -reset upgrade
ttRepAdmin -receiver -name active
   -state stop upgrade
sleep 10
ttRepAdmin -receiver -name active
   -state start upgrade
sleep 10

ノート: リソースやオペレーティング・システムによっては、状態の変更に最大で10秒かかるものもあるため、それぞれの状態が確実に有効になるようにsleepコマンドを使用しています。

該当なし
10. ttAdminを使用して、新しいデータベースupgradeのレプリケーション・エージェントを開始し、データベースactiveへの更新の送信を開始します。
ttAdmin -repStart upgrade
該当なし
11. データベースupgradeがデータベースactiveから更新を受信するかを確認します。データベースactiveで、更新の確認用として予約されている表に認識可能な更新を適用することで、更新が送信されたことを確認できます。upgradeに更新が適用されると、レプリケーションが動作していることになります。 アプリケーションがデータベースactiveで実行中の場合は、データベースupgradeの移行が正常に終了し、更新がactiveからupgradeに正しくレプリケートされたことを確認するまで、そのまま実行しておきます。
12. 該当なし 更新が正常にレプリケートされていることを確認したら、すべてのアプリケーションをデータベースactiveから切断し、データベースupgradeに再接続できます。activeからの最後の更新がupgradeにレプリケートされたことを確認した後、activeのインスタンスはアップグレード可能となります。

ノート: 新しいリリースのデータベースupgradeで十分なテストが実行されるまで、新しいリリースへのactiveのインスタンスのアップグレードを遅延できます。


アクティブ・スタンバイ・ペア・レプリケーションを使用したアップグレードの実行

アクティブ・スタンバイ・ペア・レプリケーションにより、アプリケーションへのデータの可用性が向上します。アクティブ・スタンバイ・ペアでは、非同期ライトスルー・キャッシュ・グループも使用する構成で新しいメジャー・リリースへアップグレードする場合を除き、オンライン・アップグレードを実行してアップグレード中にデータの可用性を継続して維持できます。この項では、次の手順について説明します。


ノート:

非同期ライトスルーまたは読取り専用キャッシュ・グループのみがアクティブ・スタンバイ・ペアでサポートされます。

キャッシュ・グループが構成されていないアクティブ・スタンバイ・ペアのオンライン・アップグレード

この項では、アクティブ・スタンバイ・ペアを使用した、キャッシュ・グループのないシナリオにおけるオンライン・アップグレードについて説明します。

概要、制限および要件については、「クラシック・レプリケーションを使用したオンライン・アップグレードの実行」も参照してください。

スタンバイ・マスターおよびサブスクライバのオンライン・パッチ・アップグレード

スタンバイ・マスター・データベースおよびサブスクライバ・データベースの新しいパッチ・リリースへのオンライン・アップグレードを実行するには、各データベースで次のタスクを実行します。この手順では、キャッシュ・グループはないものとします。

  1. ttRepStop組込みプロシージャまたはttAdminユーティリティを使用して、データベースのレプリケーション・エージェントを停止します。たとえば、スタンバイ・データベースmaster2のレプリケーション・エージェントを停止するには、次のようにします。

    ttAdmin -repStop master2
    
  2. 新しいリリースの新しいインストール環境および新しいインスタンスを作成します。詳細は、「Linux/UNIXでのインストール環境の作成」および「Linux/UNIXでのインスタンスの作成: 基本」を参照してください。

  3. ttRepStart組込みプロシージャまたはttAdminユーティリティを使用して、レプリケーション・エージェントを再開します。

    ttAdmin -repStart master2
    

アクティブ・マスターのオンライン・パッチ・アップグレード

アクティブ・マスター・データベースの新しいパッチ・リリースへのオンライン・アップグレードを実行するには、アクティブ・マスター・データベースとスタンバイ・マスター・データベースの役割を逆にしてから、アップグレードを行う必要があります。この手順では、キャッシュ・グループはないものとします。

  1. アクティブ・マスター・データベースで更新を生成しているすべてのアプリケーションを一時停止します。

  2. スタンバイ・マスター・データベースのDSNおよびホストを使用して、アクティブ・マスター・データベースのttRepSubscriberWait組込みプロシージャを実行します。(コールの結果は00である必要があります。値が01の場合は、値00が返されるまでttRepSubscriberWaitを再度コールする必要があります。)たとえば、すべてのトランザクションがmaster2hostのスタンバイ・マスターmaster2にレプリケートされるようにするには、次のようにします。

    call ttRepSubscriberWait( null, null, 'master2', 'master2host', 120 );
    
  3. ttRepStop組込みプロシージャまたはttAdminユーティリティを使用して、現行のアクティブ・マスター・データベースのレプリケーション・エージェントを停止します。たとえば、アクティブ・マスター・データベースmaster1のレプリケーション・エージェントを停止するには、次のようにします。

    ttAdmin -repStop master1
    
  4. 現行のアクティブ・マスター・データベースでttRepDeactivate組込みプロシージャを実行します。これによって、データベースがIDLE状態になります。

    call ttRepDeactivate;
    
  5. スタンバイ・マスター・データベースで、ttRepStateSet組込みプロシージャを使用して、データベースをACTIVE状態に設定します。このデータベースがアクティブ・スタンバイ・ペアのアクティブ・マスターになります。

    call ttRepStateSet( 'ACTIVE' );
    
  6. ステップ1で一時停止したアプリケーションを再開し、現在アクティブ・マスターとして動作しているデータベース(たとえば、master2)に接続します。


    ノート:

    この時点では、新しいアクティブ・データベースからサブスクライバ・データベースへのレプリケーションは発生しません。レプリケーションは、新しいスタンバイ・データベースがアップグレードされ、新しいスタンバイ・データベースのレプリケーション・エージェントが実行されてから再開されます。

  7. 前のアクティブ・マスター・データベース(今のスタンバイ・マスター・データベース)のインスタンスをアップグレードします。詳細は、「オフライン・アップグレード: 別のパッチまたはパッチ・セットへの移動: ttInstanceModify」を参照してください。

  8. ttRepStart組込みプロシージャまたはttAdminユーティリティを使用して、アップグレードしたインスタンスのデータベースのレプリケーションを再起動します。

    ttAdmin -repStart master2
    
  9. 新しくアップグレードしたインスタンスのデータベースを再びアクティブ・マスター・データベースにするには、Oracle TimesTen In-Memory Databaseレプリケーション・ガイドのアクティブ・データベースとスタンバイ・データベースの役割の入替えに関する説明を参照してください。

アクティブ・スタンバイ・ペアのオンライン・メジャー・アップグレード

アクティブ・スタンバイ・ペアからTimesTenの新しいメジャー・リリースへのオンライン・アップグレードを実行するには、各データベースのTCP/IPポートを明示的に指定する必要があります。アクティブ・スタンバイ・ペアのレプリケーション・スキームで各データベースのPORT属性が構成されていない場合は、アップグレードの準備として次のステップを実行する必要があります。この手順では、キャッシュ・グループはないものとします。(読取り専用キャッシュ・グループの場合、キャッシュ・グループを使用したアクティブ・スタンバイ・ペアのオンライン・メジャー・アップグレードのみがサポートされます。)

  1. ttRepStop組込みプロシージャをコールするか、ttAdminユーティリティを使用して、すべてのデータベースでレプリケーション・エージェントを停止します。たとえば、データベースmaster1のレプリケーション・エージェントを停止するには、次のようにします。

    ttAdmin -repStop master1
    
  2. アクティブ・マスター・データベースで、ALTER ACTIVE STANDBY PAIR文を使用してアクティブ・スタンバイ・ペアのすべてのデータベースのPORT属性を指定します。たとえば、master1hostホスト上のmaster1データベース、master2hostホスト上のmaster2データベースおよびsubscriber1hostホスト上のsubscriber1データベースのPORT属性を設定するには、次のようにします。

    ALTER ACTIVE STANDBY PAIR
     ALTER STORE master1 ON "master1host" SET PORT 30000
     ALTER STORE master2 ON "master2host" SET PORT 30001
     ALTER STORE subscriber1 ON "subscriber1host" SET PORT 30002;
    
  3. ttDestroyユーティリティを使用して、スタンバイ・マスター・データベースおよびすべてのサブスクライバを破棄します。たとえば、データベースsubscriber1を破棄するには、次のようにします。

    ttDestroy subscriber1
    
  4. 通常の手順に従ってアクティブ・スタンバイ・ペアを起動し、アクティブ・マスターからスタンバイ・データベースおよびサブスクライバ・データベースを複製します。詳細は、Oracle TimesTen In-Memory Databaseレプリケーション・ガイドのキャッシュ・グループのないアクティブ・スタンバイ・ペアの設定に関する説明を参照してください。

アクティブ・スタンバイ・ペアのインスタンスをアップグレードするには、まずスタンバイ・マスターのインスタンスをアップグレードします。このノードのアップグレード中はスタンバイ・マスター・データベースが存在しないため、アクティブ・マスター・データベースでの更新は、サブスクライバ・データベースに直接伝播されます。スタンバイ・ノードのアップグレード後に、アクティブ・ロールとスタンバイ・ロールが切り替えられ、新しいアクティブ・ロールから新しいスタンバイ・ロールが作成されます。最後に、サブスクライバ・ノードがアップグレードされます。

  1. アクティブ・マスター・データベースでttRepStateSave組込みプロシージャを実行して、アクティブ・マスター・データベースに、スタンバイ・マスターへの更新のレプリケートを停止するように指示ます。たとえば、ホストmaster2hostのスタンバイ・マスター・データベースmaster2へのレプリケートを停止するには、次のようにします。

    call ttRepStateSave( 'FAILED', 'master2', 'master2host' );
    
  2. ttRepStop組込みプロシージャまたはttAdminユーティリティを使用して、スタンバイ・マスター・データベースのレプリケーション・エージェントを停止します。次の例では、スタンバイ・マスター・データベースmaster2のレプリケーション・エージェントを停止します。

    ttAdmin -repStop master2
    
  3. ttMigrateユーティリティを使用してスタンバイ・マスター・データベースをバイナリ・ファイルにバックアップします。

    ttMigrate -c master2 master2.bak
    

    詳細は、Oracle TimesTen In-Memory DatabaseリファレンスのttMigrateを参照してください。

  4. ttDestroyユーティリティを使用して、アクティブ・マスター・データベースを破棄します。

    ttDestroy master2
    
  5. master2hostスタンバイ・マスター・ホストに新しいインストール環境および新しいインスタンスを作成します。詳細は、「Linux/UNIXでのインストール環境の作成」および「Linux/UNIXでのインスタンスの作成: 基本」を参照してください。

  6. master2hostの新しいインスタンスで、ttMigrateを使用して、前に作成したバイナリ・ファイルからスタンバイ・マスター・データベースをリストアします。(この例では、20MB分のデータがリストアされるたびにチェックポイント操作が実行されます。)

    ttMigrate -r -C 20 master2 master2.bak
    
  7. ttRepStart組込みプロシージャまたはttAdminユーティリティを使用してスタンバイ・マスター・データベースのレプリケーション・エージェントを開始します。

    ttAdmin -repStart master2
    

    アップグレードしたインスタンスのスタンバイ・マスター・データベースがアクティブ・マスター・データベースと同期化すると、このスタンバイ・マスター・データベースはRECOVERING状態からSTANDBY状態に移行します。また、このスタンバイ・マスター・データベースは、サブスクライバに更新の送信も開始します。スタンバイ・マスター・データベースがSTANDBY状態になるタイミングは、ttRepStateGet組込みプロシージャをコールすることで決まります。

    call ttRepStateGet;
    
  8. アクティブ・マスター・データベースで更新を生成しているすべてのアプリケーションを一時停止します。

  9. スタンバイ・マスター・データベースのDSNおよびホストを使用して、アクティブ・マスター・データベースのttRepSubscriberWait組込みプロシージャを実行します。(コールの結果は00である必要があります。値が01の場合は、値00が返されるまでttRepSubscriberWaitを再度コールする必要があります。)たとえば、すべてのトランザクションがホストmaster2hostのスタンバイ・マスターmaster2にレプリケートされるようにするには、次のようにします。

    call ttRepSubscriberWait( null, null, 'master2', 'master2host', 120 );
    
  10. ttRepStop組込みプロシージャまたはttAdminユーティリティを使用して、アクティブ・マスター・データベースのレプリケーション・エージェントを停止します。たとえば、アクティブ・マスター・データベースmaster1のレプリケーション・エージェントを停止するには、次のようにします。

    ttAdmin -repStop master1
    
  11. スタンバイ・マスター・データベースで、ttRepStateSet組込みプロシージャを使用して、データベースをACTIVE状態に設定します。このデータベースがアクティブ・スタンバイ・ペアのアクティブ・マスターになります。

    call ttRepStateSet( 'ACTIVE' );
    
  12. アクティブ・マスター・データベースでttRepStateSave組込みプロシージャを実行して、新しいアクティブ・マスター・データベース(この例では、master2)に、現在のスタンバイ・マスター(master1)への更新のレプリケートを停止するように指示します。たとえば、ホストmaster1hostのスタンバイ・マスター・データベースmaster1へのレプリケートを停止するには、次のようにします。

    call ttRepStateSave( 'FAILED', 'master1', 'master1host' );
    
  13. ttDestroyユーティリティを次のように使用して、前のアクティブ・マスター・データベースを破棄します。

    ttDestroy master1
    
  14. 新しいリリースの新しいインストール環境および新しいインスタンスをmaster1hostに作成します。詳細は、「Linux/UNIXでのインストール環境の作成」および「Linux/UNIXでのインスタンスの作成: 基本」を参照してください。

  15. ttRepAdminユーティリティを使用して、新しいスタンバイ・マスター・データベースを複製することによって、新しいスタンバイ・マスター・データベースを作成します。たとえば、master2hostホスト上のmaster2データベースをmaster1データベースに複製するには、master1データベースを含むホストで次のように実行します。

    ttRepAdmin -duplicate -from master2 -host master2host -uid pat -pwd patpwd
     -setMasterRepStart master1
    
  16. ttRepStart組込みプロシージャまたはttAdminユーティリティを使用して新しいスタンバイ・マスター・データベースのレプリケーション・エージェントを開始します。

    ttAdmin -repStart master1
    
  17. ttRepStop組込みプロシージャまたはttAdminユーティリティを使用して、最初のサブスクライバ・データベースのレプリケーション・エージェントを停止します。たとえば、サブスクライバ・データベースsubscriber1のレプリケーション・エージェントを停止するには、次のコマンドを使用します。

    ttAdmin -repStop subscriber1
    
  18. ttDestroyユーティリティを使用して、サブスクライバ・データベースを破棄します。

    ttDestroy subscriber1
    
  19. 新しいリリースの新しいインストール環境および新しいインスタンスをサブスクライバ・ホストに作成します。詳細は、「Linux/UNIXでのインストール環境の作成」および「Linux/UNIXでのインスタンスの作成: 基本」を参照してください。

  20. ttRepAdminユーティリティを使用して、新しいスタンバイ・マスター・データベースを複製することによってサブスクライバ・データベースを作成します。

    ttRepAdmin -duplicate -from master1 -host master1host -uid pat -pwd patpwd
     -setMasterRepStart subscriber1
    
  21. ttRepStart組込みプロシージャまたはttAdminユーティリティを使用して、複製したサブスクライバ・データベースのレプリケーション・エージェントを開始します。

    ttAdmin -repStart subscriber1
    
  22. 他の各サブスクライバ・データベースで、ステップ17からステップ21を繰り返します。

キャッシュ・グループが構成されているアクティブ・スタンバイ・ペアのオンライン・アップグレード

この項では、アクティブ・スタンバイ・ペアおよびキャッシュ・グループを使用したシナリオにおけるオンライン・パッチ・アップグレードについて説明します。

概要、制限および要件については、「クラシック・レプリケーションを使用したオンライン・アップグレードの実行」も参照してください。

スタンバイ・マスターおよびサブスクライバ(キャッシュ・グループ)のオンライン・パッチ・アップグレード

スタンバイ・マスター・データベースおよびサブスクライバ・データベースの新しいパッチ・リリースへのオンライン・アップグレードを実行するには、キャッシュ・グループを使用した構成で、各データベースで次のタスクを実行します(例外については説明を参照)。

  1. ttRepStop組込みプロシージャまたはttAdminユーティリティを使用して、データベースのレプリケーション・エージェントを停止します。たとえば、スタンバイ・データベースmaster2のレプリケーション・エージェントを停止するには、次のようにします。

    ttAdmin -repStop master2
    
  2. ttCacheStop組込みプロシージャまたはttAdminユーティリティを使用して、スタンバイ・データベースのキャッシュ・エージェントを停止します。

    ttAdmin -cacheStop master2
    
  3. 新しいリリースの新しいインストール環境および新しいインスタンスを作成します。詳細は、「Linux/UNIXでのインストール環境の作成」および「Linux/UNIXでのインスタンスの作成: 基本」を参照してください。

  4. ttCacheStart組込みプロシージャまたはttAdminユーティリティを使用して、スタンバイ・データベースのキャッシュ・エージェントを再開します。

    ttAdmin -cacheStart master2
    
  5. ttRepStart組込みプロシージャまたはttAdminユーティリティを使用して、レプリケーション・エージェントを再開します。

    ttAdmin -repStart master2
    

ノート:

ステップ2およびステップ4のキャッシュ・エージェントの停止および再起動は、サブスクライバ・データベースには適用できません。

アクティブ・マスター(キャッシュ・グループ)のオンライン・パッチ・アップグレード

アクティブ・マスター・データベースの新しいパッチ・リリースへのオンライン・アップグレードを実行するには、キャッシュ・グループを使用した構成で、各データベースで次のステップを実行します。最初に、アクティブ・マスター・データベースとスタンバイ・マスター・データベースの役割を逆にしてから、アップグレードを行う必要があります。

  1. アクティブ・マスター・データベースで更新を生成しているすべてのアプリケーションを一時停止します。

  2. ttCacheStop組込みプロシージャまたはttAdminユーティリティを使用して、現行のアクティブ・マスター・データベースのキャッシュ・エージェントを停止します。

    ttAdmin -cacheStop master1
    
  3. スタンバイ・マスター・データベースのDSNおよびホストを使用して、アクティブ・マスター・データベースのttRepSubscriberWait組込みプロシージャを実行します。たとえば、すべてのトランザクションがホストmaster2hostのスタンバイ・マスターmaster2にレプリケートされるようにするには、次のようにします。

    call ttRepSubscriberWait( null, null, 'master2', 'master2host', 120 );
    
  4. ttRepStop組込みプロシージャまたはttAdminユーティリティを使用して、現行のアクティブ・マスター・データベースのレプリケーション・エージェントを停止します。たとえば、アクティブ・マスター・データベースmaster1のレプリケーション・エージェントを停止するには、次のようにします。

    ttAdmin -repStop master1
    
  5. 現行のアクティブ・マスター・データベースでttRepDeactivate組込みプロシージャを実行します。これによって、データベースがIDLE状態になります。

    call ttRepDeactivate;
    
  6. スタンバイ・マスター・データベースで、ttRepStateSet組込みプロシージャを使用して、データベースをACTIVE状態に設定します。このデータベースがアクティブ・スタンバイ・ペアのアクティブ・マスターになります。

    call ttRepStateSet( 'ACTIVE' );
    
  7. ステップ1で一時停止したアプリケーションを再開し、現在アクティブ・マスターとして動作しているデータベース(この例では、master2データベース)に接続します。

  8. 前のアクティブ・マスター・データベース(今のスタンバイ・マスター・データベース)のインスタンスをアップグレードします。詳細は、「オフライン・アップグレード: 別のパッチまたはパッチ・セットへの移動: ttInstanceModify」を参照してください。

  9. ttCacheStart組込みプロシージャまたはttAdminユーティリティを使用して、アップグレード後のデータベースのキャッシュ・エージェントを再開します。

    ttAdmin -cacheStart master1
    
  10. ttRepStart組込みプロシージャまたはttAdminユーティリティを使用して、アップグレード後のデータベースのレプリケーションを再開します。

    ttAdmin -repStart master1
    
  11. アップグレード後のデータベースを再びアクティブ・マスター・データベースにするには、Oracle TimesTen In-Memory Databaseレプリケーション・ガイドのアクティブ・データベースとスタンバイ・データベースの役割の入替えに関する説明を参照してください。

アクティブ・スタンバイ・ペアのオンライン・メジャー・アップグレード(読取り専用キャッシュ・グループ)

読取り専用キャッシュ・グループを使用したアクティブ・スタンバイ・ペアのシナリオで、リリース11.2.2からリリース18.1へのメジャー・アップグレードを実行するには、次のステップを実行します。

このステップでは、master1master1hostホスト上のアクティブ・マスター・データベースであり、master2master2hostホスト上のスタンバイ・マスター・データベースであることを想定しています。


ノート:

ここで述べている組込みプロシージャおよびユーティリティの詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』の「組込みプロシージャ」および「ユーティリティ」を参照してください。

  1. アクティブ・マスター・ホストでttAdminユーティリティを実行し、アクティブ・マスター・データベースのレプリケーション・エージェントを停止します。

    ttAdmin -repStop master1
    
  2. アクティブ・マスター・データベースでDROP ACTIVE STANDBY PAIR文を使用し、アクティブ・スタンバイ・ペアを削除します。たとえば、ttIsqlユーティリティから次のようにします。

    Command> DROP ACTIVE STANDBY PAIR;
    
  3. アクティブ・マスター・データベースでCREATE ACTIVE STANDBY PAIR文を使用し、キャッシュ・グループを除外した新しいアクティブ・スタンバイ・ペアを作成します。各データベースのTCP/IPポートは必ず明示的に指定してください。

    Command> CREATE ACTIVE STANDBY PAIR master1 ON "master1host",
               master2 ON "master2host"
             STORE master1 ON "master1host" PORT 20000
             STORE master2 ON "master2host" PORT 20010
             EXCLUDE CACHE GROUP cacheuser.readcache;
    

    ノート:

    ttIsqlユーティリティでcachegroupsコマンドを使用し、データベースに定義するキャッシュ・グループをすべて指定できます。この例では、readcachecacheuserによって所有されている読取り専用のキャッシュ・グループです。

  4. アクティブ・マスター・データベースでttRepStateSet組込みプロシージャを呼び出し、アクティブ・マスター・データベースのレプリケーション状態をACTIVEに設定します。

    Command> call ttRepStateSet('ACTIVE');
    

    アクティブ・マスター・データベースのレプリケーション状態がACTIVEに設定されていることを確認するには、ttRepStateGet組込みプロシージャを呼び出します。

    Command> call ttRepStateGet();
    < ACTIVE >
    1 row found.
    
  5. アクティブ・マスター・データベースでttRepStart組込みプロシージャを呼び出し、レプリケーション・エージェントを起動します。

    Command> call ttRepStart();
    
  6. スタンバイ・マスター・ホストでttAdminユーティリティを実行し、スタンバイ・マスター・データベースのレプリケーション・エージェントを停止します。

    ttAdmin -repStop master2
    
  7. スタンバイ・マスター・ホストでttAdminユーティリティを実行し、スタンバイ・マスター・データベースのキャッシュ・エージェントを停止します。

    ttAdmin -cacheStop master2
    
  8. スタンバイ・マスター・ホストでttDestroyユーティリティを実行し、スタンバイ・マスター・データベースを破棄します。-forceオプションを追加するか、最初にすべてのキャッシュ・グループを削除する必要があります。

    ttDestroy -force master2
    
  9. ttRepAdminユーティリティで新しいスタンバイ・マスター・データベースを複製することによって、新しいスタンバイ・マスター・データベースを作成します。たとえば、master2データベースのmaster1hostホスト上にあるmaster1データベースを複製するには、master2データベースを含むホストで次のように実行します。

    ttRepAdmin -duplicate -from master1 -host master1host -UID pat -PWD patpwd 
      -keepCG -cacheUid cacheuser -cachePwd cachepwd master2
    

    ノート:

    これを複製するには、アクティブ・マスター・データベースでADMIN権限が定義されているユーザーが必要です。この例では、patpwdパスワードで識別されるpatユーザーが、ADMIN権限を持っています。

    キャッシュ・グループ表を維持するには、-keepCGオプションを追加するときにキャッシュ管理ユーザーが必要です。この例では、cachepwdパスワードで識別されるcacheuserユーザーが、キャッシュ管理ユーザーです。


  10. 新しいスタンバイ・マスター・データベースでDROP CACHE GROUP文を使用し、キャッシュ・グループをすべて削除します。

    Command> DROP CACHE GROUP cacheuser.readcache;
    
  11. スタンバイ・マスター・ホストでttMigrateユーティリティを実行し、スタンバイ・マスター・データベースをバイナリ・ファイルにバックアップします。

    ttMigrate -c master2 master2.bak
    
  12. スタンバイ・マスター・ホストでttDestroyユーティリティを実行し、スタンバイ・マスター・データベースを破棄します。

    ttDestroy master2
    
  13. 新しいリリースの新しいインストール環境および新しいインスタンスをスタンバイ・マスター・ホストに作成します。詳細は、「Linux/UNIXでのインストール環境の作成」および「Linux/UNIXでのインスタンスの作成: 基本」を参照してください。

  14. スタンバイ・マスター・ホスト上の新しいインスタンスで、ttMigrateユーティリティを実行し、前の手順で作成したバイナリ・ファイルからスタンバイ・マスター・データベースをリストアします。

    ttMigrate -r -C 20 master2 master2.bak
    

    ノート:

    この例では、20MB分のデータがリストアされるたびにチェックポイント操作が実行されます。

  15. スタンバイ・マスター・データベースでCREATE USER文を使用し、新しいキャッシュ管理ユーザーを作成します。

    Command> CREATE USER cacheuser2 IDENTIFIED BY cachepwd;
    Command> GRANT CREATE SESSION, CACHE_MANAGER, CREATE ANY TABLE,
             DROP ANY TABLE TO cacheuser2;
    

    ノート:

    新しいキャッシュ管理ユーザーはOracleデータベースに作成し、キャッシュ・グループ操作の実行に必要な最小限の権限をそのユーザーに付与する必要があります。詳細は、『Oracle TimesTen Application-Tier Database Cacheユーザーズ・ガイド』のOracle Databaseでのユーザーの作成に関する説明を参照してください。

  16. キャッシュ管理ユーザーとしてスタンバイ・マスター・データベースに接続し、ttCacheUidPwdSet組込みプロシージャを呼び出して、新しいキャッシュ管理ユーザーの名前とパスワードを設定します。接続文字列内のOraclePWD接続属性で、Oracleデータベースのキャッシュ管理ユーザーのパスワードを必ず指定してください。

    ttIsql "DSN=master2;UID=cacheuser2;PWD=cachepwd;OraclePWD=oracle"
    Command> call ttCacheUidPwdSet('cacheuser2','oracle');
    
  17. スタンバイ・マスター・データベースでttCacheStart組込みプロシージャを呼び出し、キャッシュ・エージェントを起動します。

    Command> call ttCacheStart();
    
  18. スタンバイ・マスター・データベースでttRepStart組込みプロシージャを呼び出し、レプリケーション・エージェントを起動します。

    Command> call ttRepStart();
    

    レプリケーション状態は、自動的にSTANDBYに設定されます。ttRepStateGet組込みプロシージャをコールしてこれを確認できます。(非同期で実行され、少し時間がかかります。)

    Command> call ttRepStateGet();
    < STANDBY >
    1 row found.
    
  19. スタンバイ・マスター・データベースでCREATE READONLY CACHE GROUP文を使用し、読取り専用キャッシュ・グループをすべて作成します。

    Command> CREATE READONLY CACHE GROUP cacheuser2.readcache
             AUTOREFRESH INTERVAL 10 SECONDS
             FROM oratt.readtbl
               (keyval NUMBER NOT NULL PRIMARY KEY, str VARCHAR(32));
    

    ノート:

    キャッシュ管理ユーザーが、Oracleデータベースのキャッシュ・グループ表に対するSELECT権限を持っていることを確認してください。この例でcacheuser2ユーザーは、Oracleデータベースのorattユーザーによって所有されているreadtbl表に対するSELECT権限を持っています。詳細は、『Oracle TimesTen Application-Tier Database Cacheユーザーズ・ガイド』のキャッシュするOracleデータベース表の作成に関する説明を参照してください。

  20. スタンバイ・マスター・データベースでLOAD CACHE GROUP文を使用し、Oracleデータベース表からTimesTenキャッシュ・グループにデータをロードします。

    Command> LOAD CACHE GROUP cacheuser2.readcache
             COMMIT EVERY 200 ROWS;
    
  21. アクティブ・マスター・データベースで更新を生成しているすべてのアプリケーションを一時停止します。

  22. アクティブ・マスター・データベースで、スタンバイ・マスター・データベースのDSNおよびホストを使用して、ttRepSubscriberWait組込みプロシージャを呼び出します。たとえば、すべてのトランザクションをmaster2hostホスト上のmaster2データベースにレプリケートするには、次のようにします。

    Command> call ttRepSubscriberWait(NULL,NULL,'master2','master2host',120);
    
  23. アクティブ・マスター・データベースでttRepStop組込みプロシージャを呼び出し、レプリケーション・エージェントを停止します。

    Command> call ttRepStop();
    
  24. アクティブ・マスター・データベースでttRepDeactivate組込みプロシージャを呼び出し、アクティブ・マスター・データベースのレプリケーション状態をIDLEに設定します。

    Command> call ttRepDeactivate();
    
  25. スタンバイ・マスター・データベースでttRepStateSet組込みプロシージャを呼び出し、スタンバイ・マスター・データベースのレプリケーション状態をACTIVEに設定します。このデータベースとそのホストが、アクティブ・スタンバイ・ペアのレプリケーション・スキームでアクティブ・マスターになります。

    Command> call ttRepStateSet('ACTIVE');
    

    ノート:

    この例では、master2hostホスト上のmaster2データベースが、アクティブ・スタンバイ・ペアのレプリケーション・スキームでアクティブ・マスターになったところです。同様に、master1hostホスト上のmaster1は、これ以降、アクティブ・スタンバイ・ペアのレプリケーション・スキームにおけるスタンバイ・マスターとみなされます。

  26. 新しいアクティブ・マスター・データベースでttRepStop組込みプロシージャを呼び出し、レプリケーション・エージェントを停止します。

    Command> call ttRepStop();
    
  27. アクティブ・マスター・データベースでALTER CACHE GROUP文を使用し、すべてのキャッシュ・グループのAUTOREFRESHモードをPAUSEDに設定します。

    Command> ALTER CACHE GROUP cacheuser2.readcache
             SET AUTOREFRESH STATE PAUSED;
    
  28. アクティブ・マスター・データベースでDROP ACTIVE STANDBY PAIR文を使用し、アクティブ・スタンバイ・ペアを削除します。

    Command> DROP ACTIVE STANDBY PAIR;
    
  29. アクティブ・マスター・データベースでCREATE ACTIVE STANDBY PAIR文を使用し、キャッシュ・グループを含めた新しいアクティブ・スタンバイ・ペアを作成します。各データベースのTCP/IPポートは必ず明示的に指定してください。

    Command> CREATE ACTIVE STANDBY PAIR master1 ON "master1host",
               master2 ON "master2host"
             STORE master1 ON "master1host" PORT 20000
             STORE master2 ON "master2host" PORT 20010;
    
  30. アクティブ・マスター・データベースでttRepStateSet組込みプロシージャを呼び出し、アクティブ・マスター・データベースのレプリケーション状態をACTIVEに設定します。

    Command> call ttRepStateSet('ACTIVE');
    
  31. アクティブ・マスター・データベースでttRepStart組込みプロシージャを呼び出し、レプリケーション・エージェントを起動します。

    Command> call ttRepStart();
    
  32. ステップ21で停止したアプリケーションがあれば再開し、新しいアクティブ・マスター・データベースに接続します。

  33. 新しいスタンバイ・マスター・ホストでttDestroyユーティリティを実行し、新しいスタンバイ・マスター・データベースを破棄します。

    ttDestroy master1
    
  34. 新しいリリースの新しいインストール環境および新しいインスタンスをスタンバイ・マスター・ホストに作成します。詳細は、「Linux/UNIXでのインストール環境の作成」および「Linux/UNIXでのインスタンスの作成: 基本」を参照してください。

  35. ttRepAdminユーティリティで新しいスタンバイ・マスター・データベースを複製することによって、新しいスタンバイ・マスター・データベースを作成します。たとえば、master2hostホスト上のmaster2データベースをmaster1データベースに複製するには、master1データベースを含むホストで次のように実行します。

    ttRepAdmin -duplicate -from master2 -host master2host -UID pat -PWD patpwd 
      -keepCG -cacheUid cacheuser2 -cachePwd cachepwd master1
    
  36. スタンバイ・マスター・ホストでttAdminユーティリティを実行し、スタンバイ・マスター・データベースのキャッシュ・エージェントを起動します。

    ttAdmin -cacheStart master1
    
  37. スタンバイ・マスター・ホストでttAdminユーティリティを実行し、スタンバイ・マスター・データベースのキャッシュ・エージェントを起動します。

    ttAdmin -repStart master1
    

キャッシュ・グループが構成されているアクティブ・スタンバイ・ペアのオフライン・アップグレード

非同期ライトスルー・キャッシュ・グループのあるアクティブ・スタンバイ・ペアのシナリオでメジャー・アップグレードを実行するには、オフライン・アップグレードが必要です。これについては、後の項で説明します。

アクティブ・スタンバイ・ペアのオフライン・メジャー・アップグレード(キャッシュ・グループ)

キャッシュ・グループを使用したアクティブ・スタンバイ・ペアのシナリオで、リリース11.2.2からリリース18.1へのメジャー・アップグレードを実行するには、次のステップを実行します。このアップグレードはオフラインで実行する必要があります。

このステップでは、master1master1hostホスト上のアクティブ・マスター・データベースであり、master2がmaster2hostホスト上のスタンバイ・マスター・データベースであることを想定しています。(説明した組込みプロシージャおよびユーティリティの詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』の「組込みプロシージャ」および「ユーティリティ」を参照してください。)

  1. アップグレード前に、アクティブ・データベースの更新をすべて停止します。

  2. master1から、ttRepSubscriberWait組込みプロシージャをコールし、すべてのデータ更新がスタンバイ・データベースに適用されるようにします。numsecには適切な待機時間を指定します。

    call ttRepSubscriberWait(null, null, 'master2', 'master2host', numsec);
    
  3. master2から、ttRepSubscriberWait組込みプロシージャをコールし、すべてのデータ更新がOracle Databaseに適用されるようにします。

    call ttRepSubscriberWait(null, null, '_ORACLE', null, numsec);
    
  4. master1hostで、ttAdminユーティリティを使用してアクティブ・データベースのレプリケーション・エージェントを停止します。

    ttAdmin -repStop master1
    
  5. master2hostで、ttAdminを使用してスタンバイ・データベースのレプリケーション・エージェントを停止します。

    ttAdmin -repStop master2
    
  6. master1hostで、ttCacheStop組込みプロシージャをコールするか、ttAdminを使用してアクティブ・データベースのキャッシュ・エージェントを停止します。

    ttAdmin -cacheStop master1
    
  7. master2hostで、ttCacheStopをコールするか、ttAdminを使用してスタンバイ・データベースのキャッシュ・エージェントを停止します。

    ttAdmin -cacheStop master2
    
  8. master1hostで、ttMigrateユーティリティを使用して、アクティブ・データベースをバイナリ・ファイルにバックアップします。

    ttMigrate -c master1 master1.bak
    
  9. master1hostで、ttDestroyユーティリティを使用してアクティブ・データベースを破棄します。-forceオプションを使用するか、最初にすべてのキャッシュ・グループを削除する必要があります。-forceを使用する場合は、後でスクリプトcacheCleanup.sqlを実行します。

    ttDestroy -force /data_store_path/master1
    

    cacheCleanup.sqlスクリプトは、キャッシュ・ユーザーとしてOracle Databaseに接続後に実行するSQL*Plusスクリプトで、installation_dir/oraclescriptsディレクトリ(timesten_home/install/oraclescriptsからアクセスできます)にあります。パラメータとして、ホスト名とデータベース名をフルパスを指定します。詳細は、Oracle TimesTen Application-Tier Database Cacheユーザーズ・ガイドの自動リフレッシュ・キャッシュ・グループで使用されるOracle Databaseオブジェクトの削除に関する説明を参照してください。

  10. 新しいメジャー・リリースの新しいインストール環境および新しいインスタンスをmaster1hostに作成します。詳細は、「Linux/UNIXでのインストール環境の作成」および「Linux/UNIXでのインスタンスの作成: 基本」を参照してください。

  11. ttIsqlとDSN接続属性設定AutoCreate=1を使用して、18.1.w.xに新しいデータベースを作成します。この新しいデータベースでキャッシュ・ユーザーを作成します。次の例は、このキャッシュ・ユーザーを作成し、適切なアクセス権を付与するためにttIsqlで実行する一連のコマンドを示しています。

    次のステップのttMigrate -rを実行するには、キャッシュ・ユーザーにはADMIN権限が必要です。移行が完了したら、希望する場合は、このユーザーからADMIN権限を取り消します。

    Command> CREATE USER cacheuser IDENTIFIED BY cachepassword;
    Command> GRANT CREATE SESSION, CACHE_MANAGER, CREATE ANY TABLE, 
             DROP ANY TABLE TO cacheuser;
    Command> GRANT ADMIN TO cacheuser;
    
  12. master1hostの新しいインスタンスで、キャッシュ・ユーザーとしてttMigrateユーティリティを使用して、前に作成したバイナリ・ファイルからmaster1をリストアします。(この例では、20MB分のデータがリストアされるたびにチェックポイント操作が実行されます。Oracle DatabaseでのパスワードはTimesTenと同じとします。)

    ttMigrate -r -cacheuid cacheuser -cachepwd cachepassword -C 20 -connstr
     "DSN=master1;uid=cacheuser;pwd=cachepassword;oraclepwd=cachepassword"
     master1.bak
    
  13. master1hostで、ttAdminを使用してレプリケーション・エージェントを開始します。

    ttAdmin -repStart master1
    

    ノート:

    また、このステップによりデータベースはアクティブ状態になります。ここでttRepStateGet組込みプロシージャ(パラメータなし)をコールして状態を確認できます。

  14. master1hostで、ttCacheStart組込みプロシージャをコールするか、ttAdminを使用してキャッシュ・エージェントを開始します。

    ttAdmin -cacheStart master1
    

    次に、ttStatusユーティリティを使用して、レプリケーションおよびキャッシュ・エージェントが開始されているかを確認できます。

  15. 各自動リフレッシュ・キャッシュ・グループをAUTOREFRESH PAUSED状態にします。この例では、ttIsqlを使用します。

    Command> ALTER CACHE GROUP mycachegroup SET AUTOREFRESH STATE paused;
    
  16. master1から、各キャッシュ・グループを再ロードし、キャッシュ・グループの名前と捜査中のコミットの頻度を指定します。この例では、ttIsqlを使用します。

    Command> LOAD CACHE GROUP cachegroupname COMMIT EVERY n ROWS;
    

    オプションとして、パラレル・ロードも指定できます。詳細は、Oracle TimesTen In-Memory Database SQLリファレンスのLOAD CACHE GROUP SQL文を参照してください。

  17. master2hostで、ttDestroyユーティリティを使用してスタンバイ・データベースを破棄します。-forceオプションを使用するか、最初にすべてのキャッシュ・グループを削除する必要があります。-forceを使用する場合は、前述のように後でスクリプトcacheCleanup.sqlを実行します。

    ttDestroy -force /data_store_path/master2
    
  18. 新しいメジャー・リリースの新しいインストール環境および新しいインスタンスをmaster2hostに作成します。詳細は、「Linux/UNIXでのインストール環境の作成」および「Linux/UNIXでのインスタンスの作成: 基本」を参照してください。

  19. master2hostの新しいインスタンスでttRepAdmin-duplicateオプションで使用し、アクティブ・データベースmaster1の複製を作成してスタンバイ・データベースmaster2として使用します。master1の適切な管理ユーザーを指定し、キャッシュ・マネージャのユーザーとパスワードを指定し、キャッシュ・グループを保持します。

    ttRepAdmin -duplicate -from master1 -host master1host -uid pat -pwd patpwd 
    -cacheUid orcluser -cachePwd orclpwd -keepCG master2
    
  20. master2hostで、ttAdminを使用してレプリケーション・エージェントを開始します。(かわりに、前のステップでttRepAdminオプションの-setMasterRepStartを使用できます。)

    ttAdmin -repStart master2
    
  21. master2で、レプリケーションの状態が自動的にSTANDBYに設定されます。ttRepStateGet組込みプロシージャをコールしてこれを確認できます。(非同期で実行され、少し時間がかかります。)

    call ttRepStateGet();
    
  22. master2hostで、ttCacheStart組込みプロシージャをコールするか、ttAdminを使用してキャッシュ・エージェントを開始します。

    ttAdmin -cacheStart master2
    

    その後、ttStatusユーティリティを使用して、レプリケーションおよびキャッシュ・エージェントが開始されているかを確認できます。

読取り専用のサブスクライバ・データベースを作成する場合は、各サブスクライバ・ホストで、ttRepAdminユーティリティの-duplicateオプションを使用して、スタンバイ・データベースを複製できます。次の例では、読取り専用のサブスクライバに適切なように、キャッシュ表を標準のTimesTen表に変換するため、前述の手順と同じADMINユーザーおよび-nokeepCGオプションを使用して、subscriber1を作成します。

ttRepAdmin -duplicate -from master2 -host master2host -nokeepCG 
-uid pat -pwd patpwd subscriber1

関連情報については、『Oracle TimesTen In-Memory Databaseレプリケーション・ガイド』の障害時リカバリ・サブスクライバのローリング・アウトに関する説明を参照してください。

Oracle Clusterware使用時のTimesTenのオフライン・アップグレードの実行

この項では、Oracle ClusterwareとともにTimesTenを使用する場合のTimesTenのオフライン・アップグレードのステップを説明します。TimesTenのアップグレード中に、Oracle Clusterwareを独立してアップグレードするオプションもあります。(オンライン・アップグレードの詳細は、Oracle Clusterware使用時のTimesTenのオンライン・アップグレードの実行を参照してください。)


ノート:

  • これらの手順は、TimesTenのパッチ・アップグレード(18.1.w.xから18.1.y.z)またはTimesTenのメジャー・アップグレード(11.2.2から18.1)のいずれかに適用されます。

  • TimesTenでサポートされているOracle Clusterwareのバージョンの詳細は、Oracle TimesTen In-Memory Databaseリリース・ノートを参照してください


この手順では、特に記載されている場合を除き、クラスタ内のいずれのホストからでもttCWAdminコマンドを実行できます。各コマンドはすべてのホストに影響します。

  1. アクティブ・スタンバイ・ペアのデータベースでレプリケーション・エージェントを停止します。

    ttCWAdmin -stop -dsn advancedDSN
    
  2. アクティブ・スタンバイ・ペアを削除します。

    ttCWAdmin -drop -dsn advancedDSN
    
  3. TimesTenクラスタ・エージェントを停止します。これによって、クラスタからホストが削除され、TimesTenデーモンが停止します。

    ttCWAdmin -shutdown
    
  4. 目的のホストでTimesTenをアップグレードします。

  5. 必要に応じて、Oracle Clusterwareをアップグレードします。詳細は、Oracle Databaseのドキュメントの『Oracle Clusterware管理およびデプロイメント・ガイド』を参照してください。

  6. Oracle Clusterwareをアップグレード済の場合、ttInstanceModifyユーティリティを使用して、Oracle ClusterwareでTimesTenを構成します。各ホストで次のコマンドを実行します。

    ttInstanceModify -crs
    

    LinuxまたはUNIXホストの場合は、インスタンスのOracle Clusterware構成の変更を参照してください。

  7. TimesTenクラスタ・エージェントを起動します。これには、ttcrsagent.optionsで指定されたクラスタ内で定義されたホストを含みます。これにより、TimesTenデーモンも起動します。

    ttCWAdmin -init
    
  8. アクティブ・スタンバイ・ペアのレプリケーション・スキームを作成します。

    ttCWAdmin -create -dsn advancedDSN
    

    重要: このコマンドを実行するホストからcluster.oracle.iniファイルにアクセスできる必要があります。(このファイルの詳細はOracle TimesTen In-Memory Databaseレプリケーション・ガイドのcluster.oracle.iniファイルによるOracle Clusterware管理の設定に関する説明を参照してください。)

  9. アクティブ・スタンバイ・ペアのレプリケーション・スキームを開始します。

    ttCWAdmin -start -dsn advancedDSN
    

Oracle Clusterware使用時のTimesTenのオンライン・アップグレードの実行

この項では、アクティブ・スタンバイ・ペアがOracle Clusterwareによって管理されている構成で、TimesTenのオンライン・ローリング・アップグレード(パッチ) (TimesTen 18.1.w.xから18.1.y.zへのアップグレード)を実行する方法について説明します。(オフライン・アップグレードの詳細は、Oracle Clusterware使用時のTimesTenのオフライン・アップグレードの実行を参照してください。)

この章では、次の項目について説明します。


ノート:

  • サポートされているOracle Clusterwareのバージョンについては、Oracle TimesTen In-Memory Databaseリリース・ノートを参照してください。


サポートされている構成

TimesTenのオンライン・ローリング・アップグレードでは、次の基本構成がサポートされています。いずれの場合も、Oracle Clusterwareによってホストが管理されます。

  • 2つのホスト上の1つのアクティブ・スタンバイ・ペア。

  • 各ホストに1つのデータベースを備えた複数のアクティブ・スタンバイ・ペア。

  • 各ホストに1つ以上のデータベースを備えた複数のアクティブ・スタンバイ・ペア。

(追加のスペア・ホストを備えたものなど、他のシナリオもこれらのシナリオの1つと事実上同等です。)

制限と前提

Oracle Clusterwareを使用しているときにTimesTenをアップグレードするための次の前提に注意してください。

  • 既存のアクティブ・スタンバイ・ペアは適切に構成され、動作しています。

  • スタンバイ・データベースを停止および起動するためのOracle Clusterwareコマンドは、適切に使用されています。

  • アップグレードを実行しても、アクティブ・データベースおよびスタンバイ・データベース用のTimesTen環境は変化しません。

  • これらの手順はTimesTenのパッチ・アップグレード専用です。Oracle Clusterwareによってアクティブ・スタンバイ・ペアが管理される構成では、オンライン・メジャー・アップグレードはサポートされていません。

  • 少なくとも2つのホストがOracle Clusterwareによって管理されています。

    Oracle Clusterwareによって管理されている複数のアクティブ・データベースまたはスタンバイ・データベースは、クラスタに少なくとも2つのホストがある場合のみホストに存在できます。


重要:

必要に応じてOracle Clusterwareをアップグレードします。ただし、TimesTenのオンライン・アップグレードと同時には実行できません。アクティブ・スタンバイ・ペアがOracle Clusterwareによって管理される構成でTimesTenのオンライン・パッチ・アップグレードを実行する場合は、TimesTenのアップグレードの前または後でClusterwareのアップグレードを個別に実行する必要があります。


ノート:

Oracle Clusterwareインストールの詳細は、Oracle Databaseのドキュメントの『Oracle Clusterware管理およびデプロイメント・ガイド』を参照してください。

1つのアクティブ・スタンバイ・ペア用のアップグレード・タスク

この項では、次の作業について説明します。


ノート:

次の項の例では、ホスト名はhost2、DSNはmyDSN、インスタンス名はupgrade2およびインスタンス管理者はterryです。

アクティブ・スタンバイ・ペアが適切に機能していることの確認

これらのステップを実行して、アクティブ・スタンバイ・ペアが適切に機能していることを確認します。

  1. 次のことを確認します。

    • アクティブ・データベースおよびスタンバイ・データベースでTimesTen 18.1.w.xリリースが実行されます。

    • アクティブ・データベースおよびスタンバイ・データベースは、Oracle Clusterwareによって管理される別々のホストです。

    • レプリケーションが機能しています。

    • アクティブ・スタンバイ・ペアのレプリケーション・スキームにキャッシュ・グループが含まれている場合、次のことが正しくなります。

      • AWTおよびSWTによる書込みは、TimesTenのスタンバイ・データベースからOracle Databaseに対して機能しています。

      • リフレッシュは、Oracle DatabaseからTimesTenのアクティブ・データベースに対して機能しています。

  2. ttCWAdmin -status -dsn yourDSNコマンドを実行して、次のことを確認します。

    • アクティブ・データベースは、スタンバイ・データベースとは違うホストにあります。

    • アクティブ・データベースの状態は'ACTIVE'で、ステータスは'AVAILABLE'です。

    • スタンバイ・データベースの状態は'STANDBY'で、ステータスは'AVAILABLE'です。

  3. アクティブ・データベースでttStatusコマンドを実行して、次のことを確認します。

    • ttCRSactiveserviceおよびttCRSmasterプロセスが実行されています。

    • サブデーモンおよびレプリケーション・エージェントが実行されています。

    • アクティブ・スタンバイ・ペアのレプリケーション・スキームにキャッシュ・グループが含まれている場合、キャッシュ・エージェントは実行されています。

  4. スタンバイ・データベースでttStatusコマンドを実行して、次のことを確認します。

    • ttCRSsubserviceおよびttCRSmasterプロセスが実行されています。

    • サブデーモンおよびレプリケーション・エージェントが実行されています。

    • アクティブ・スタンバイ・ペアのレプリケーション・スキームにキャッシュ・グループが含まれている場合、キャッシュ・エージェントは実行されています。

スタンバイ・データベースの停止

スタンバイ・データベースを停止するには、次のステップを実行します。

  1. 次のようなOracle Clusterwareコマンドを実行して、スタンバイ・データベースのホスト上のOracle Clusterwareマスター・プロセス、デーモン・プロセスおよびエージェント・プロセスの名前を取得します。grep TTコマンドを使用して出力をフィルタ処理することをお薦めします。

    crsctl status resource -n standbyHostName | grep TT
    
  2. Oracle Clusterwareコマンドを実行してスタンバイ・データベースを停止します。Oracle Clusterwareコマンドは、スタンバイ・データベースのマスター・プロセス、インスタンスのデーモン・プロセスおよびインスタンスのエージェント・プロセスを停止します。

    crsctl stop resource TT_Master_upgrade2_terry_myDSN_1
    crsctl stop resource TT_Daemon_upgrade2_terry_host2
    crsctl stop resource TT_Agent_upgrade2_terry_host2
    
  3. TimesTenメイン・デーモンを停止します。

    ttDaemonAdmin -stop
    

    ttDaemonAdmin -stopコマンドでエラー10028が発生する場合は、コマンドを再試行してください。

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

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

  1. 新しいインストール環境を作成します。詳細は、Linux/UNIXでのインストール環境の作成を参照してください。

  2. インスタンスが新しいインストール環境を指すようにします。詳細は、別のインストール環境とのインスタンスの関連付け(アップグレードまたはダウングレード)を参照してください。

  3. Oracle Clusterware用の新しいインストールを構成します。

スタンバイ・データベースを起動します。

スタンバイ・データベースを起動するには、次のステップを実行します。

  1. 次のttCWAdminコマンドを実行して、TimesTenメイン・デーモン、TimesTen Oracle Clusterwareエージェント・プロセスおよびTimesTen Oracle Clusterwareデーモン・プロセスを起動します。

    ttCWAdmin -init -hosts localhost
    
  2. スタンバイ・データベースのOracle Clusterwareマスター・プロセスを起動します。

    crsctl start resource TT_Master_upgrade2_terry_MYDSN_1
    

アクティブ・データベースとスタンバイ・データベースのロールの切替え

ttCWAdmin -switchコマンドを使用して、アクティブデータベースとスタンバイデータベースのロールを切り替えて、他のマスター・データベースのオフライン・アップグレードを有効にします。

ttCWAdmin -switch -dsn myDSN

次のタスクを起動する前に、ttCWAdmin -statusコマンドを使用して、切替え操作が完了したことを確認します。

新しいスタンバイ・データベースの停止

Oracle Clusterware crsctl status resourceコマンドを使用して、新しいスタンバイ・データベースのホスト上のマスター・プロセス、デーモン・プロセスおよびエージェント・プロセスの名前を取得します。この例では、ホストhost1を想定し、grep TTにより出力をフィルタします。

crsctl status resource -n host1 | grep TT

スタンバイ・データベースの停止で説明されているコマンドなどを実行し、適切なインスタンス名、インスタンス管理者、DSNおよびホスト名を使用します。例:

crsctl stop resource TT_Master_upgrade2_terry_MYDSN_0
crsctl stop resource TT_Daemon_upgrade2_terry_host1
crsctl stop resource TT_Agent_upgrade2_terry_host1
ttDaemonAdmin -stop

新しいスタンバイ・データベースのアップグレードの実行

ステップについては、「スタンバイ・データベースのアップグレードの実行」を参照してください。

新しいスタンバイ・データベースの起動

「スタンバイ・データベースの開始」を参照してください。前述の「新しいスタンバイ・データベースの停止」に記載のcrsctl status resourceコマンドで取得したマスター・プロセス名を使用します。

ttCWAdmin -init -hosts localhost
crsctl start resource TT_Master_upgrade2_terry_MYDSN_0

数多くのホストのペアでの複数アクティブ・スタンバイ・ペアのアップグレード

複数のホストのペアの複数のアクティブ・スタンバイ・ペアのインスタンスをアップグレードする手順は、2つのホストの単一のアクティブ・スタンバイ・ペアのインスタンスをアップグレードする手順と基本的に同じです。詳細は、1つのアクティブ・スタンバイ・ペアのアップグレード・タスクを参照してください。アクティブ・スタンバイ・ペアのアップグレードを一度に実行するのがベスト・プラクティスです。

ttCWAdmin -statusコマンドを使用して、Oracle Clusterwareによって管理されているデータベースの状態を調べます。

1つのホスト・ペアでの複数アクティブ・スタンバイ・ペアのアップグレード

複数のアクティブ・スタンバイ・ペアは、ホストの複数のペア上で構成できます。詳細は、数多くのホストのペアでの複数アクティブ・スタンバイ・ペアのアップグレードを参照してください。または、複数のアクティブ・スタンバイ・ペアはホストの1つのペア上で構成できます。1つのシナリオとして、すべてのアクティブ・データベースを1つのホストで稼働させ、すべてのスタンバイ・データベースを別のホストで稼働させることができます。より典型的なシナリオでは、ワークロードのバランスを向上させるため、各ホストで複数のアクティブ・データベースとスタンバイ・データベースを稼働させることができます。

図6-1に、Oracle Clusterwareによって管理されている2つのホスト上の2つのアクティブ・スタンバイ・ペアを示します。host1上のactive1というアクティブ・データベースは、host2上のstandby1にレプリケートされます。host2上のactive2というアクティブ・データベースは、host1上のstandby2にレプリケートされます。両方のスタンバイ・データベースからのAWT更新は、Oracle Databaseに伝播されます。Oracle Databaseからの読取り専用の更新は、アクティブ・データベースに伝播されます。

図6-1 2つのホスト上の複数のアクティブ・スタンバイ・ペア

図6-1の説明が続きます
「図6-1 2つのホスト上の複数のアクティブ・スタンバイ・ペア」の説明

この構成の場合、キャッシュ・グループ用の書込みスループットが増え、リソースの使用のバランスが向上することがあります。この種類の構成において、sys.odbc.iniのエントリ例およびcluster.oracle.iniファイルの例については、次の項「構成ファイルの例: ホストの1つのペア上の複数のアクティブ・スタンバイ・ペア」を参照してください。(このファイルの詳細は、Oracle TimesTen In-Memory Databaseレプリケーション・ガイドのcluster.oracle.iniファイルによるOracle Clusterware管理の設定に関する説明を参照してください。)

1つのホストのペアの複数のアクティブ・スタンバイ・ペアをローリング・アップグレードする手順は、複数のホストのペアの複数のアクティブ・スタンバイ・ペアをアップグレードする手順と同様です。詳細は、数多くのホストのペアでの複数アクティブ・スタンバイ・ペアのアップグレードを参照してください。

ただし、アクティブ・データベースとスタンバイ・データベースが2つのホストで混在している場合は、最初にすべてのスタンバイ・データベースを1つのホストに切り替え、すべてのアクティブ・データベースをもう1つのホストに切り替えます。ttCWAdmin -switch -dsn DSNコマンドを使用して、ホスト間のアクティブ・データベースとスタンバイ・データベースを切り替えます。すべてのアクティブ・データベースが1つのホストに切り替わり、すべてのスタンバイ・データベースがもう1つのホストに切り替わると、「スタンバイ」ホスト全体をアップグレードするために次のステップを実行します。

アップグレードは、インスタンス全体と、1つのホスト上にある関連のデータベースに影響を及ぼすことに注意してください。

  1. スタンバイ・データベースが目的のホストで実行されることを確認します。ttCWAdmin -status -dsn DSNコマンドおよびttCWAdmin -statusコマンドを使用します。

  2. Oracle Clusterware stopコマンドを変更して、すべてのスタンバイ・データベースがあるホスト上のすべてのマスター・プロセスを停止します。

  3. Oracle Clusterware startコマンドを変更して、すべてのスタンバイ・データベースがあるホスト上のすべてのマスター・プロセスを起動します。

次の項では、関連した例について説明します。

構成ファイルの例: 1つのホストのペア上の複数アクティブ・スタンバイ・ペア

次にsys.odbc.iniエントリの例を示します。

[databasea]
Driver=timesten_home/install/lib/libtten.so
DataStore=/scratch/terry/ds/databasea
PermSize=400
TempSize=320
DatabaseCharacterSet=WE8MSWIN1252
OracleNetServiceName=ORCL
 
[databaseb]
Driver=timesten_home/install/lib/libtten.so
DataStore=/scratch/terry/ds/databaseb
PermSize=400
TempSize=320
DatabaseCharacterSet=WE8MSWIN1252
OracleNetServiceName=ORCL

[databasec]
Driver=timesten_home/install/lib/libtten.so
DataStore=/scratch/terry/ds/databasec
PermSize=400
TempSize=320
DatabaseCharacterSet=WE8MSWIN1252
OracleNetServiceName=ORCL

[databased]
Driver=timesten_home/install/lib/libtten.so
DataStore=/scratch/terry/ds/databased
PermSize=400
TempSize=320
DatabaseCharacterSet=WE8MSWIN1252
OracleNetServiceName=ORCL

次に、cluster.oracle.iniファイルの例を示します。

[databasea]
MasterHosts=host1,host2
CacheConnect=Y
 
[databaseb]
MasterHosts=host2,host1
CacheConnect=Y
 
[databasec]
MasterHosts=host2,host1
CacheConnect=Y
 
[databased]
MasterHosts=host1,host2
CacheConnect=Y

cluster.oracle.iniファイルは、1つのアクティブ・データベースおよび1つのスタンバイ・データベースを各ホストに配置します。これを行うには、MasterHost属性に指定されているホスト名の順序を反転させます。

スクリプトの例: 1つのホスト上の複数のスタンバイ・プロセスの停止および起動

次のようなOracle Clusterwareコマンドを実行して、スタンバイ・データベースのホスト上のOracle Clusterwareマスター・プロセス、デーモン・プロセスおよびエージェント・プロセスの名前を取得します。grep TTを使用して出力をフィルタ処理することをお薦めします。

crsctl status resource -n standbyHostName | grep TT

次のスクリプトは、Oracle Clusterwareが管理する同じホスト上の複数のデータベース用のスタンバイの停止スクリプトの例です。インスタンス名はupgrade2です。インスタンス管理者はterryです。ホストはhost2です。databaseadatabasebという2つのスタンバイ・データベースがあります。

crsctl stop resource TT_Master_upgrade2_terry_DATABASEA_0
crsctl stop resource TT_Master_upgrade2_terry_DATABASEB_1
crsctl stop resource TT_Daemon_upgrade2_terry_HOST2
crsctl stop resource TT_Agent_upgrade2_terry_HOST2
ttDaemonAdmin -stop

次のスクリプトは、同じ構成向けのスタンバイの開始スクリプトの例です。

ttCWAdmin -init -hosts localhost
crs start resource TT_Master_upgrade2_terry_DATABASEA_0
crs start resource TT_Master_upgrade2_terry_DATABASEB_1

パラレル・レプリケーション使用時のアップグレード

自動パラレル・レプリケーションがデフォルトで有効化されます(TimesTenリリース11.2.2.2.0以上)。以前のリリースでは、ユーザー定義のレプリケーションは使用できましたが、自動パラレル・レプリケーションは使用できませんでした。リリース11.2.2.8.0のTimesTenでは、コミット依存性を無効にした自動パラレル・レプリケーションが最初に利用可能になりました。TimesTenリリース18.1.4.1.0では、ユーザー定義のレプリケーションは使用できませんが、両方の自動パラレル・レプリケーション・オプション(コミット依存性を無効化または有効化)を使用できます。


ノート:

『Oracle TimesTen In-Memory Databaseリファレンス』のReplicationApplyOrdering属性の値は変更されています。リリース11.2.2.2.0以上では、値0によって自動パラレル・レプリケーションが有効化されます。11.2.2.2.0よりも前のリリースでは、値0によってユーザー定義のパラレル・レプリケーションを無効化します。リリース11.2.2.8.0以上では、値に2を指定すると、コミット依存性を無効にして自動パラレル・レプリケーションを有効にすることができます。18.1リリースでは、ユーザー定義のパラレル・レプリケーション(値1を設定)はサポートされていません。

パラレル・レプリケーションが有効でないデータベースから、パラレル・レプリケーションが有効なこのリリースのデータベースに、オンラインまたはオフラインのアップグレードを実行できます(コミット依存性は有効または無効)。

ここからは、オフライン・アップグレードが必要となるシナリオとともに、追加の考慮事項を説明します。

パラレル・レプリケーションに関する考慮事項

パラレル・レプリケーションを使用するホストをアップグレードする際は、次の考慮事項に留意してください。

  • パラレル・レプリケーションを有効にしないアクティブ・スタンバイ・ペアを考慮します。インスタンスをリリース18.1にアップグレードして自動パラレル・レプリケーションを使用するには(ReplicationApplyOrdering属性のデフォルト値は0)、アクティブ・スタンバイ・ペアをアップグレードする適切な手順を実行します。詳細は、「アクティブ・スタンバイ・ペア・レプリケーションを使用したアップグレードの実行」を参照してください。

  • キャッシュ・グループがなく、自動パラレル・レプリケーションが有効なアクティブ・スタンバイ・ペア(ReplicationApplyOrderingの属性で値が0)を考えてみます。インスタンスをリリース18.1にアップグレードし、コミット依存性を無効にして自動パラレル・レプリケーションを使用する(ReplicationApplyOrdering属性の値が2)には、アクティブ・スタンバイ・ペアをオンライン・メジャー・アップグレードする手順を実行します。詳細は、「アクティブ・スタンバイ・ペアのオンライン・メジャー・アップグレード」を参照してください。データベースをリストアする前に、ReplicationApplyOrdering属性の値は0から2に変更する必要があります。例:

    ttMigrate -r "DSN=master2;ReplicationApplyOrdering=2;ReplicationParallelism=2;
      LogBufParallelism=4" master2.bak
    

    ノート:

    同じアクティブ・スタンバイ・ペアのオンライン・メジャー・アップグレード手順を使用すれば、ReplicationApplyOrdering=2のレプリケーション・スキームを持つデータベースを、ReplicationApplyOrdering=0のデータベースにアップグレードできます。

    コミット依存性を無効にした自動パラレル・レプリケーションでは、キャッシュ・グループなしの非同期アクティブ・スタンバイ・ペアのみがサポートされます。詳細は、『Oracle TimesTen In-Memory Databaseレプリケーション・ガイド』のパラレル・レプリケーションの構成に関する説明を参照してください。


  • ReplicationParallelism属性が1よりも大く、ReplicationApplyOrdering属性の値が異なるデータベース同士ではレプリケートできません。

オフライン・アップグレードが必要なシナリオ

次のシナリオの場合、オフライン・アップグレードを使用する必要があります。

  • ユーザー定義のパラレル・レプリケーションから自動パラレル・レプリケーションへ移行する場合。たとえば、11.2.2.3.0よりも前のリリースから、ReplicationApplyOrdering属性をデフォルト値(0)に設定したリリース18.1への場合。ユーザー定義のパラレル・レプリケーションは、リリース18.1.4.1.0ではサポートされていません。

  • 自動パラレル・レプリケーション環境から、ReplicationParallelism属性の値によって示されるように異なるトラック数を持つ別の自動パラレル・レプリケーション環境へ移行する場合。

  • メジャー・リリース間(11.2.2から18.1)の移行で、非同期ライトスルー・キャッシュ・グループを使用。

  • 11.2.2における非同期ライトスルーの通常のレプリケーションから、18.1の非同期ライトスルーの自動パラレル・レプリケーションへ移行する場合。

オフライン・アップグレードでは、「オフライン・アップグレード: 別のメジャー・リリースへの移動」で説明されている手順を使用できます。あるいは、一方をアップグレードし、ttRepAdmin -duplicate -recreateコマンドを使用して新規データベースを作成できます。

クライアント・インスタンスのアップグレードの実行

完全インスタンスでデータベースにアクセスするために使用されているクライアント・インスタンスをアップグレードできます。インスタンスの詳細は、「インストール環境およびインスタンスの概要」および「TimesTenインスタンス」を参照してください。クライアント/サーバーの詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のTimesTenクライアント/サーバーの概要に関する項を参照してください。

アップグレードを実行するには、次のステップに従います。

  1. オプション: このステップは、TimesTenクライアントのリリース情報の識別および検証に役立つ情報を提供することを目的として用意されています。

    クライアント・インスタンスでttVersionユーティリティを実行し、クライアントのリリースとクライアント・インスタンスを確認します。この例では、クライアント・インスタンスでttVersionを実行すると、クライアントのリリースが18.1.4.1.0で、クライアント・インスタンスがinstance_1814_clientになります。

    % ttVersion
    TimesTen Release 18.1.4.1.0 (64 bit Linux/x86_64) (instance_1814_client)
    2020-06-29T23:22:07Z
      Instance home directory: /scratch/instance_1814_client
      Group owner: g900
    
  2. オプション: このステップは、database1_1814データベースへのクライアント接続を確立して表示するための情報を提供することを目的として用意されています。クライアント・インスタンスで、ttIsqlCSを実行して(サーバー上の)完全インスタンスのdatabase1_1814データベースに接続します。TCP_PORTが指定されていないことに注意してください。デフォルト値が前提とされています。

    % ttIsqlCS -connstr "TTC_SERVER=server.mycompany.com;
    TTC_SERVER_DSN=database1_1814";
     
    Copyright (c) 1996, 2020, Oracle and/or its affiliates. All rights reserved.
    Type ? or "help" for help, type "exit" to quit ttIsql.
     
     
     
    connect "TTC_SERVER=server.mycompany.com;TTC_SERVER_DSN=database1_1814";
    Connection successful: DSN=;TTC_SERVER=server.mycompany.com;
    TTC_SERVER_DSN=database1_1814;
    ...
    (Default setting AutoCommit=1)
    
  3. クライアント・インスタンスを使用しているすべてのアプリケーションを停止します。この例では、クライアント・インスタンスで最初にttIsqlCSを実行してdatabase1_1814データベースに接続してから、ttIsqlCSを終了します。

    % ttIsqlCS -connstr "TTC_SERVER=server.mycompany.com;
    TTC_SERVER_DSN=database1_1814";
     
    Copyright (c) 1996, 2020, Oracle and/or its affiliates. All rights reserved.
    Type ? or "help" for help, type "exit" to quit ttIsql.
     
     
     
    connect "TTC_SERVER=server.mycompany.com;TTC_SERVER_DSN=database1_1814";
    Connection successful: DSN=;TTC_SERVER=server.mycompany.com;
    TTC_SERVER_DSN=database1_1814;
    ...
    (Default setting AutoCommit=1)
    Command> exit
    Disconnecting...
    Done.
    
  4. 新しい場所に新しいクライアント・インストール環境を作成します。たとえば、clientinstall_newインストール・ディレクトリを作成します。次に、新しいリリースのzipファイルをそのディレクトリに解凍します。たとえば、Linux 64ビットで18.1.4.1.0インストール環境を作成するには、timesten181410.server.linux8664.zipclientinstall_newディレクトリに解凍します。(Linux 64ビットには、1つのディストリビューションのみがあります。このディストリビューションには、サーバーとクライアントのインストール環境が含まれています。)

    % mkdir clientinstall_new
    % cd clientinstall_new
    % unzip /swdir/TimesTen/ttinstallers/timesten181410.server.linux8664.zip
    [...UNZIP OUTPUT...]
    

    詳細は、「TimesTenのインストール」を参照してください。

  5. 新しいインストール環境を指すようにクライアント・インスタンスを変更します。このためには、クライアント・インスタンスの$TIMESTEN_HOME/binディレクトリから、-installオプションを指定してttInstanceModifyユーティリティを実行します。

    この例では、/clientinstall_new/tt18.1.4.1.0内のインストール環境をクライアント・インスタンスが指すようにします。

    % $TIMESTEN_HOME/bin/ttInstanceModify -install 
     /clientinstall_new/tt18.1.4.1.0
     
    Instance Info (UPDATED)
    -----------------------
     
    Name:           instance_1814_client
    Version:        18.1.4.1.0
    Location:       /scratch/instance_1814_client
    Installation:   /clientinstall_new/tt18.1.4.1.0
     
    * Client-Only Installation
     
     
    The instance instance_1814_client now points to the installation in 
    clientinstall_new/tt18.1.4.1.0
    
  6. オプション: クライアント・インスタンスでttVersionユーティリティを実行し、クライアントのリリースが18.1.4.1.0であることを確認します。

    % ttVersion
    TimesTen Release 18.1.4.1.0 (64 bit Linux/x86_64) (instance_1814_client) 2020-06-28T22:37:51Z
      Instance home directory: /scratch/instance_1814_client
      Group owner: g900
    
  7. クライアント・インスタンスを使用するアプリケーションを再起動します。

    この例では、クライアント・インスタンスで最初にttIsqlCSを実行して完全インスタンス内のdatabase1_1814データベースに接続します。

    % ttIsqlCS -connstr "TTC_SERVER=server.mycompany.com;
    TTC_SERVER_DSN=database1_1814";
     
    Copyright (c) 1996, 2020, Oracle and/or its affiliates. All rights reserved.
    Type ? or "help" for help, type "exit" to quit ttIsql.
     
     
     
    connect "TTC_SERVER=server.mycompany.com;TTC_SERVER_DSN=database1_1814";
    Connection successful: DSN=;TTC_SERVER=server.mycompany.com;
    TTC_SERVER_DSN=database1_1814;
    ...
    (Default setting AutoCommit=1)
    
  8. オプション: 以前のリリースのインストール環境(クライアントで使用)を削除します。

    % chmod -R 750 installation_dir/tt18.1.3.5.0
    % rm -rf installation_dir/tt18.1.3.5.0