db2表中tabschema为SYSTOOLS,怎么产生的。HMON_ATM_INFO、HMON_COLLECTION这些表可以删除么?

db2表中tabschema为SYSTOOLS,怎么产生的。HMON_ATM_INFO、HMON_COLLECTION这些表可以删除么?,第1张

你说的是SYSTOOLSHMON_ATM_INFO,SYSTOOLSHMON_COLLECTION,SYSTOOLSPOLICY,SYSTOOLSSTMG_DBSIZE_INFO,这四张表吧,这些都系统表,还有创建的一些Explain表(执行计划表)也放在这个目录下,这个目录下的表一般都放在系统临时表空间中,你不需要去做处理,否则可能会报EXP0003W,EXP0005W 这两个警告

#!/bin/ksh -x
db2 connect to DB_NAME
for i in `db2 list tables for schema SCHEMA_NAME|grep SCHEMA_NAME|awk '{print $1'}`
do
db2 set current schema SCHEMA_NAME
db2 import from /dev/null/ of del replace into $i
db2 "reorg table $i"
done
exit
做完清空表的动作后需要做一次reorg这样空间才会回收!
完了做一次runstats 然后可以通过Quest工具看看是不是所有的表的row都为0

1 如何恢复误删的表
使用recover dropped table功能即可
要求是: 误删的表建立且数据注入之后,有该数据库的备份
通过db2 list history dropped table all for dbname找到误删表的Backup ID以及该表的DDL语句
恢复误删表所在表空间 db2 restore db dbname tablespace(tbspname) taken at xxxx
在前滚中指定误删表 backup id,输出表数据
db2 rollforward db dbname to end of logs tablespace(误删表所在表空间名字) recover dropped table backup id to /home/db2inst
在/home/db2inst目录下的node0000目录下有一个data文件,是误删表的数据
通过DDL重建表,并使用LOAD将DATA文件导入表中即可
没有做过备份的话,如果你拷贝的文件夹完整的话(既有元数据,又有数据库数据),可以uncatalog db dbname,然后将拷贝的文件夹拷贝回来,并catalog db dbname就可以了

db2中,执行完delete后,只是在数据前加一个“delete”标识,标识该块存储可以被重用,再执行insert语句时,就会扫描整个表然后把数据插入到这样的标识位置。
所以你执行完delete并不会释放空间

用DB2的Control Center,在表对象上右击,其中有一个选项Show Related就可以这个对象和其他对象之间的关系,你说的那些函数用到了这个表也能看到。
如果函数同名,用 Specific Name来进行删除, 删除语法如下:
DROP SPECIFIC FUNCTION--specific-name


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13393790.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-27
下一篇 2023-07-27

发表评论

登录后才能评论

评论列表(0条)

保存