PuppyIP 资源中心
云服务运维 8 分钟 发布于 2026-11-01

Cloud SQL 加拿大时区调整:MySQL、PostgreSQL 与 SQL Server 应对指南

若 Cloud SQL 实例用数据库函数计算、安排或显示加拿大部分地区的本地时间,应按实际引擎核对维护版本或会话时区;这不是适用于所有加拿大实例的通用规则。

Google Cloud SQL 加拿大时区 MySQL PostgreSQL SQL Server

服务对象与地域限制

PuppyIP 仅面向海外合规企业及其授权人员提供服务,不面向中国大陆地区开放或提供代理服务。本服务仅限用于中国大陆境外的合法业务活动,严禁在中国大陆境内使用本服务。

代理 IP 或服务器位于境外,不改变上述限制。不得通过中转、转接、共享或转售向中国大陆境内的最终使用者提供本服务。使用前请阅读用户服务协议。

本文要点

  • Google 说明未修补实例在阿尔伯塔、不列颠哥伦比亚、马尼托巴和西北地区的部分本地时区可能慢一小时,存储的时间戳数据不会因此被改写。
  • MySQL 与 PostgreSQL 的维护版本门槛不同;MySQL 的 default_time_zone 实例标志要求重启,不能当作会话级免重启设置。
  • PostgreSQL 的 ALTER DATABASE 时区默认值作用于新会话;现有连接池和角色级设置需要单独核对。
  • SQL Server 使用公告给出的 Windows 时区名称。先确认实例、引擎和当前版本,再通过受控变更和查询验证处理。

公告范围与影响时间

Google 于 2026 年 10 月 30 日公告:未修补且计算部分加拿大本地时区的 Cloud SQL 实例,从 2026 年 11 月 1 日当地 02:00 起可能慢一小时。范围涉及阿尔伯塔、不列颠哥伦比亚、马尼托巴和西北地区,举例卡尔加里、埃德蒙顿、温哥华、温尼伯;存储的时间戳不会修改。

公告要求 11 月 1 日前修复;02:00 是影响开始,不是额外时间,也没有统一 UTC 截止点。公告未列完整 IANA 时区清单,不表示加拿大所有实例受影响。

先确认实际实例是否受影响

逐个核对引擎、实例、维护版本,以及应用是否用数据库函数计算、安排或显示相关本地时间。实例所在地区不能证明使用了受影响时区;重点看相关查询、作业和报表。时间戳不变,但函数结果仍可能差一小时。没有实际证据时,不要只凭实例名或客户所在地批量改配置。

Cloud SQL for MySQL:维护版本与会话设置

MySQL 自助维护门槛为 *.R20260726.00_36 或更高;按实例确认主版本、目标版本和副本。default_time_zone 是需重启的实例标志,并非免重启会话设置。无法重启时,资料另列以 SET time_zone 配合 init_connect 设置实际会话的路径。公告示例为阿尔伯塔 UTC-06:00、不列颠哥伦比亚 UTC-07:00、马尼托巴 UTC-05:00;未给西北地区 MySQL 偏移示例,勿外推。

Cloud SQL for PostgreSQL:默认值只作用于新会话

PostgreSQL 维护版门槛为 *.R20260712.01_44 或更高。替代设置 ALTER DATABASE database_name SET timezone TO 'anchor_zone' 可用 America/Regina(阿尔伯塔及西北地区,UTC-06:00)、America/Whitehorse(不列颠哥伦比亚,UTC-07:00)或 America/Coral_Harbour(马尼托巴,UTC-05:00)。数据库所有者或超级用户才能修改;默认值只对新会话生效,现有连接池不会自动切换,角色级默认值还可能覆盖它。

Cloud SQL for SQL Server:使用 Windows 时区名称

SQL Server 公告未给维护版本门槛;可在控制台实例 Time zone 设置,或用 gcloud sql instances patch 的 --time-zone 参数修改。须用 Windows 名称:不列颠哥伦比亚 Pacific Standard Time 改 Yukon Standard Time(UTC-07:00);阿尔伯塔及西北地区 Inuvik 的 Mountain Standard Time 改 Canada Central Standard Time(UTC-06:00);马尼托巴 Central Standard Time 改 Eastern Standard Time (Mexico)(UTC-05:00)。勿换成 IANA 名称。

用受控变更验证结果

记录引擎、版本、时区、主从关系和相关查询,再按引擎选择路径并遵守变更流程;资料未保证零停机。变更后检查时区转换,并核对连接池、计划任务、报表和告警。先小范围验证,不批量重写时间戳,也不把 02:00 当成额外期限。

资料来源

常见问题

应用统一使用 UTC,还需要采取同样的动作吗?

不能仅凭使用 UTC 就决定批量修改或完全忽略。先确认报表、导出和定时任务是否仍把 UTC 转换为公告涉及的本地时间;若没有这类依赖,公告本身不足以证明该实例受影响。

PostgreSQL 连接池重连后,怎样确认默认值没有被覆盖?

用应用实际使用的数据库角色建立新连接,检查会话时区与一条相关时间转换查询。管理员连接的结果不能代替应用角色验证,还应核对角色默认值和应用启动连接时发送的设置。

已经过了当地 02:00,应该直接回填所有历史记录吗?

不应自动回填。先确认实际错误范围,修正受影响的时间计算,并检查是否有错时运行或遗漏的作业。公告没有要求批量重写存储的时间戳;业务记录需要按实际证据单独核对。