【 使用环境 】生产环境
【 OB or 其他组件 】OBCE
【 使用版本 】4.2.1.2
【问题描述】3zone 部署,observer 的3台服务器时区不对,America/New_York (EDT, -0400),ocp 是正常的,这种情况下 可以修改吗,对ob 有影响吗?
@论坛小助手
[root@CFBC-CLOUDDB-DB01 ~]# timedatectl
Local time: Thu 2024-10-24 06:44:07 EDT
Universal time: Thu 2024-10-24 10:44:07 UTC
RTC time: Thu 2024-10-24 10:44:07
Time zone: America/New_York (EDT, -0400)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: yes
Last DST change: DST began at
Sun 2024-03-10 01:59:59 EST
Sun 2024-03-10 03:00:00 EDT
Next DST change: DST ends (the clock jumps one hour backwards) at
Sun 2024-11-03 01:59:59 EDT
Sun 2024-11-03 01:00:00 EST
用户问题: 在 OBCE 4.2.1.2 版本中,3zone 部署的 observer 服务器时区设置为 America/New_York (EDT, -0400),而 OCP 时区正常,是否可以修改 observer 服务器的时区?修改时区会对 OceanBase 产生什么影响?
推荐使用 obdiag 工具进行日志采集,以便我们更好地了解当前系统的状态。
日志采集场景: 集群基础信息
日志采集命令: obdiag gather scene run --scene=observer.base
为了更好地帮助您解决问题,请您提供以下信息:
- 当前 observer 服务器的时区设置是如何配置的?
- 您是否有计划将 observer 服务器的时区修改为与 OCP 一致的时区?
- 您是否已经尝试过修改 observer 服务器的时区,如果有,请描述具体的操作步骤和结果?
- 您是否观察到由于时区不一致导致的具体问题或异常现象?
- 您的 OceanBase 集群是否有定时任务或其他依赖于时区的功能?
详情请参考:
附上敏捷诊断工具 obdiag 使用帮助链接
那你数据库插入的数据 取的系统时间是对的么?
有影响的 clog日志记录时间错乱 同步就有问题了 等等
你看一下 这个文档 如何调整 OBServer 的操作系统时间
https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000070?back=kb
影响很大的,分布式对时间的统一有强烈的要求的,时间不统一,redo日志,归档日志,error日志,等等,记录的时间就会不一致,多副本直接的同步也会有问题,赶紧调整吧,同一时间
你好,目前是否成功修改完ob主机时间了。
数据库 time_zone = +8:00 ,这个参数 是正确的。但是 system_time_zoe =’-5:00’ ,这个是不对的。
数据库视正常。在数据库中 有两个time_zone 参数 . time_zone = +8:00 ,这个参数 是正确的; system_time_zoe =’-5:00’ 这个不对。不过目前观察,数据库时间正常。不知道 system_time_zone =’-5:00’ 这个参数设置不对,有没有影响。
根据文档库中的信息,system_time_zone
用于设置服务器机器系统时区,而 time_zone
用于设置当前租户会话使用的时区。您提到的情况是 system_time_zone
设置为 -5:00
,这确实与您的期望不符。以下是关于这两个参数的详细解释和建议:
1. system_time_zone
参数
- 作用: 设置服务器机器系统时区。
- 默认值: CST(中国标准时间)。
- 取值范围: 支持数值范围 [-12:59, +13:00] 和时区地域(如 CDT、CST 等)。
- 生效范围: Global。
- 是否可修改: 该变量支持在创建租户时指定,租户创建后不能通过 SQL 语句修改。
2. time_zone
参数
- 作用: 设置当前租户会话使用的时区。
- 默认值: +8:00。
-
取值范围: 支持
'+08:00'
的 offset 形式和Asia/Shanghai
的地域形式取值。 - 生效范围: GLOBAL 和 SESSION。
- 是否参与序列化: 是。
修改 system_time_zone
的方法
-
修改系统时区:
- 由于
system_time_zone
是服务器机器的系统时区,您需要在操作系统层面进行修改。可以通过以下命令修改系统时区:sudo timedatectl set-timezone Asia/Shanghai
- 确认修改后的时区:
timedatectl status
- 由于
-
验证修改:
- 重启 OceanBase 服务以确保修改生效。
- 登录到 OceanBase 数据库,查看
system_time_zone
的值:SHOW GLOBAL VARIABLES LIKE 'system_time_zone';
注意事项
- 时钟同步: 确保所有节点的时钟同步,避免时钟偏差超过 2 秒,否则可能会影响 OceanBase 集群的选举模块,导致没有主副本或者脑裂。
- NTP 服务: 确保 NTP 服务正常运行,以保持所有节点的时间同步。
综上所述
-
修改
system_time_zone
: 需要在操作系统层面进行修改,并重启 OceanBase 服务。 - 验证: 确认修改后的时区并确保所有节点的时钟同步。
希望这些信息对您有所帮助。如果还有其他问题,请随时联系。 [2], [3], [4]
详情请参考:
- OceanBase 数据库企业版 V2.2.77
- system_time_zone
- time_zone
- 5000 ~ 5999
- 系统变量总览
- 在您开始前
- mysql.time_zone_name
- OceanBase 数据库企业版 V2.2.30
- LOCALTIME
(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)
system_time_zone 参数设置不正确,可能会导致时间相关的操作出现问题,例如时间戳的计算错误、定时任务的执行时间偏差等。
目前参数仅支持在创建租户时指定无法修改。
这句话一直没验证,我在建租户 也指定 不了 这个参数,不明白这句话是什么意思。
你这是按个版本,我在 4.2.18 建租户指定不了,
创建报错发一下看看