高速パッチ・アップグレードの実行について

大規模なデータベースがあり、重要な稼働時間要件と短いメンテナンス期間の両方がある場合、高速パッチ・アップグレードを実行することを検討してください。高速パッチ・アップグレード中、データベースの停止時に実行される静的チェックポイント操作はオプションであり、サブデーモンの切断後に共有メモリー・セグメントが保持されます。データベースが起動すると、チェックポイント操作は実行されず、新しいサブデーモンがこの保持されている共有メモリー・セグメントに接続します。これにより、特にデータベースが大きい場合、データベースのメモリー操作へのロードとチェックポイント操作の両方をスキップすることで、インスタンスのアップグレードにかかる時間が短縮されます。

高速パッチ・アップグレードを使用するには、データベースのramPolicyenduringに設定する必要があります。これにより、サブデーモンが切断した後、データベース・イメージがメモリーに保持されます。RAMポリシーの設定の詳細は、Oracle TimesTen In-Memory Databaseオペレーション・ガイドRAMポリシーの指定を参照してください。

TimesTen共有メモリー・セグメントのサイズは、高速パッチ・アップグレードの前後で同じままである必要があります。TimesTenのttShmSizeユーティリティは、共有メモリー・セグメントのサイズを計算するために提供されています。インスタンスをアップグレードする前にこのユーティリティを実行し、インスタンスのアップグレード後に再度実行して、アップグレード後に共有メモリー・セグメントのサイズが変更されていないことを確認します。また、アップグレード後にPermSizeTempSizeLogBufMBおよびConnections接続属性を変更しないでください。これらの属性は、共有メモリー・セグメントのサイズに影響します。

ttShmSizeユーティリティおよびTimesTen接続属性の詳細は、Oracle TimesTen In-Memory DatabaseリファレンスttShmSizeおよび接続属性を参照してください。

新しいインストール環境のダウンロードと作成

TimesTenの新しいパッチ・リリースにアップグレードするには、最初に新しいインストール環境を作成する必要があります。

  1. TimesTenの新しい完全ディストリビューションをダウンロードして解凍するサブディレクトリを作成します。このディレクトリに移動し、新しい完全ディストリビューションをこのディレクトリにダウンロードします。次に、ZIPユーティリティを使用してこのディストリビューションを解凍します。この例では、new_installation_dirサブディレクトリを作成し、timesten2211300.server.linux8664.zipファイルを解凍します。timesten2211300.server.linux8664.zipファイルを解凍すると、このパッチ・アップグレードに使用される新しいインストール環境が作成されます。
    % mkdir -p new_installation_dir
    % cd new_installation_dir

    完全ディストリビューションをnew_installation_dirサブディレクトリにダウンロードします。次に、ZIPユーティリティを使用してディストリビューションを解凍します。

    % unzip /timesten/installations/timesten2211300.server.linux8664.zip
    Archive:  /timesten/installations/timesten2211300.server.linux8664.zip
       creating: tt22.1.1.30.0/
    ...
  2. オプション: 新しいインストール環境のbinサブディレクトリ(この例ではnew_installation_dir/bin)にあるttInstallationCheckユーティリティを使用して、インストールが成功したことを確認します。
    % new_installation_dir/tt22.1.1.30.0/bin/ttInstallationCheck
    This installation has been verified.
    
  3. オプション: サブディレクトリが完全インストール・ディレクトリの下に作成されていることを確認します。これらのサブディレクトリは、リリースごとに変わる可能性があります。
    % ls new_installation_dir/tt22.1.1.30.0
    3rdparty     bin      info        network        plsql    ttoracle_home
    PERL         grid     kubernetes  nls            startup
    README.html  include  lib         oraclescripts  support
    
新しいインストール環境が正常に作成されました。

共有メモリー・セグメントからサブデーモンをデタッチする準備

現在のリリースのTimesTen(この例では22.1.1.29.0)で作成されたインスタンスで、これらの操作を実行します。

  1. オプション: ttVersionユーティリティを実行して、現在のTimesTenリリースを確認します(この例では22.1.1.29.0)。
    % ttVersion
    TimesTen Release 22.1.1.1.0 (64 bit Linux/x86_64) (myinstance:6624) 2021-09-16T07:41:05Z
      Instance admin: instanceadmin
      Instance home directory: /scratch/ttuser/myinstance
      Group owner: g900
      Daemon home directory: /scratch/ttuser/myinstance/info
      PL/SQL enabled.
    
  2. ttStatusユーティリティを実行して、データベースがユーザー接続に対してオープンしているかどうか、およびデータベースへの接続があるかどうかを確認します(この例ではdatabase1)。この例では、database1データベースがオープンしており、データベースへの接続が2つあります。
    % ttStatus
    TimesTen status report as of Fri Sep 24 05:46:05 2021
    
    Daemon pid 21031 port 6624 instance myinstance
    TimesTen server pid 21039 started on port 6625
    ------------------------------------------------------------------------
    ------------------------------------------------------------------------
    Data store /scratch/ttuser/database1
    Daemon pid 21031 port 6624 instance myinstance
    TimesTen server pid 21039 started on port 6625
    There are 14 connections to the data store
    Shared Memory Key 0x0b100699 ID 547979276
    PL/SQL Memory Key 0x0a100699 ID 547946502 Address 0x5000000000
    Type            PID     Context             Connection Name              ConnID
    Process         15076   0x0000000001f09990  database1                         1
    Process         15076   0x00000000020272b0  conn2                             2
    Subdaemon       21036   0x0000000000f3c260  Manager                        2047
    Subdaemon       21036   0x0000000000fbdbc0  Rollback                       2046
    Subdaemon       21036   0x000000000103cf40  XactId Rollback                2037
    Subdaemon       21036   0x00007f9fbc0008c0  Deadlock Detector              2043
    Subdaemon       21036   0x00007f9fc00008c0  Checkpoint                     2042
    Subdaemon       21036   0x00007f9fc007f9e0  Garbage Collector              2036
    Subdaemon       21036   0x00007f9fc40008c0  Monitor                        2044
    Subdaemon       21036   0x00007f9fcc0008c0  Flusher                        2045
    Subdaemon       21036   0x00007f9fcc0a0e70  Aging                          2041
    Subdaemon       21036   0x00007fa04c0008c0  HistGC                         2039
    Subdaemon       21036   0x00007fa0501bbb70  Log Marker                     2040
    Subdaemon       21036   0x00007fa054048370  IndexGC                        2038
    Open for user connections
    Replication policy  : Manual
    Cache Agent policy  : Manual
    PL/SQL enabled.
    ------------------------------------------------------------------------
    Accessible by group g900
    End of report
    
  3. ttAdminユーティリティを使用して、database1データベースをクローズします。これにより、追加のユーザー接続が防止されます。
    % 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
    
  4. すべてのアプリケーションをデータベースから切断します。ttStatusユーティリティを実行して、データベースへの接続がないことを確認します(この例ではdatabase1)。
    % ttStatus
    TimesTen status report as of Fri Sep 24 05:49:55 2021
    
    Daemon pid 21031 port 6624 instance myinstance
    TimesTen server pid 21039 started on port 6625
    ------------------------------------------------------------------------
    ------------------------------------------------------------------------
    Data store /scratch/ttuser/database1
    Daemon pid 21031 port 6624 instance myinstance
    TimesTen server pid 21039 started on port 6625
    There are 12 connections to the data store
    Shared Memory Key 0x0b100699 ID 547979276
    PL/SQL Memory Key 0x0a100699 ID 547946502 Address 0x5000000000
    Type            PID     Context             Connection Name              ConnID
    Subdaemon       21036   0x0000000000f3c260  Manager                        2047
    Subdaemon       21036   0x0000000000fbdbc0  Rollback                       2046
    Subdaemon       21036   0x000000000103cf40  XactId Rollback                2037
    Subdaemon       21036   0x00007f9fbc0008c0  Deadlock Detector              2043
    Subdaemon       21036   0x00007f9fc00008c0  Checkpoint                     2042
    Subdaemon       21036   0x00007f9fc007f9e0  Garbage Collector              2036
    Subdaemon       21036   0x00007f9fc40008c0  Monitor                        2044
    Subdaemon       21036   0x00007f9fcc0008c0  Flusher                        2045
    Subdaemon       21036   0x00007f9fcc0a0e70  Aging                          2041
    Subdaemon       21036   0x00007fa04c0008c0  HistGC                         2039
    Subdaemon       21036   0x00007fa0501bbb70  Log Marker                     2040
    Subdaemon       21036   0x00007fa054048370  IndexGC                        2038
    Closed to user connections
    RAM residence policy: Manual
    Data store is manually loaded into RAM
    Replication policy  : Manual
    Cache Agent policy  : Manual
    PL/SQL enabled.
    ------------------------------------------------------------------------
    Accessible by group g900
    End of report
    
  5. ttShmSizeユーティリティを実行して、共有メモリー・セグメントのサイズを返します。このサイズは、高速パッチ・アップグレードが完了した後の共有メモリー・セグメントのサイズと一致する必要があります。
    % ttShmSize -connStr DSN=database1
    The required shared memory size is 2148239512 bytes.
    
共有メモリー・セグメントからサブデーモンを切断するための準備ステップが完了しました。

共有メモリー・セグメントからのサブデーモンのデタッチ

次の手順を実行して、共有メモリー・セグメントからサブデーモンを切断します。

  1. ttAdminユーティリティを実行して、database1データベースのramPolicyを確認します。この例では、ramPolicymanualに設定され、database1データベースは手動でRAMにロードされます。
    % ttAdmin -query 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
    
  2. ttAdminユーティリティを使用して、ramPolicyenduringに変更します。enduring設定は、サブデーモンが共有メモリー・セグメントから切断されたときに、共有メモリー・セグメントをメモリーに保持します。
    % ttAdmin -ramPolicy enduring database1
    RAM Residence Policy            : enduring
    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
    
  3. -shmDetachオプションを指定してttAdminユーティリティを使用して、サブデーモンを共有メモリー・セグメントから切断します。
    % ttAdmin -shmDetach database1
    RAM Residence Policy            : enduring
    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
    
  4. ttStatusユーティリティを使用して、サブデーモンが共有メモリー・セグメントから切断されていることを確認します。
    % ttStatus
    TimesTen status report as of Fri Sep 24 06:12:04 2021
    
    Daemon pid 21031 port 6624 instance myinstance
    TimesTen server pid 21039 started on port 6625
    ------------------------------------------------------------------------
    ------------------------------------------------------------------------
    Data store /scratch/ttuser/database1
    Daemon pid 21031 port 6624 instance myinstance
    TimesTen server pid 21039 started on port 6625
    There are no connections to the data store
    Closed to user connections
    RAM residence policy: Enduring
    Subdaemon is manually detached from data store (Shared Memory Key 0x0b100699 ID 547979276)
    Replication policy  : Manual
    Cache Agent policy  : Manual
    PL/SQL enabled.
    ------------------------------------------------------------------------
    Accessible by group g900
    End of report
    
サブデーモンは共有メモリー・セグメントから切断されています。これで、パッチ・アップグレードを実行する準備ができました。

新しいインストール環境を指すようにインスタンスを変更します

パッチのアップグレード・プロセスでは、新しいインストール環境を指すように既存のTimesTenインスタンスを変更する必要があります。
次のステップを実行します:
  1. ttDaemonAdminユーティリティを使用して、TimesTenメイン・デーモンを停止します。
    % ttDaemonAdmin -stop
    TimesTen Daemon (PID: 21031, port: 6624) stopped.
    
  2. ttInstanceModifyユーティリティを使用して、新しいインストール環境を指すようにmyinstanceインスタンスを変更します。TimesTen完全ディストリビューションが解凍され、new_installation_dir/tt22.1.1.30.0に新しいインストールが作成されたことを思い出してください。詳細は、新しいインストール環境のダウンロードと作成を参照してください。
    % $TIMESTEN_HOME/bin/ttInstanceModify -install new_installation_dir/tt22.1.1.30.0
    
    Instance Info (UPDATED)
    -----------------------
    
    Name:           myinstance
    Version:        22.1.1.30.0
    Location:       /scratch/ttuser/myinstance
    Installation:   new_installation_dir/tt22.1.1.30.0
    Daemon Port:    6624
    Server Port:    6625
    
    
    The instance myinstance now points to the installation in new_installation_dir/tt22.1.1.30.0
  3. ttDaemonAdminユーティリティを使用して、TimesTenメイン・デーモンを再起動します。次に、ttVersionユーティリティを実行して、myinstanceインスタンスが新しいパッチ・リリース(この例では22.1.1.30.0)にアップグレードされていることを確認します。
    % ttDaemonAdmin -start
    TimesTen Daemon (PID: 20699, port: 6624) startup OK.
    
    % ttVersion
    TimesTen Release 22.1.1.30.0 (64 bit Linux/x86_64) (myinstance:6624) 2021-09-15T16:53:47Z
      Instance admin: instanceadmin
      Instance home directory: /scratch/ttuser/myinstance
      Group owner: g900
      Daemon home directory: /scratch/ttuser/myinstance/info
      PL/SQL enabled.
    
新しいインストール環境を指すようにインスタンスが正常に変更されました。

既存の共有メモリー・セグメントへの新しいサブデーモンのアタッチ

次の手順を実行して、新しいサブデーモンを既存の共有メモリー・セグメントに接続します。

  1. ttShmSizeユーティリティを実行して、共有メモリー・セグメントのサイズを返します。このサイズは、パッチのアップグレード前に共有メモリー・セグメントのサイズと一致する必要があります。サイズが2148239512 bytesだったことを思い出してください。詳細は、共有メモリー・セグメントからサブデーモンをデタッチする準備を参照してください。
    % ttShmSize -connStr DSN=database1
    The required shared memory size is 2148239512 bytes.
    
  2. ttAdminユーティリティを使用して、新しいサブデーモンを既存の共有メモリー・セグメントにアタッチします。
    % ttAdmin -shmAttach database1
    RAM Residence Policy            : enduring
    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
    
  3. ttStatusユーティリティを使用して、サブデーモンが共有メモリー・セグメントに接続されていることを確認します。
    % ttStatus
    TimesTen status report as of Fri Sep 24 06:35:10 2021
    
    Daemon pid 20699 port 6624 instance myinstance
    TimesTen server pid 20706 started on port 6625
    ------------------------------------------------------------------------
    ------------------------------------------------------------------------
    Data store /scratch/ttuser/database1
    Daemon pid 20699 port 6624 instance myinstance
    TimesTen server pid 20706 started on port 6625
    There are 12 connections to the data store
    Shared Memory Key 0x0b100699 ID 547979276
    PL/SQL Memory Key 0x0d100699 ID 548044806 Address 0x5000000000
    Type            PID     Context             Connection Name              ConnID
    Subdaemon       20704   0x000000000207f260  Manager                        2047
    Subdaemon       20704   0x0000000002100bc0  Rollback                       2046
    Subdaemon       20704   0x000000000217ff40  Aging                          2041
    Subdaemon       20704   0x00007f7ac40008c0  Checkpoint                     2042
    Subdaemon       20704   0x00007f7ac407f9e0  Garbage Collector              2040
    Subdaemon       20704   0x00007f7acc0008c0  Monitor                        2045
    Subdaemon       20704   0x00007f7acc0a0e70  IndexGC                        2038
    Subdaemon       20704   0x00007f7ad00008c0  Deadlock Detector              2043
    Subdaemon       20704   0x00007f7ad007f9e0  XactId Rollback                2039
    Subdaemon       20704   0x00007f7ad40008c0  Flusher                        2044
    Subdaemon       20704   0x00007f7ad407f9e0  HistGC                         2037
    Subdaemon       20704   0x00007f7b580bed90  Log Marker                     2036
    Closed to user connections
    RAM residence policy: Enduring
    Data store is manually loaded into RAM
    Replication policy  : Manual
    Cache Agent policy  : Manual
    PL/SQL enabled.
    ------------------------------------------------------------------------
    Accessible by group g900
    End of report
    
  4. ttAdminユーティリティを使用して、ramPolicymanualに戻します。
    % ttAdmin -ramPolicy manual 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
    
  5. ttAdminユーティリティを使用して、ユーザー接続用のdatabase1データベースをオープンします。
    % 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
    
  6. インスタンス管理者ユーザー(この例ではinstanceadmin)がdatabase1データベースに接続でき、問合せを実行できることを確認します。
    % ttIsql database1;
    
    Copyright (c) 1996, 2021, Oracle and/or its affiliates. All rights reserved.
    Type ? or "help" for help, type "exit" to quit ttIsql.
    
    
    
    connect "DSN=database1";
    Connection successful: DSN=database1;UID=instanceadmin;DataStore=/scratch/ttuser/database1;
    DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;LogBufMB=1024;PermSize=500;
    TempSize=300;
    (Default setting AutoCommit=1)
    Command> connect adding "uid=user1;pwd=********" as user1;
    Connection successful: DSN=database1;UID=user1;DataStore=/scratch/ttuser/database1;
    DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;LogBufMB=1024;PermSize=500;
    TempSize=300;
    (Default setting AutoCommit=1)
    user1: Command> SELECT COUNT (*) FROM employees;
    < 107 >
    1 row found.
    
新しいサブデーモンが、保存された共有メモリー・セグメントに接続されています。高速パッチ・アップグレードは成功しました。