Tidb如何查询数据库创建、删除这种操作的历史记录?

如题,现在有一个数据库不见了,现在需要找到什么时候是由谁删除的,但是不知道在哪能找到历史记录,请问各位知道么?

您好: admin show ddl jobs是否有记录?

只能查到10条记录,更早的能否查到?

https://pingcap.com/docs-cn/stable/reference/sql/statements/admin/#admin 可以参考这个文档,可以获取更多的记录。例如

admin show ddl jobs 50;

您好: 历史记录可以使用以下方法查看 https://github.com/pingcap/tidb/blob/master/docs/tidb_http_api.md

非常感谢,已经找到了。现在有另外一个问题,被删除的数据库在表中DM_NAME字段中是空的。很难追溯正确性。如下图所示:

非常感谢!

能否用我给的命令试试呢?包含了sql

{ “id”: 86, “type”: 2, “schema_id”: 84, “table_id”: 0, “schema_name”: “ryl”, “state”: 6, “err”: null, “err_count”: 0, “row_count”: 0, “raw_args”: null, “schema_state”: 0, “snapshot_ver”: 0, “start_ts”: 415869249345814531, “dependency_id”: 0, “query”: “drop database ryl”, “binlog”: { “SchemaVersion”: 59, “DBInfo”: { “id”: 84, “db_name”: { “O”: “ryl”, “L”: “ryl” }

使用你给的命令后没有响应,麻烦帮忙看一下使用是否正确? TiDB版本为v3.0.3 image

您好,

使用 curl 在 tidb server 服务器执行,可能你这个本地和 tidb server 网络不通

网络是通的,/status以及其他的是可以执行的。

image

您好,

使用 TiDB status_port 的端口访问,如果修改过请指定正确的端口号即可;

没有修改过,就是用的默认的10080。

使用HTTP API的方法是不是也只能查到最近的十条结果的sql呢?

被删除的库没有显示 DB_NAME 的问题,在 v3.1.0-rc, v4.0.0-beta 以及之后版本处理了此问题。不过对于在之前 TiDB 版本上已经执行的 DDL 的显示不能处理。 这里描述一下“被删除的库显示 DB_NAME 为空格”的例子,比如有一个 create db 的 DDL job,然后此 db 后来被删除了,这个时候执行“admin show ddl jobs”,那么这个 create db 的 DDL job 里面 DB_NAME 会变成空,因为此时这个 db 被删除了。

HTTP API 的方法不是只能查询最近 10 个,可以查询所有的,也可以查询最近几个(通过 limit),可以参考文档:https://github.com/pingcap/tidb/blob/master/docs/tidb_http_api.md

ddl/history 不行,可以试试在浏览器先运行 http://{TiDBIP}:10080/ddl/history?limit=1试试

curl http://{TiDBIP}:10080/ddl/history 执行失败时的 TiDB log 能给一下吗?