请问log_scn和事务提交版本号的关系

【 使用版本 】4.1
【问题描述】
比如单分区事务,事务提交时,从GTS(或者gts缓存)获取一个提交版本号,对应的时间是10点,此时为此事务提交写下的commit log的log_scn对应的时间也肯定是10点吗?

我们是事务层给一个时间戳, 日志层给一个时间戳, 取最大值作为 log_scn

如果这样的话,是不是会有备份恢复丢事务的问题,比如事务层给的时间戳是10点,日志层给的时间戳是11点,物理备份恢复时,如果指定10点30分恢复,他会恢复log scn<=10点30分的日志,这样就无法恢复出这个11点的logscn的日志,难道会出现少恢复出这个事务的情况?

日志层给的和事务层给的不会有太大差距. 而且恢复是根据事务版本号判断的

这里只是用小时为单位举例子,实际可能只有纳秒级别的差距


这个帖子里面说的是根据log scn判断的,到底是根据什么判断的?看开源代码里面应该是根据log scn判断的

这个帖子说的逻辑也是对的,关键在于用户给的这个时间转换成scn的过程,scn和事务版本号强相关,转换过程数据库里面会处理,也就说这个时间会转换正确的scn上

请问是怎么转换的?还是下面这个例子,
比如事务层给的时间戳是10点,日志层给的时间戳是11点,物理备份恢复时,如果指定10点30分恢复,
转出来的log scn会大于11点?