请问如果某张表部分数据被人为删除了,有没有办法查询到操作记录?

早期版本可以开启binlog,6.5以上开始用cdc取代了。

1 个赞

8.0之前都有binlog 组件啊,你自己去官网查

1 个赞

5.0以前 tidbbinlog 是个方案,5.0以后这个就不怎么支持了。

1 个赞

可以指定快照时间,然后查询删除前的数据

先确认集群审计日志是否开启,TiDB 企业版审计日志可以完整落地:操作账号、客户端来源 IP、执行 SQL 指令、操作库表全量信息,排查误删、违规操作时,直接检索审计日志就能定位是谁、在哪台机器执行了对应命令

1 个赞

可通过几种方式排查,前提是对应功能提前开启。
使用 MVCC 历史查询指定时间的数据,判断删除时段。
开启审计日志可查到操作用户、IP 和执行 SQL,v7.1 及以上企业版支持原生审计。
也可查看 tidb 通用日志、Dashboard 的 SQL 记录或堡垒机操作日志。
若相关日志已被 GC 清理、未提前开启审计,则无法查询操作记录。

1 个赞

需要开启审计日志

1 个赞
  • 查操作人 & SQL:依赖审计日志、通用日志、TiCDC/Binlog,需事前开启。
  • 查被删数据:GC 周期内用 tidb_snapshot 快照查询;超 GC 则无法恢复。
  • 无前置日志,无法定位操作行为。
1 个赞

先确认集群审计日志是否开启 ,TiDB 企业版审计日志可以完整落地:操作账号、客户端来源 IP、执行 SQL 指令、操作库表 全量信息,排查误删、违规操作时,直接检索审计日志就能定位是谁、在哪台机器执行了对应命令

1 个赞

如果重要的库,还是把审计打开的好