在日常DB2的维护中,transaction log full是比较常见的问题,日志空间使用情况也是我们比较重视的问题,那么如何查看日志空间使用情况呢?
其实昨天在提到归档设置,我们知道DB2 在DATABASE级别有几个参数,如下决定了事物日志的使用空间大小
Log file size (4KB)                        (LOGFILSIZ) = 60000
Number of primary log files                (LOGPRIMARY) = 16
Number of secondary log files              (LOGSECOND) = 200
Changed path to log files                  (NEWLOGPATH) =
Path to log files                                      = /db2inst1_log01/sample
如此我们可以计算分配给日志的空间大约是(200+16)*60000*4/1024/1024大约50GB。
如果日志是单独的文件系统分区,我们在操作系统上即可看到日志空间使用情况,对日志使用情况进行监控,可以看到如下信息:

$ df -g
Filesystem          GB blocks      Free  %Used    Iused  %Iused  Mounted on
/dev/db2inst1_log01    60.00    54.50  10%    1458    1%      /db2inst1_log01
这个需要登录到系统,其实db2pd也是可以看到日志信息的

db2pd -d sample -logs
Database Partition 0 -- Database SAMPLE -- Active -- Up 34 days 17:30:12 -- Date 2013-11-26-10.42.49.558342Logs:
Current Log Number            117123
Pages Written                33697
Cur Commit Disk Log Reads    0
Cur Commit Total Log Reads    0
Method 1 Archive Status      Success
Method 1 Next Log to Archive  117123
Method 1 First Failure        n/a
Method 2 Archive Status      n/a
Method 2 Next Log to Archive  n/a
Method 2 First Failure        n/a
Log Chain ID                  2
Current LSN                  0x00001A2DDE649E70Address            StartLSN        State      Size      Pages      Filename
0x0700000177B795D0 00001A2CBFD88010 0x00000000 60000      60000      S0117104.LOG
0x0700000177B806D0 00001A2CCE7E8010 0x00000000 60000      60000      S0117105.LOG
0x0700000177B8B450 00001A2CDD248010 0x00000000 60000      60000      S0117106.LOG
0x0700000177B82EF0 00001A2CEBCA8010 0x00000000 60000      60000      S0117107.LOG
0x0700000177B9ECD0 00001A2CFA708010 0x00000000 60000      60000      S0117108.LOG
0x0700000177BA27D0 00001A2D09168010 0x00000000 60000      60000      S0117109.LOG
0x0700000177B79E30 00001A2D17BC8010 0x00000000 60000      60000      S0117110.LOG
0x0700000177BAAD50 00001A2D26628010 0x00000000 60000      60000      S0117111.LOG
0x0700000177B9FFD0 00001A2D35088010 0x00000000 60000      60000      S0117112.LOG
0x0700000177BB44D0 00001A2D43AE8010 0x00000000 60000      60000      S0117113.LOG
0x0700000177BD45D0 00001A2D52548010 0x00000000 60000      60000      S0117114.LOG
0x0700000177B7F0D0 00001A2D60FA8010 0x00000000 60000      60000      S0117115.LOG
0x0700000177B9C850 00001A2D6FA08010 0x00000000 60000      60000      S0117116.LOG
0x0700000177B84750 00001A2D7E468010 0x00000000 60000      60000      S0117117.LOG
0x0700000177B877D0 00001A2D8CEC8010 0x00000000 60000      60000      S0117118.LOG
0x0700000177B857D0 00001A2D9B928010 0x00000000 60000      60000      S0117119.LOG
0x0700000177B7DC50 00001A2DAA388010 0x00000000 60000      60000      S0117120.LOG
0x0700000177B83750 00001A2DB8DE8010 0x00000000 60000      60000      S0117121.LOG
0x0700000177B907B0 00001A2DC7848010 0x00000000 60000      60000      S0117122.LOG
0x0700000177B91010 00001A2DD62A8010 0x00000000 60000      60000      S0117123.LOG
0x0700000177B9A150 00001A2DE4D08010 0x00000000 60000      60000      S0117124.LOG

不过之只能看到当前使用日志和日志文件对应的LSN信息和归档情况,对于使用率还真不能看到。
另外还可以在实例快照中看到,不过在此不示例了。

但是上面我们需要登录到操作系统上,如何在远端通过SQL查询呢,其实DB2还是提供了蛮多的方法。
a.通过管理视图查询:

select DB_NAME, LOG_UTILIZATION_PERCENT, TOTAL_LOG_USED_KB,TOTAL_LOG_AVAILABLE_KB,TOTAL_LOG_USED_TOP_KB, DBPARTITIONNUM from SYSIBMADM.LOG_UTILIZATION;
DB_NAME                                                                                            LOG_UTILIZATION_PERCENT TOTAL_LOG_USED_KB    TOTAL_LOG_AVAILABLE_KB TOTAL_LOG_USED_TOP_KB DBPARTITIONNUM
-------------------------------------------------------------------------------------------------------------------------------- ----------------------- -------------------- ---------------------- --------------------- --------------
DSS                                                                                                                                                8.97              4631824              46955050              16655013              0

非常清楚一目了然吧,对于监控事物日志使用情况,及早发现事务日志空间满问题很有帮助。
b.还有一种方法,就是查看快照视图:

select int(total_log_used/1024/1024) as "Log Used (Mb)",int(total_log_available/1024/1024) as "Log Space Free(Mb)",
int((float(total_log_used)/float(total_log_used+total_log_available))*100) as "Pct Used",int(tot_log_used_top/1024/1024) as "Max Log Used (Mb)",
int(sec_log_used_top/1024/1024) as "Max Sec. Used (Mb)",int(sec_logs_allocated) as "Secondaries" from sysibmadm.snapdb;
Log Used (Mb) Log Space Free(Mb) Pct Used    Max Log Used (Mb) Max Sec. Used (Mb) Secondaries
------------- ------------------ ----------- ----------------- ------------------ -----------4544              45833          9            16264              12532          51 record(s) selected.

其实还有一种通过表函数的方法,不过需要带入参数:

select DB_NAME,TOTAL_LOG_AVAILABLE,TOTAL_LOG_USED,SEC_LOG_USED_TOP,SEC_LOGS_ALLOCATED from table(SNAP_GET_DB('SAMPLE',0))
DB_NAME                                                                                                                          TOTAL_LOG_AVAILABLE  TOTAL_LOG_USED      SEC_LOG_USED_TOP    SEC_LOGS_ALLOCATED
-------------------------------------------------------------------------------------------------------------------------------- -------------------- -------------------- -------------------- --------------------
SAMPLE                                                                                                                                      48045192251          4779767749          13141773417                    5

DB2查看事务日志使用空间相关推荐

  1. mysql如何查看事务日记_MySQL日志查看详解

    解决问题: 了解MySQL日志? 怎样查看错误日志? 怎样查看慢日志? 1. MySQL日志分类? MySQL日志主要包含:错误日志.查询日志.慢查询日志.事务日志.二进制日志. 1.1 错误日志: ...

  2. 解释一下SQLSERVER事务日志记录

    解释一下SQLSERVER事务日志记录 大家知道在完整恢复模式下,SQLSERVER会记录每个事务所做的操作,这些记录会存储在事务日志里,有些软件会利用事务日志来读取 操作记录恢复数据,例如:log ...

  3. SQL Server移除事务日志后sys.master_files依然存在记录问题

    在SQL Server中移除了事务日志文件后,使用sys.master_files检查时发现,对应的事务日志文件记录信息依然存在sys.master_files里面,只是状态state_desc为OF ...

  4. Sql Server事务日志

    本文导读:SQL Server中的数据库都是由一或多个数据文件以及一或多个事务日志文件组成的.SQL Server事务日志主要是用来记录所有事务对数据库所做的修改,SQL SERVER利用事务日志来确 ...

  5. (转)解释一下SQLSERVER事务日志记录

    本文转载自桦仔的博客http://www.cnblogs.com/lyhabc/archive/2013/07/16/3194220.html 解释一下SQLSERVER事务日志记录 大家知道在完整恢 ...

  6. 清空数据库事务日志_通过事务日志增长加快数据库恢复和长期运行的事务

    清空数据库事务日志 In my previous article in this series Accelerated Database Recovery; Instant Rollback and ...

  7. SQL FILESTREAM数据库中的事务日志备份

    In the continuation of our SQL FILESTREAM article series, we'll be covering transaction log backups ...

  8. sql server数据库事务日志已满请参阅log_reuse_wait_desc怎么解决?

    数据库使用时,莫名其妙出现关于事务日志已满的报错.具体报错如下: 数据库中的事务日志已满.若要查明无法重用日志中的空间的原因,请参阅sys.databases中的log_reuse_wait_desc ...

  9. SQLServer 2008中事务日志已满问题处理

    错误描述 错误原因 事务日志介绍 排查日志已满问题 解决方法 方法一:界面方式收缩日志 第一步:调整恢复模式 第二步:收缩日志文件 选项说明 第三步:调整恢复模式 方法二:命令行方式收缩日志 另请参阅 ...

  10. [ZT]SQL Server 的事务日志意外增大或充满的处理方法

    http://support.microsoft.com/kb/317375 事务日志文件Transaction Log File是用来记录数据库更新情况的文件,扩展名为ldf. 在 SQL Serv ...

最新文章

  1. SDNU 1176.Jam的计数法(思维)
  2. python开方运算符_Pytorch Tensor基本数学运算详解
  3. JS数据分组[JSON]
  4. 机器学习笔记-基于逻辑回归的分类预测
  5. 抖音html动态时钟,三分钟教会!火爆抖音的“动态时钟屏保”,个性十足!
  6. 用Python对全国火车站数量进行分析,发现东北三省竟然占了2成!
  7. matplotlib绘制风能玫瑰图
  8. 谷歌中国解散 正式退出中国市场
  9. Proximal和ADMM
  10. 天猫总裁靖捷详解新零售:传统商圈平均增长超50%
  11. Ubuntu Linux 系统 键盘错乱 ,按键与输出不一致
  12. OGG 抓取进程模式转换(集成模式→经典模式)(integrated→classic)
  13. 使用低代码平台 - 危险的赌注
  14. 图片马 php 菜刀,图片马的制作以及菜刀的使用
  15. 浅谈电磁学——高斯定理 环路定理
  16. 地图与定位(五)高德地图服务一
  17. 不叹惜、不呼唤我也不哭泣
  18. 直播app开发搭建,两种很简单的网页特效实现
  19. 中国移动飞信免费发短信API接口(第三方 Fetion API)
  20. Camel实战第二版 第一章 初识Camel

热门文章

  1. 败走中国,是亚马逊们的宿命
  2. java bounds_Java Bounds.intBounds方法代码示例
  3. 正宇丨人活得虚伪容易,活得真实很难
  4. 2021最新WordPress安装教程(一):Centos7安装Apache
  5. 强大TOP版淘客程序(带后台管理)
  6. python 排列组合 数据量过大_Python 排列组合的实现
  7. PUF论文整理2:2021_A_Novel_Modeling-Attack_Resilient_Arbiter-PUF_Design
  8. ubuntu 22.04 搜狗输入法 的问题
  9. 好用免费的FTP软件工具推荐,支持中文 速来领取
  10. rabbitmq中交换机类型direct和topic的区别