分类: DB2/Informix
2008-05-31 16:38:48
oncheck 实用程序
oncheck
实用程序显示关于数据库磁盘配置和使用情况的信息,比如一个表使用的页面数量、保留页面的内容和一个表中的区段数量。
通过执行 oncheck
命令调用 oncheck
实用程序。这个命令最简单的形式见清单 6:
oncheck <-option> |
选项 | 描述 |
---|---|
-cc | 检查指定的数据库的系统编目表 |
-cd | 读取所有页面,但是不包括来自指定的数据库、表或段的 tblspace 的简单大对象,并检查每个页面的一致性。还检查那些使用用户定义的访问方法的表。不检查简单大对象或智能大对象。 |
-cD | 与 -cd 相同,但是还读取每个 blobpage 的头并检查一致性。检查简单大对象,但是不检查智能大对象。 |
-ce | 检查每个空闲块列表(对应于空闲空间)和每个 tblspace 区段。还检查智能大对象区段和 sbspace 元数据。oncheck 进程会检查磁盘上的区段是否与当前描述它们的控制信息相符。 |
-ci | 检查与指定的表相关联的所有索引的键值次序以及横向和纵向节点链接的一致性。还检查那些使用用户定义的访问方法的索引。 |
-cI | 与 -ci 相同,但是还检查与索引中的 rowid 相关联的键值是否与行中的键值相同。 |
-cr | 根据几个条件,检查每个根 dbspace 保留页面。 |
-cR | 检查根 dbspace 保留页面、物理日志页面和逻辑日志页面。 |
-cs | 检查一个 sbspace 的智能大对象和 sbspace 元数据。 |
-cS | 检查一个 sbspace 的智能大对象和 sbspace 元数据以及区段。 |
-pB | 显示统计数据,这些数据描述指定的表中 blobspace blobpage 的平均完整性。这些统计数据可以用来衡量一个数据库或表中简单大对象的存储效率。如果没有指定表或段,就显示整个数据库的统计数据。 |
-pc | 与 -cc 相同,但是还显示系统编目信息(因为它会检查系统编目表),包括每个表的区段使用情况。 |
-pd | 以十六进制格式显示行。 |
-pD | 以十六进制格式显示行,还显示 tblspace 中存储的智能大对象值或 sbspace sbpage 中存储的智能大对象的头信息,以及 blobspace blobpage 中存储的简单大对象。 |
-pe | 与 -ce 相同,但是还显示块和 tblspace 区段信息(因为它会检查空闲块列表)、对应的空闲空间和每个 tblspace 区段。 |
-pk | 与 -ci 相同,但是还显示指定表的所有索引的键值。 |
-pl | 与 -ci 相同,但是还显示键值。只检查叶节点索引页面。 |
-pL | 与 -cI 相同,但是还显示叶节点索引页面的键值和 rowid。 |
-pp | 显示一个逻辑页面的内容。 |
-pP | 与 -pp 相同,但是要求输入块号和逻辑页面号或内部 rowid。 |
-pr | 与 -cr 相同,但是还显示保留页面信息。 |
-ps | 检查并显示一个 sbspace 的智能大对象和 sbspace 元数据。 |
-pS | 检查并显示智能大对象和 sbspace 元数据。列出各个智能大对象的区段和头信息。 |
-pt | 显示一个表或段的 tblspace 信息。 |
-pT | 与 -pt 相同,但是还按照页面类型显示索引信息和页面分配信息(针对 dbspace)。 |
oncheck
实用程序可以修复以下磁盘结构:
如果 oncheck
探测到其他结构中有不一致的地方,就会发出警告,但是 oncheck
无法纠正问题。
如果索引是使用支持 oncheck -y
选项的访问方法创建的,oncheck
就可以修复 sbspace 和外部空间中的索引。尽管 oncheck
实用程序不修复分段的索引,但是用户定义的访问方法可以修复它们。
在以下操作期间,oncheck
实用程序会在表上放一个共享锁,所以在检查完成之前,其他用户不能执行更新、插入或删除:
-ci
、-cI
、-pk
、-pK
、-pl
或 -pL
),而且表使用页面锁定
-ci
、-cI
、-pk
、-pK
、-pl
或 -pL
选项的同时指定了 -x
选项,而且表使用行锁定 如果表没有使用页面锁定,那么在用 oncheck -ci
、-cI
、-pk
、-pK
、-pl
或 -pL
选项检查索引时,数据库服务器就不会在表上放共享锁。如果在索引检查期间表上没有共享锁,其他用户就可以在检查期间更新行。
由于在索引检查期间在使用行锁的表上不放置共享锁,oncheck
实用程序的索引检查可能不准确。要想绝对保证完整的索引检查,可以使用 -x
选项执行 oncheck
。使用 -x
选项执行时,oncheck
会在表上放一个共享锁,在检查完成之前,其他用户不能执行更新、插入或删除。