使用している Amazon Aurora DB クラスターでタイムゾーンを変更しようとしています。
簡単な説明
Aurora では、time_zone パラメータはクラスターレベルで設定されます。パラメータグループは、クラスターとすべてのデータベースにデフォルトのタイムゾーンを指定します。time_zone のデフォルト値は UTC です。time_zone の値を変更した場合、その変更はクラスター内のすべてのノードに適用されます。
DB クラスターパラメータグループと DB インスタンスパラメータグループには相違点があります。
- DB インスタンスパラメータグループは、1 つ以上の DB インスタンスに適用されるエンジン設定値のコンテナとして機能します。DB インスタンスパラメータグループは、Amazon Relational Database Service (Amazon RDS) と Aurora の両 DB インスタンスに適用されます。これらの設定は、メモリバッファーのサイズなど、Aurora DB クラスターの DB インスタンス間で異なる可能性のあるプロパティに適用されます。
- DB クラスターパラメータグループは、Aurora DB クラスターのすべての DB インスタンスに適用されるエンジン設定値のコンテナとして機能します。たとえば、Aurora 共有ストレージモデルでは、Aurora クラスターのすべての DB インスタンスが innodb_file_per_table などのパラメータに同じ設定を使用する必要があります。 物理ストレージのレイアウトとエンジンパラメータに影響するパラメータは、DB クラスターのパラメータグループに属しています。DB クラスターのパラメータグループには、すべての DB インスタンスレベルのパラメータのデフォルト値も含まれています。
解決策
新しい DB クラスターのパラメータグループ
Amazon Aurora MySQL 互換エディション 5.7 または PostgreSQL を使用して time_zone パラメータを ASIA/CALCUTTA に変更するには、次の手順を実行します。
- DB クラスター用のカスタムパラメータグループを作成します。
- 動的パラメータ time_zone を**"ASIA/CALCUTTA"** に変更します。
- 新しい DB クラスターパラメータグループをクラスターにアタッチし、ライターインスタンスを手動で再起動して変更を適用します。
- DB インスタンスのタイムスタンプを確認するには、次のコマンドを実行します。
MySQL:
mysql> select @@time_zone;
+---------------+
| @@time_zone |
+---------------+
| Asia/Calcutta |
+---------------+
1 row in set (0.00 sec)
PostgreSQL:
postgresql> select * from pg_timezone_names;
+---------------+
| timezone_names |
+---------------+
| Asia/Calcutta |
+---------------+
1 row in set (0.00 sec)
既存の DB クラスターのパラメータグループ
既存のカスタムパラメータグループでは、パラメータは動的です。変更を適用するためにライターインスタンスを再起動する必要はありません。代わりにパラメータを更新すると、既存のクラスターのパラメータグループをクラスターにアタッチできます。次に、セッションを終了し、クラスターに再接続します。このプロセスは接続をリサイクルします。
注: タイムゾーンはセッションレベルで設定することもできます。ただし、セッションのタイムゾーンは、そのセッション中のみ DB クラスターのタイムゾーンをオーバーライドします。