为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:138
【操作系统】:麒麟海光
【CPU】: 麒麟
【问题描述】*:
如果主库一个大事务跑了10个小时,,没有提交,是不是主备环境下,备库会落后10个小时
数据守护系统中,主库以rlog_pkg为最小单位发送redo日志到备库,物理事务提交时将redo日志写入到日志包中,在数据库事务提交或日志包被写满时触发日志刷盘动作。日志刷盘线程负责将日志包中的redo日志写入联机日志文件,当主库触发日志写文件操作后,日志线程先将rlog_pkg发送到备库,备库接收后进行合法性校验,合法则作为 keep_rlog_pkg保留在备库内存中,原有keep_rlog_pkg的redo日志加入apply任务队列进行redo日志重演,并响应主库日志接收成功,之后主库redo正常写磁盘。
1、如果主库上的大事务持续10个小时未提交,那么在这个时间段内,备库似乎会“落后”10个小时。但实际上,这种“落后”并不是因为备库的处理能力不足,而是因为备库在等待主库上的事务提交,以便获取完整的归档日志。
2、一旦主库上的大事务提交,与该事务相关的所有日志都会立即被发送到备库,备库会尽快应用这些日志以保持与主库的数据一致。
3、备库的“落后”时间实际上是事务提交后日志复制重演所需的时间,这个时间通常远小于事务本身的运行时间。