Database Support Blog

  • Oracle Cloud
2021.09.08

再作成不要!Oracle CloudのDBシステムのタイム・ゾーン変更手順

Oracle Cloud Infrastructure(以降、OCI)でDBシステムを利用する場合、UTCがデフォルトのタイム・ゾーンとして選択され作成・起動されます。
現在は、OCIのアップグレードによりUTC以外のタイム・ゾーンを選択して作成することができますが、選択できることに気づかなったり、アップグレード前に作成されたDBシステムではUTCが設定されています。
オラクル社はUTCの使用を推奨していますが、お客様の管理業務やアプリケーションの観点などから、UTCから変更する必要もあるかと思います。

今回は、タイム・ゾーンの変更方法をご紹介します。


タイム・ゾーンの指定方法

DBシステムのタイム・ゾーンは、以下のように作成画面で選択することが可能です。

しかし、「拡張オプション」内の項目であるため、項目に気づかずにUTCで作成してしまい、意図したタイム・ゾーンに変更したいというケースがあります。
以降でタイム・ゾーン変更方法をご紹介します。


タイム・ゾーン変更のその前に

本題に入る前に、補足があります。それは、変更手順がDBシステム作成時に選択したストレージ管理方法によって変わることです。

今回は、デフォルトで選択される「Oracle Grid Infrastructure」を選択した環境における変更方法をご紹介します。


タイム・ゾーンの変更が必要な箇所と方法

Oracle Grid Infrastructureを選択した環境の場合、以下の三箇所を変更する必要があります。

 ・ホストOS
 ・Oracle Grid Infrastructure
 ・データベース

それでは、それぞれの変更方法を見てみましょう。


ホストOSの変更方法

まずは、ホストOSのタイム・ゾーンの変更です。
ホストOSの再起動は不要ですが、Oracle ClusterwareのCRSスタックの再起動が必要です。

1.ホストOSにopcユーザでログイン後、rootユーザにスイッチします。

 
 (opc) $ sudo su -
 

2.crsctlユーティリティを使用して、CRSスタックを停止します。

 
 #ここでは「19.0.0.0」の場合のパスとします
 (root) # /u01/app/19.0.0.0/grid/bin/crsctl stop crs
 

3.現在のタイム・ゾーンを確認し、任意のタイム・ゾーンに変更します。

 
 #現在の設定を確認します(ここでは「America/Los_Angeles」です)
 (root) # cat /etc/sysconfig/clock | grep ZONE
 ZONE="America/Los_Angeles"
 
 #ファイルをバックアップします
 (root) # cp -p /etc/sysconfig/clock /etc/sysconfig/clock.backup
 
 #設定を変更し、変更されたことを確認します(ここでは日本時間「Asia/Tokyo」に変更します)
 (root) # vi /etc/sysconfig/clock
 (root) # cat /etc/sysconfig/clock | grep ZONE
 ZONE="Asia/Tokyo"
 
 #現在のタイム・ゾーンを確認します(このタイミングでは、UTC形式のままです)
 (root) # date
 Fri Aug  6 22:30:18 UTC 2021
 
 #lnコマンドでリンクを変更します(「Tokyo /etc」の間の空白は必要です)
 (root) # ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
 
 #再度、タイム・ゾーンを確認します(このタイミングで、JTS形式に変わっています)
 (root) # date
 Sat Aug  7 07:31:22 JST 2021
 

4.crsctlユーティリティを使用して、CRSスタックを起動します。

 
 (root) # /u01/app/19.0.0.0/grid/bin/crsctl start crs -wait
 

以上でホストOSのタイム・ゾーンの変更は完了です。


Oracle Grid Infrastructureの変更方法

次に、Oracle Grid Infrastructureのタイム・ゾーンの変更です。
Oracle ClusterwareのCRSスタックの再起動が必要です。

1.ホストOSと同様に、まずはCRSスタックを停止します。
2.「GRID_HOME/crs/install/s_crsconfig_<node_name>_env.txt」ファイルから、現在のタイム・ゾーンを”TZ”から確認し、任意のタイム・ゾーンに変更します。

 
 #ノード名「aaa」という環境の例です。現在は「UTC」が設定されています。
 (root) # cat /u01/app/19.0.0.0/grid/crs/install/s_crsconfig_aaa_env.txt | grep TZ=
 #   the appropriate time zone name. For example, TZ=America/New_York ※ここはコメントです
 TZ=UTC ※ここが変更箇所です
  
 #ファイルをバックアップします(画面表示上、改行しています。)
 (root) # cp -p /u01/app/19.0.0.0/grid/crs/install/s_crsconfig_aaa_env.txt 
 /u01/app/19.0.0.0/grid/crs/install/s_crsconfig_aaa_env.txt.backup
 
 
 #設定を変更し、変更されたことを確認します(ここでは日本時間「Asia/Tokyo」に変更します)
 (root) # vi /u01/app/19.0.0.0/grid/crs/install/s_crsconfig_aaa_env.txt 
 (root) # cat /u01/app/19.0.0.0/grid/crs/install/s_crsconfig_aaa_env.txt | grep TZ= 
 #   the appropriate time zone name. For example, TZ=America/New_York
 TZ=Asia/Tokyo ※変更されていることを確認します
 

3.ホストOSと同様に、CRSスタックを起動します。
以上でOracle Grid Infrastructureのタイム・ゾーンの変更は完了です。


データベースの変更方法

最後に、データベースのタイム・ゾーンの変更です。
DBシステムの場合、マルチテナント構成のデータベースが作成されますが、CDBとPDBの両方で変更が必要であり、変更の反映にデータベースインスタンスの再起動も必要です。

 
 #SQL*Plusでデータベースに接続します
 (oracle) $ sqlplus / as sysdba
 
 #CDBで現在のタイム・ゾーンを確認します(現在は”+00:00”です)
 SQL> SELECT dbtimezone FROM DUAL;
 DBTIME
 ------
 +00:00
 
 #タイム・ゾーンを”+09:00”に変更します
 SQL> ALTER DATABASE SET TIME_ZONE = '+09:00';
 Database altered.
 
 #PDBに接続します
 alter session set container=
 Session altered.
 
 #PDBで現在のタイム・ゾーンを確認します(現在は”+00:00”です)
 SQL> SELECT dbtimezone FROM DUAL;
 DBTIME
 ------
 +00:00
 
 #タイム・ゾーンを”+09:00”に変更します
 SQL> ALTER DATABASE SET TIME_ZONE = '+09:00';
 Database altered.
 
 #CDBに接続します
 SQL> alter session set container=;
 Session altered.
 
 #データベースインスタンスを再起動します
 SQL> shutdown immediate
 Database closed.
 Database dismounted.
 ORACLE instance shut down.
  
 SQL> startup
 ORACLE instance started.
 Database mounted.
 Database opened.
 
 #タイム・ゾーンが”+09:00”に変更されたことを確認します
 SQL> SELECT dbtimezone FROM DUAL;
 DBTIME
 ------
 +09:00
  
 SQL> alter session set container=;
 Session altered.
  
 SQL> SELECT dbtimezone FROM DUAL;
 DBTIME
 ------
 +09:00
 

以上でデータベースのタイム・ゾーンの変更は完了です。


まとめ

今回は、DBシステムのタイム・ゾーンを変更する方法をご紹介しました。

作成直後であれば意図するタイム・ゾーンを選択して作り直すことも許されるかと思いますが、すでに運用を開始されているという場合には手動で変更する必要がありますので、以下マニュアルとあわせて、本記事をご参考いただければ幸いです。

DBシステム・タイム・ゾーン
 →プロビジョニング後のタイム・ゾーンの変更

 https://docs.oracle.com/ja-jp/iaas/Content/Database/References/timezones.htm


執筆者情報

いちじょう だいさく プロフィール画像

2018年アシスト入社後、Oracle Databaseフィールド業務に従事。
2019年からはOracle Cloudのフィールド業務とサポート業務を兼務中。

保有資格
・Oracle Cloud Infrastructure 2019 Certified Architect Associate

アシスト データベース ウェビナー


■商標に関して
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。

関連している記事

  • Oracle Cloud
2021.08.27

クラウド関連ウェビナー開催報告 『ビジネスに合わせた伸縮可能な基盤とは?』

「ビジネスに合わせた伸縮可能な基盤とは? ~ クラウドファーストを推進したお客様事例」と題して基幹システムをOracle Exadata Cloud@CustomerとOracle Exadata Cloud Serviceのハイブリッド構成へ移行されたパーソルキャリア様にご登壇いただきました。イベントレポートをお届けします。

  • Oracle Cloud
2021.08.02

【Oracle Cloud Infrastructure】事前用意で解決スピードアップ!サポート問い合わせ前に揃えておきたい情報

OCIのお問い合わせをいただく前にあらかじめ環境を識別するための情報をご用意いただくことで、サポートの初動対応がスムーズになり、解決スピードアップにつながります。円滑にサポートを受けていただくためのポイントをご紹介します。

  • Oracle Cloud
2021.07.28

【書評】「Oracle Cloud Infrastructure徹底入門」はOCI技術者必読の1冊です!

日本オラクル社による「Oracle Cloud Infrastructure徹底入門 Oracle Cloudの基本からインフラ設計・構築まで」が発売されました。Oracle Cloud担当者のみならず興味のある方、クラウド担当全員が読むべきとも言える非常に良い内容の書籍です。本書のレビューをお送りいたします。

ページの先頭へ戻る