我有一個 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)
現有資料庫叢集參數群組
對於現有的自訂參數群組,此參數是動態的。您不需要重新啟動寫入器執行個體來套用變更。而是可以更新參數,以將現有叢集參數群組附加到叢集。然後,結束工作階段並重新連線到叢集。此程序會重新建立連線。
**注意:**您也可以在工作階段層級設定時區。但是,工作階段時區只會在工作階段持續期間覆寫資料庫叢集時區。