pepezzzz
pepezzzz
V8
2020-05-24 加入
获赞
15
回答
21
文章
17
    我这里复现了这个问题,手工用 lightning tidb 模式导入报错的表仍存在这个报错,分析后是源库中部分行存在乱码字段,怀疑是半个字符导致的,备份的文件中也会把乱码导出,使用 update set col1=substr(col1,1,18) 后修复。 报错 [image] notepad 工具打开报错行整理后 [image] hexdump 的输出 [image] 修复过程 [image]
    2 个月前
    手工用 dumpling 备份有类似的现象吗?有没有可能是连接时长的防火墙的问题。
    4 个月前
    用 explain analyze 分别看一下“正确“和”不确认“结果的执行计划。
    4 个月前
    把 raft 选举和改为在 PD 上的 etcd 选主,各有优势。pd 选主就和 ticdc 一样,高可用架构简单,对成员数量没有要求。raft 选举最小成员要求3个,优势就是和 pd 解耦可以独立,比如可以实现一个更高层次的流量调拨,多个机房的 TICDC 复制链路的上下游可以做访问控制。 权限和多机房的场景都很有现实意义。权重是 LB 的标配功能。用户有多机房的场景,可能需要多 VIP,类似 ticdc 的 cluster-id 功能,及 tidb server label 的位置“感知”,进而和 tikv server label 的 closest-replica 配置就实现流量在…
    8 个月前
    TiProxy 管理 VIP 能力是线下部署比较期望的一种能力。 不过集成 keepalived 是不是不太好的一个选择,vrrp 协议是不是太重了,新一代的 MySQL 集群管理软件都不太使用 keepalived。用 raft leader 实现一个 VIP 管理能力是不是更好?
    8 个月前
    #!/bin/bash 执行查询语句,并将结果存储到数组中 result=($(mysql -h tidb-ip -P 4000 -u root -p’’ -N -e “select TIDB_TABLE_ID from information_schema.tables where TABLE_SCHEMA=‘your_schema’”)) 遍历数组 for item in “${result[@]}” do AUTO_ID_CACHE=$(curl -s http://tidb-ip:status-port/schema?table_id=${item} 2>/dev/null…
    10 个月前
    https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/backup-to-pv-using-br 文档中描述得很清楚,tikv pod 也需要有 NFS 的 volumemounts 。 确认可以从 Kubernetes 集群中访问用于存储备份数据的 NFS 服务器,并且你已经配置了 TiKV 挂载跟备份任务相同的 NFS 共享目录到相同的本地目录。
    1 年前
    K8S 环境建议使用 BACKUP CRD 的方式进行备份。
    1 年前
    不支持自增跳变。需要改 Auto cache id。 update 带有两次列运算时行为不一致。UPDATE h SET h.lock_qty = h.lock_qty + 3, h.usedable_qty=h.onhand_qty - h.lock_qty // 在mysql中用的是上面h.lock_qty = h.lock_qty + 3后的值, 而在tidb中用的更新前的值 提示的 collation 不支持,比如 mysql 8 默认的 collation utf8mb4_0900_ai_ci。
    1 年前
    除了一个会话内相同操作多次,基本上 conn id + job id 可以定位分段的唯一执行。 BTW: K8S 环境的 POD 日志,最好用其他手段持久化一下。
    2 年前
    还有看一下,tidb.log 在 duplicate key 报错期间的上下日志。
    2 年前
    日志不太全,还是得看一下两个 batch 语句 start a Non-transactional DML做为起始时间 ,最后一个 jobid 做为结束时间 。 admin show ddl jobs 的 truncate 时间 ,看一下各个时间 有没有交叉。
    2 年前
    应该还是遗留数据的问题,从切分上看,没问题。batch.txt 这个子任务前后有没有别的错误。因为执行多次,可以检查一下,truncate 前是不是上一个任务是不是确认结束了。 [2023/02/23 11:57:16.391 +08:00] [INFO] [nontransactional.go:423] [“start a Non-transactional DML”] [conn=4581018440105527369] [job=“job id: 17031, estimated size: 5000, sql: INSERT INTO sbtest.sbtestbak SELECT…
    2 年前
    能不能看一下 tidb.log ,关键字 nontransactional.go 类似这样的日志,有没有出现边界重复。 tidb.log 日志例举如下: [2022/12/30 09:45:53.436 +08:00] [INFO] [nontransactional.go:423] [“start a Non-transactional DML”] [conn=3074535777447707195] [job=“job id: 1, estimated size: 1000, sql: INSERT INTO `test_order`.`test_order_target` SELEC…
    2 年前
    看一下 {clustername}-tidb → query detail → Panic And Critial Error 监控期间的曲线,是否如下图有 critical 的上升? [binlog]
    3 年前
    需要从新的 binlog 位点重新初始化。 下游清理数据后,用 start-task --remove-meta ./task.yaml 重新发起。
    3 年前
    DB2 上就是一个只读操作, create view 不就行了。
    3 年前
    SQL>show config where type=‘tidb’ and name like ‘%ignore%’; binlog.ignore-error是否为 true。 tidb 的日志内是否有 write binlog fail but error ignored 关键字,可能是消息过限导致的。 如果以上符合,参考 https://github.com/pingcap/tidb/blob/master/docs/tidb_http_api.md 的 “Resume the binlog writing when Pump is recovered.” 的一节描述。
    3 年前
    建议直接引用 https://docs.pingcap.com/zh/tidb/v5.0/haproxy-best-practices#配置-haproxy 的配置文件,改后端 IP ,重启 haproxy 后生效。尤其是以下两个参数: timeout client 30000s # 客户端与 HAProxy 连接后,数据传输完毕,即非活动连接的超时时间。 timeout server 30000s # 服务器端非活动连接的超时时间。 如果是 sqlyog 或者是 navicat 工具操作,会有一些自动重…
    3 年前