我有一个 Amazon Aurora 数据库集群,我想更改时区。
简短描述
在 Aurora 中,time_zone 参数是在集群级别设置的。参数组为集群和所有数据库提供默认时区。time_zone 的默认值为 UTC。如果您更改 time_zone 的值,则您的更改将应用于集群中的所有节点。
数据库集群参数组和数据库实例参数组之间存在区别。
- 数据库实例参数组充当适用于一个或多个数据库实例的引擎配置值的容器。数据库实例参数组适用于 Amazon Relational Database Service (Amazon RDS) 和 Aurora 中的数据库实例。这些配置设置适用于 Aurora 数据库集群中数据库实例之间可能不同的属性,例如内存缓冲区的大小。
- 数据库集群参数组充当引擎配置值的容器,这些值适用于 Aurora 数据库集群中的每个数据库实例。例如,Aurora 共享存储模型要求 Aurora 集群中的每个数据库实例对参数(例如 **innodb_file_per_table)使用相同的设置。**影响物理存储布局和引擎参数的参数是数据库集群参数组的一部分。数据库集群参数组还包括所有数据库实例级参数的默认值。
解决方法
新的数据库集群参数组
要使用 Amazon Aurora MySQL 兼容版本 5.7 或 PostgreSQL 将 time_zone 参数更改为 ASIA/CALCUTTA,请完成以下步骤:
- 创建自定义数据库集群参数组。
- 将动态参数 time_zone 修改为 "ASIA/CALCUTTA"。
- 将新的数据库集群参数组连接到集群,然后手动重启写入器实例以应用更改。
- 要检查数据库实例的时间戳,请运行以下命令:
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)
现有数据库集群参数组
对于现有的自定义参数组,该参数是动态的。您无需重启写入器实例即可应用更改。您可以更新参数以将现有集群参数组连接到集群。然后,退出会话并重新连接到集群。此过程会回收连接。
**注意:**您还可以在会话级别设置时区。但是,会话时区仅会在会话期间覆盖数据库集群时区。