如何设置tidb slowlog伴生容器的时区

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【TiDB 版本】
4.0.12
【问题描述】
如题,通过tidb operator全容器化部署的,通过设置timezone :Asia/shanghai所有组件已经生效,只有这个slowlog伴生容器没生效。


若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

目前只有 slow log 的时间不是 timezone :Asia/shanghai 这个吧,麻烦发一下 k8s 的配置和操作步骤看一下哈。

参考以下下面的文档,在 k8s 中设置时区
https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/faq#集群已经在运行

IT IS NOT SUITABLE FOR PRODUCTION USE.

This YAML describes a basic TiDB cluster with minimum resource requirements,

which should be able to run in any Kubernetes cluster with storage support.

apiVersion: pingcap.com/v1alpha1
kind: TidbCluster
metadata:
name: basic
spec:
version: v4.0.12
timezone: Asia/Shanghai
pvReclaimPolicy: Retain
enableDynamicConfiguration: true
configUpdateStrategy: RollingUpdate
discovery: {}

操作就是apply,由于tidb的slowlog没生效,我又在tidb的config block部分单独写了

config:
  timezone: Asia/Shanghai

但是依然不生效。

spec:
  timezone: Asia/Shanghai

尝试修改,修改结果如下所示:
kubectl edit tc basic -n tidb-cluster-2
Edit cancelled, no changes made.

image

TZ已经设置进去了,为什么没生效?

  1. 麻烦反馈下当前namespace 信息, operator 哪个版本?
    kubectl get all -n -o wide
  2. 查看下 tidb 中的时区信息
    SELECT @@global.time_zone, @@session.time_zone;
  3. kubectl logs -c slowlog 和 tidb 反馈下当前的日志信息,方便对比时间,多谢。
  4. tc 的配置麻烦发一下吧,目前增加了对吧
    spec:
    timezone: Asia/Shanghai

tidb-operator-v1.1.10

  1. 麻烦 ls -l /etc/localtime 多谢。
  2. 看慢日志中展示的时间应该是对的吧
  3. 这个问题目前对您最大的影响是什么?

image

刚我都临时把所有的slowlog里的/etc/localtime做了处理,现在时间都是对的,但是select NOW(); 还是不对。

现在主要问题是表的时间是错的。

  1. 什么表? 业务表吗? 这个和slowlog容器感觉不一定有关系,先看这个表吧。
  2. 麻烦反馈下建表语句
  3. 有设置 new collection吗?

我问一下开发,这个时间设置在client也要做配置么?

不一定和slowlog有关系,目前最直接的问题就是表里写入的时间不对,在围绕这个查。

select NOW();拿到的时间不对,这个和应用没关系吧,这个可能是哪的问题,这个不就是数据库本身的时间设置问题么。

UTC时区,这个没改过来啊,但是tidb容器里的时间是CST的,是正确的。

我重新设置了一下,set global time_zone = ‘+8:00’; 这个值在已经运行的tidb中修改timezone是不生效的是么?

能展示下当前的完整 tc 配置吗? 多谢。

tc.describe (45.3 KB)