4.13.2 データベース・サーバーでのタイムゾーン設定の変更

ストレージ・セルでタイムゾーンの設定を変更したら、データベース・サーバーでタイムゾーンの設定を変更できます。

この手順は、「ストレージ・サーバーでのタイム・ゾーン設定の変更」の説明に従ってストレージ・サーバーのタイム・ゾーンを変更する手順の後に続きます。

この手順を開始する前に、クラスタ内のすべてのデータベース・サーバーでOracle Clusterwareが停止していることを確認します。

  1. rootユーザーとして、データベース・サーバーにログインします。
  2. データベース・サーバーで使用されているOracle Linuxバージョンを書き留めます。

    次に例を示します:

    # cat /etc/system-release
    Oracle Linux Server release 8.8
    
  3. オペレーティング・システムのタイム・ゾーン構成を変更します。

    データベース・サーバーで使用されているOracle Linuxバージョンに基づいて、適切な方法を選択します。

    • データベース・サーバーでOracle Linux 6以前を使用している場合は、/etc/localtimeおよび/etc/sysconfig/clockを任意のストレージ・セルからデータベース・サーバーにコピーします。

      # scp root@cell_name:/etc/localtime /etc/localtime
      # scp root@cell_name:/etc/sysconfig/clock /etc/sysconfig/clock
      
    • データベース・サーバーでOracle Linux 7以降を使用している場合は、timedatectlコマンドを使用してオペレーティング・システムのタイム・ゾーン構成を変更します。

      • 現在のタイム・ゾーン構成を表示するには、追加オプションを指定せずに/usr/bin/timedatectlを実行します。次に例を示します:

        # /usr/bin/timedatectl
                       Local time: Tue 2024-04-02 15:24:16 NZDT
                   Universal time: Tue 2024-04-02 02:24:16 UTC
                         RTC time: Tue 2024-04-02 02:24:17
                        Time zone: Antarctica/McMurdo (NZDT, +1300)
        System clock synchronized: yes
                      NTP service: active
                  RTC in local TZ: no
      • タイム・ゾーンの設定を変更するには、set-timezoneオプションを指定してtimedatectlを実行します。次に例を示します:

        # /usr/bin/timedatectl set-timezone America/New_York
      • 使用可能なタイム・ゾーンのリストを表示するには、list-timezonesオプションを指定してtimedatectlを実行します。次に例を示します:

        # /usr/bin/timedatectl list-timezones
        ...
        America/Monterrey
        America/Montevideo
        America/Montserrat
        America/Nassau
        America/New_York
        America/Nipigon
        America/Nome
        America/Noronha
        America/North_Dakota/Beulah
        America/North_Dakota/Center
        America/North_Dakota/New_Salem
        America/Ojinaga
        America/Panama
        America/Pangnirtung
        America/Paramaribo
        America/Phoenix
        ...
  4. /opt/oracle.cellos/cell.confのタイム・ゾーン設定を変更します。

    <Timezone>エントリを編集します。

    次に例を示します:

    ...
    <Timezone>America/New_York</Timezone>
    ...
  5. Oracle Clusterwareのタイム・ゾーン構成を変更します。

    $GRID_HOME/crs/install/s_crsconfig_<nodename>_env.txtTZエントリを編集します。

    次に例を示します:

    TZ=America/New_York
  6. oracle OSユーザー・プロファイルのタイム・ゾーン環境変数(TZ)設定を変更します。grid OSユーザー・プロファイルも変更します(該当する場合)。

    次の例は、oracle OSユーザーに関連付けられたbashプロファイル(.bash_profile)のタイム・ゾーン環境変数(TZ)設定を示しています。

    # cat /home/oracle/.bash_profile | grep TZ
    export TZ=America/New_York
  7. Oracle Clusterwareの設定を変更して、データベース・サーバーの再起動後に、CRSスタックが自動的に起動されないようにします。
    # Grid_home/bin/crsctl disable crs
  8. データベース・サーバーを再起動します。
    # shutdown -r now
  9. データベース・サーバーでタイム・ゾーンが変更されたことを確認します。

    dateコマンドを使用して、タイム・ゾーンの変更を確認します。

    次に例を示します:

    # date
    Mon Apr 1 22:26:00 EDT 2024

    データベース・サーバーでOracle Linux 7以降を使用している場合は、timedatectlコマンドを使用することもできます。

    次に例を示します:

    # /usr/bin/timedatectl
                   Local time: Mon 2024-04-01 22:26:30 EDT
               Universal time: Tue 2024-04-02 02:26:30 UTC
                     RTC time: Tue 2024-04-02 02:26:31
                    Time zone: America/New_York (EDT, -0400)
    System clock synchronized: yes
                  NTP service: active
              RTC in local TZ: no
  10. データベース・サーバーの新しいタイム・ゾーン設定を確認した後、Oracle Clusterwareを有効にして再起動します。
    # Grid_home/bin/crsctl enable crs
    # Grid_home/bin/crsctl start crs
  11. データベースのタイムスタンプがオペレーティング・システムの時間と一致することを確認します。
    各データベースで、オペレーティング・システムのdateコマンドの出力を次のSQLコマンドの出力と比較します:
    SQL> SELECT systimestamp FROM dual;
  12. クラスタ内のすべてのデータベース・サーバーで、前述のステップを繰り返します。