我们使用的是一个MariaDb 10.4.14,我们使用Debezium套件来处理二进制日志。我们遇到一个问题,因为binlog中的时间戳是一个uint32,它不能提供毫秒的精度。
您知道是否可以通过更改MariaDb或Debezium中的配置来获得这种精度吗?
发布于 2020-11-16 22:37:12
不,这是不可能的,因为时间戳存储在32位整数中.
标题/描述格式定义如下(来自MySQL Connector/C mariadb_rpl.h):
struct st_mariadb_rpl_format_description_event
{
uint16_t format;
char *server_version;
uint32_t timestamp;
uint8_t header_len;
};format_description二进制日志事件的协议实现可以在Client/Server协议事件中找到。
将时间戳从uint32_t更改为uint64_t或MYSQL_TIME将破坏协议,从而破坏整个复制,但也会破坏读取二进制日志的现有应用程序。
https://stackoverflow.com/questions/64856677
复制相似问题