OBCE-4.2.1.2 observer时区修改

【 使用环境 】生产环境
【 OB or 其他组件 】OBCE
【 使用版本 】4.2.1.2
【问题描述】3zone 部署,observer 的3台服务器时区不对,America/New_York (EDT, -0400),ocp 是正常的,这种情况下 可以修改吗,对ob 有影响吗?
@论坛小助手

1 个赞
[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
1 个赞

用户问题: 在 OBCE 4.2.1.2 版本中,3zone 部署的 observer 服务器时区设置为 America/New_York (EDT, -0400),而 OCP 时区正常,是否可以修改 observer 服务器的时区?修改时区会对 OceanBase 产生什么影响?

推荐使用 obdiag 工具进行日志采集,以便我们更好地了解当前系统的状态。
日志采集场景: 集群基础信息
日志采集命令: obdiag gather scene run --scene=observer.base

为了更好地帮助您解决问题,请您提供以下信息:

  1. 当前 observer 服务器的时区设置是如何配置的?
  2. 您是否有计划将 observer 服务器的时区修改为与 OCP 一致的时区?
  3. 您是否已经尝试过修改 observer 服务器的时区,如果有,请描述具体的操作步骤和结果?
  4. 您是否观察到由于时区不一致导致的具体问题或异常现象?
  5. 您的 OceanBase 集群是否有定时任务或其他依赖于时区的功能?

详情请参考:

  1. (可选)配置时钟源
  2. 检查 NTP 偏移量
  3. OBKV-Table 简介
  4. OceanBase 术语
  5. ODP 性能分析
  6. 集群管理 FAQ

附上敏捷诊断工具 obdiag 使用帮助链接

1 个赞

那你数据库插入的数据 取的系统时间是对的么?

有影响的 clog日志记录时间错乱 同步就有问题了 等等
你看一下 这个文档 如何调整 OBServer 的操作系统时间
https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000070?back=kb

1 个赞

影响很大的,分布式对时间的统一有强烈的要求的,时间不统一,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 的方法

  1. 修改系统时区:

    • 由于 system_time_zone 是服务器机器的系统时区,您需要在操作系统层面进行修改。可以通过以下命令修改系统时区:
      sudo timedatectl set-timezone Asia/Shanghai
      
    • 确认修改后的时区:
      timedatectl status
      
  2. 验证修改:

    • 重启 OceanBase 服务以确保修改生效。
    • 登录到 OceanBase 数据库,查看 system_time_zone 的值:
      SHOW GLOBAL VARIABLES LIKE 'system_time_zone';
      

注意事项

  • 时钟同步: 确保所有节点的时钟同步,避免时钟偏差超过 2 秒,否则可能会影响 OceanBase 集群的选举模块,导致没有主副本或者脑裂。
  • NTP 服务: 确保 NTP 服务正常运行,以保持所有节点的时间同步。

综上所述

  • 修改 system_time_zone: 需要在操作系统层面进行修改,并重启 OceanBase 服务。
  • 验证: 确认修改后的时区并确保所有节点的时钟同步。

希望这些信息对您有所帮助。如果还有其他问题,请随时联系。 [2], [3], [4]

详情请参考:

  1. OceanBase 数据库企业版 V2.2.77
  2. system_time_zone
  3. time_zone
  4. 5000 ~ 5999
  5. 系统变量总览
  6. 在您开始前
  7. mysql.time_zone_name
  8. OceanBase 数据库企业版 V2.2.30
  9. LOCALTIME

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

system_time_zone 参数设置不正确,可能会导致时间相关的操作出现问题,例如时间戳的计算错误、定时任务的执行时间偏差等。
目前参数仅支持在创建租户时指定无法修改。

这句话一直没验证,我在建租户 也指定 不了 这个参数,不明白这句话是什么意思。


j仅支持黑屏化创建时候指定

你这是按个版本,我在 4.2.18 建租户指定不了,

创建报错发一下看看

image
observer 重启之后,查看 system_tome_zone 还是 -5:00 时区,这个能改过来吗?

system_tome_zone在官网文档说明是不允许更改的,仅创建时候设置,你在创建租户时候有进行过修改么?
正常情况不会去对这个参数进行配置的

1 个赞

确实,如你所说,建租户可以制定 system_time_zone=’-05:00’;

登录到新建的租户,查看time_zone 参数,确实是-5

1 个赞