mco_translog_get_info
此函数获取有关当前正在运行的 TL 运行时的信息。
有关概述,请参阅事务日志记录应用页面。
原型
MCO_RET mco_translog_get_info( mco_db_h db,
mco_TL_current_info_h info )
参数
db | 数据库连接句柄 |
info | 指向定义为以下结构体的指针: |
typedef struct mco_TL_current_info_
{
uint2 flags;
mco_trans_counter_t start_trans_count;
mco_trans_counter_t last_trans_counter;
mco_trans_counter_t stored_transactions;
mco_size_t log_size;
mco_size_t pipe_used_size;
int labels_count;
uint4 max_parallel_trans;
uint4 exceeded_trans_slots_count;
uint4 max_transaction_size;
} mco_TL_current_info_t,
*mco_TL_current_info_h;
描述
此函数获取有关当前正在运行的 TL 运行时的信息。
返回
MCO_S_OK | 日志文件读取成功。 |
MCO_E_TL_INVAL | 参数错误或不相容。 |
MCO_E_TL_NOT_STARTED | 事务日志记录未启动。 |
结构mco_TL_current_info的结构元素定义如下:
标志 | 在传递给mco_translog_start () 的 mco_TL_start_data 结构的 flags 元素中指定的值的组合。MCO_TL_FLAGS |
start_trans_counter | 启动日志文件时事务计数器的值。 |
last_trans_counter | 事务计数器的当前值。 |
stored_transactions | 日志文件中存储的事务计数。 |
log_size | 日志文件的当前大小(以字节为单位)。在 pipe 模式下,这表示管道的当前大小(以字节为单位)(可能小于或等于管道设备的大小)。 |
pipe_used_size | 当前管道尺寸。 |
labels_count | 日志文件中存储的标签计数。 |
max_parallel_trans | 使用事务管理器时,自日志记录开始以来,同时用于并行事务提交的最大日志记录槽数。槽的总数可以从 0 到 max_connections*2。注意!Logging 选项禁用此优化。MVCC``MCO_TRANSLOG_SYNC_INSTANTLY |
exceeded_trans_slots_count | 超过最大日志记录槽数的次数。 |
max_transaction_size | 自日志启动以来最大事务的大小。它可以用作优化为函数提供的内存大小的统计信息,也可以用作在管道模式下使用标志调整字段disk_page_size的值。mco_translog_iterate()``MCO_TRANSLOG_SYNC_INSTANTLY |
请注意,当使用事务管理器时,structure 元素用于信息值。如果并行事务数达到其限制 (max_connections * 2),则 TL 运行时将“保留”其他并行事务,直到保存所有以前的事务。因此 保留所有可用日志槽被使用和其他并行事务被 “持有” 的次数。如果此计数很大,建议使用较高的 .MVCC``exceeded_trans_slots_count``exceeded_trans_slots_count``max_connections