如何在 DB2 中找出当前事务日志的大小?
Posted
技术标签:
【中文标题】如何在 DB2 中找出当前事务日志的大小?【英文标题】:How to find out current transaction log size in DB2? 【发布时间】:2011-04-12 14:20:12 【问题描述】:如何找出当前事务日志的大小?是否有可能做例如通过用 SQL 查询一些系统表?找出事务日志的最大大小也很有趣。
是从文件系统中查找的唯一选项吗?
【问题讨论】:
【参考方案1】:GET DATABASE CONFIGURATION 命令将为您提供有关数据库的所有配置信息。
它包括有关日志文件大小、主要和次要日志文件的数量等信息。示例输出如下。
Log file size (4KB) (LOGFILSIZ) = 1024
Number of primary log files (LOGPRIMARY) = 13
Number of secondary log files (LOGSECOND) = 4
Changed path to log files (NEWLOGPATH) =
Path to log files = D:\DB2\NODE0000\SQL00003\SQLOGDIR\
Overflow log path (OVERFLOWLOGPATH) =
Mirror log path (MIRRORLOGPATH) =
First active log file =
Block log on disk full (BLK_LOG_DSK_FUL) = NO
Block non logged operations (BLOCKNONLOGGED) = NO
Percent max primary log space by transaction (MAX_LOG) = 0
Num. of active log files for 1 active UOW(NUM_LOG_SPAN) = 0
【讨论】:
是否可以通过对系统表进行一些 SELECT 来获取这些信息? 恕我直言,这个答案更好,因为它不需要数据库连接,可以通过命令行完成。【参考方案2】:是的,您可以从表 SYSIBMADM.DBCFG 中获取此数据
例如 - 我必须检查数据库日志参数,所以我使用查询:
SELECT * FROM SYSIBMADM.DBCFG
WHERE
NAME IN ('logfilsiz','logprimary','logsecond')
【讨论】:
【参考方案3】:也许这是最好的选择 - 以防有人还在寻找:
$ db2 "select * from sysibmadm.MON_TRANSACTION_LOG_UTILIZATION"
LOG_UTILIZATION_PERCENT TOTAL_LOG_USED_KB TOTAL_LOG_AVAILABLE_KB TOTAL_LOG_USED_TOP_KB MEMBER
----------------------- -------------------- ---------------------- --------------------- ------
0.20 18102 8745297 146156 0
1 record(s) selected.
【讨论】:
以上是关于如何在 DB2 中找出当前事务日志的大小?的主要内容,如果未能解决你的问题,请参考以下文章