Chinaunix

标题: rebalance的问题,紧急!! [打印本页]

作者: flywant    时间: 2006-06-02 16:07
标题: rebalance的问题,紧急!!
刚开始用DB2,正在往数据库中导入大量的数据,肯定会造成表空间满的情况。于是我添加了一个container,使用的命令是:
db2 "alter tablespace E50#EL640D add ( file '/db2/E50/sapdata6/NODE0000/E50#EL640D.container001' 1024M)"

但是发现标空间仍然还剩下300多MB,根本没有增长。
使用db2 list tablespaces show detail查看:
Tablespace ID                        = 17
Name                                 = E50#EL640D
Type                                 = Database managed space
Contents                             = Any data
State                                = 0x10000000
   Detailed explanation:
     DMS rebalancer is active
Total pages                          = 799744
Useable pages                        = 799712
Used pages                           = 534928
Free pages                           = 55584
High water mark (pages)              = 534928
Page size (bytes)                    = 4096
Extent size (pages)                  = 16
Prefetch size (pages)                = 16
Number of containers                 = 2

注意到:DMS rebalancer is active

几个问题:
1. 如果表空间满,一般的方法是不是通过添加一个container来解决?
2. 添加一个container,rebalance需要多长时间?能否给个大致的印象?
3. 如果本来的Container是4GB,那么新添加的container是否也需要4GB?如果是1GB会怎么样?
作者: flywant    时间: 2006-06-02 16:22
刚查了一篇文章:

DB2 Version 8
Increase the size of a DMS tablespace by adding a new stripe set. To do so, enter the
following SQL command:
alter tablespace <tablespace name> begin new stripe set (file
‘<container name>’ <number of pages>)
This does not cause rebalancing. The space that you have added will be available
immediately.

请问是所谓的stripe set 好,还是balance好?
作者: hanxiang    时间: 2006-06-02 16:42
轻轻说一句,表空间不够了,应该是增加表空间,或是扩表空间吧
作者: smithy    时间: 2006-06-02 23:00
使用rebalance时,最好使用stripe set
BEGIN NEW STRIPE SET不要求其做reblance
这样还没有开始做reblance,这样做的目的是表空间的数据迁移
如果只是添加表空间
不用这样做
作者: smithy    时间: 2006-06-02 23:04
数据迁移
ALTER TABLESPACE USERSPACE1 BEGIN NEW STRIPE SET (file '/newfile' 200G)
ALTER TABLESPACE USERSPACE1 DROP (file '/oldfile')
ps -ef | grep db2rebal| grep -v grep  检查是否完成
添加表空间
alter tablespace USERSPACE1 add (file '/newfile' 200g)"
作者: flywant    时间: 2006-06-03 00:02
标题: 回复 3楼 hanxiang 的帖子
扩表空间的方式不就是添加一个新的container嘛,有什么错误??
作者: smithy    时间: 2006-06-03 21:17
可以啊
作者: myuhan    时间: 2006-06-03 21:28
其实container建议你是大小相同的,reblance这个进程没办法给你估计,我曾经40多个G的TABLESPACE添加了个12G的container,根本没感觉到reblance的过程(虽然能监控到起进程的存在),只要不影响你的应用就可以,BLANCE和你的硬件有很大的关系。至于你添件了container为什么空间没增加我没仔细看,但是如果你的语法没什么问题的话,tablespaces size是要增加的。
作者: huyuhui001    时间: 2006-06-04 14:24
添加一个container数据库一般会自动完成rebalance,在rebalance完成后你就可以看到新的空间大小了。
作者: cyp1975    时间: 2006-06-05 18:53
你好,故障描述还是不具体,如果方便,请联系我,010-51295545,msn:cyp1975@hotmail.com,
很乐意与你一起交流,帮你解决问题,也可以满足一下我的成就感。
我们在ibm 存储备份,pseries,db2 ,was,tsm方面都有认证和专门的技术考试认证。从事这方面的技术服务多年。最好能电话交流,这样比较直接。
作者: smithy    时间: 2006-06-05 21:57
标题: 回复 9楼 huyuhui001 的帖子
添加表空间的话,好像是不自动rebalance的吧
作者: topicis    时间: 2014-03-18 16:57
1. 如果表空间满,一般的方法是不是通过添加一个container来解决?
回复:解决方案一般有以下几个:1.增加容器 2.改变容器大小 3.表空间迁移 ,将表空间中占用空间比较大的表重定向到另外一个表空间。
2. 添加一个container,rebalance需要多长时间?能否给个大致的印象?
回复:这个是没有具体的标准的。假如你所有的容器都是3G,如果你新加一个容器也是3G的话,平衡会很快,如果服务器性能很好的话,几乎感觉不到平衡就已经平衡好了;如果是加入的容器比较大,平衡就慢了。建议在表空间设计的时候,建议将所有容器设置大小相同,这样i/o是最优的。
3. 如果本来的Container是4GB,那么新添加的container是否也需要4GB?如果是1GB会怎么样?
回复:如果本来的Container是4GB,那么新添加的container建议4GB。如果是1GB也可以的。其实加入的容器大小没有强制要求,只要不超过最大值。只是在本例中加入4GB的容器比较合适。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2