怎么查看DB2每个表的大小

如题所述

第一个是db2的日志问题。db2数据库的日志有两种模式,一种是循环日志,一种是归档模式。你的说法有问题,如果是循环日志的话,根据你的数据库里配置的三个参数,主日志文件和辅助日志文件数及日志大小文件,总的日志大小不会超过(总日志文件数与日志大小的乘积),然后是循环使用的,也就是说,如果数据库进行一次事务操作时,先生成第一个主日志文件(受日志文件大小参数)控制,不足时生成第二个主日志文件,当一次事务超过所有的主日志文件时,才会创建辅助日志文件),然后下次覆盖第一个,依次循环,所以循环日志模式,日志文件大小不是无限增大的。只有在归档模式下才会不断产生日志文件,这种模式的好处是数据库可以恢复到任意时点。查看数据库日志的模式时,可以在db2=>命令行下connect to db name 然后 db2=> get db cfg for dbname
会看到有如下几个参数与日志有关系:
启用的恢复的日志保留 (LOGRETAIN) = OFF
启用的日志记录的用户出口 (USEREXIT) = OFF
日志文件大小(4KB) (LOGFILSIZ) = 1024
主日志文件的数目 (LOGPRIMARY) = 13
辅助日志文件的数目 (LOGSECOND) = 4
已更改的至日志文件的路径 (NEWLOGPATH) =
日志文件路径 = D:\DB2\NODE0000\SQL00002\SQLOGDIR\
溢出日志路径 (OVERFLOWLOGPATH) =
镜像日志路径 (MIRRORLOGPATH) =
首个活动日志文件 =
可以看出这里的数据库是运行于循环日志模式,第一个参数是off,如果是on则处于归档模式。下边有日志文件的路径,如果是归档模式,还可以查看到首个活动日志文件,则可以备份归档日志后,删除活动日志以前的归档日志文件。因此你说的按天的日志不知道是什么意思。更改上述参数采用 update db cfg using ....
第二个问题:db2的数据库数据是存储在表里的,表是位于表空间的,表空间对应的表空间容器物理文件存储在文件系统上。随着数据量的增大,分区容量不够时,一种方法是备份数据库,然后使用[重定向]还原数据库,将数据库的表空间容器重定向到一个存储量大的目录或者磁盘上。另一种方法是,直接为该表空间增加新的表空间容器,就可以了。比较简单,在此不在详述。
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答