DB2如何调整表空间大小

刚刚接到客户那边打的电话,程序一直报错,所有的业务都做不了,拷贝了一份应用服务器(weblogic)的日志,日志里显示:

WARN : 2009-06-18 16:24:32,421: JDBCExceptionReporter[line:77}: SQL Error: -99999, SQLState: null
ERROR: 2009-06-18 16:24:32,422: JDBCExceptionReporter[line:78}: [ibm][db2][jcc][102][10040] 非自动批处理出现故障。虽然已经提交了批处理,但是该批处理的某个成员至少发生了一个异常。
使用 getNextException() 来检索已经过批处理的特定元素的异常。
WARN : 2009-06-18 16:24:32,422: JDBCExceptionReporter[line:77}: SQL Error: -289, SQLState: 57011
ERROR: 2009-06-18 16:24:32,422: JDBCExceptionReporter[line:78}: Error for batch element #1: DB2 SQL error: SQLCODE: -289, SQLSTATE: 57011, SQLERRMC: SMK
WARN : 2009-06-18 16:24:32,423: JDBCExceptionReporter[line:77}: SQL Error: -99999, SQLState: null
ERROR: 2009-06-18 16:24:32,423: JDBCExceptionReporter[line:78}: Error for batch element #2: [ibm][db2][jcc][t4][1026][11339] 错误检查:
WARN : 2009-06-18 16:24:32,423: JDBCExceptionReporter[line:77}: SQL Error: -289, SQLState: 57011
ERROR: 2009-06-18 16:24:32,424: JDBCExceptionReporter[line:78}: Error for batch element #2: DB2 SQL error: SQLCODE: -289, SQLSTATE: 57011, SQLERRMC: SMK
ERROR: 2009-06-18 16:24:32,424: AbstractFlushingEventListener[line:301}: Could not synchronize database state with session
org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:575)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:662)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:632)
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:314)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy803.saveApply(Unknown Source)
at com.cnnct.mp.counterservice.service.CounterServiceService.applySave(CounterServiceService.java:135)
at com.cnnct.mp.counterservice.ejbAction.ApplySaveEjbAction.perform(ApplySaveEjbAction.java:32)
at com.lbs.sieaf.webcontroller.RequestProcessor.processRequest(RequestProcessor.java:245)
at com.lbs.sieaf.webcontroller.MainServlet.doProcess(MainServlet.java:65)
at com.lbs.sieaf.webcontroller.MainServlet.doPost(MainServlet.java:49)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.lbs.sieaf.webcontroller.CSSaftyFilter.doFilter(CSSaftyFilter.java:167)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.cnnct.cp.webcontroller.EncodingFilter.doFilter(EncodingFilter.java:66)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3212)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1983)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1890)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1344)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
Caused by:
com.ibm.db2.jcc.b.ni: [ibm][db2][jcc][102][10040] 非自动批处理出现故障。虽然已经提交了批处理,但是该批处理的某个成员至少发生了一个异常。
使用 getNextException() 来检索已经过批处理的特定元素的异常。
at com.ibm.db2.jcc.b.p.a(p.java:414)
at com.ibm.db2.jcc.b.ih.a(ih.java:2876)
at com.ibm.db2.jcc.b.ih.b(ih.java:2710)
at com.ibm.db2.jcc.b.ih.executeBatch(ih.java:1554)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
... 39 more
ERROR: 2009-06-18 16:24:32,426: LogHelper[line:174}: 100201000|CounterServiceService.applySave的总控方法发生未知异常错误  Hibernate flushing: Could not execute JDBC batch update; uncategorized SQLException for SQL [insert into SMK.MP_YEARCARDPHOTO (CERTNUMBER, PHOTO, PHOTOTYPE, USEMAKE, CLIENTID, AUTONO) values (?, ?, ?, ?, ?, ?)]; SQL state [null]; error code [-99999]; [ibm][db2][jcc][102][10040] 非自动批处理出现故障。虽然已经提交了批处理,但是该批处理的某个成员至少发生了一个异常。
使用 getNextException() 来检索已经过批处理的特定元素的异常。; nested exception is com.ibm.db2.jcc.b.ni: [ibm][db2][jcc][102][10040] 非自动批处理出现故障。虽然已经提交了批处理,但是该批处理的某个成员至少发生了一个异常。
使用 getNextException() 来检索已经过批处理的特定元素的异常。

通过
C:\Documents and Settings\Administrator>db2 ? sql289

SQL0289N 未能在表空间 "<表空间名>"
          中分配新页面。
解释:
在一个或多个数据库分区上,下列其中一个条件为真:

1 分配给此 SMS表空间的其中一个容器已达到最大文件大小。这可能是导致该错误的原因。
2 分配给此 DMS表空间的所有容器已满。这可能是导致该错误的原因。
3 正在进行重新平衡,但其进度还不足以能使用新添加的空间。
4 正在对太小的容器进行重定向复原。
5 重定向复原后正在进行前滚且分配给此表空间的所有容器已满。
6 正在进行跳越添加容器的前滚且分配给此表空间的所有容器已满。
7 尝试创建带有小于 5个可用扩展数据块的表空间。
8 自动调整大小表空间已达到其最大大小且所有容器都已满。或者,容器的当前大小与最大大小之间没有足够的空间可扩展或添加,因此不可能自动增加空间。
9 创建自动存储器表空间时,使用了不会导致容器空间平均分配的值作为初始值。因此,使用了较高值但是此值大于指定的最大大小。
10 启用了自动调整大小的 DMS表空间未达到其最大大小,但容器所在的其中一个文件系统已满,容器不能增大。
11 启用了自动调整大小的 DMS表空间未达到其最大大小,且表空间所在的文件系统未满。但是,正在进行容器操作(或后续的重新平衡)且自动调整大小功能被暂挂,直至操作完成为止。

用户响应:
执行与引起错误的原因对应的操作:

1 切换至 DMS
TABLESPACE,或重新创建具有更多目录(PATH)的 SMS
TABLESPACE,以使:
(目录数)>=(最大表大小/最大文件大小)。注意,最大文件大小与操作系统有关。
2 将新容器添加至 DMS
表空间,并当重新平衡程序使新页可用后,再次尝
试该操作。
3 等待重新平衡程序完成。
4 再次对较大的容器执行重定向复原。
5 再次对较大的容器执行重定向复原。
6 再次执行允许添加容器的前滚,或对较大的容器执行重定向复原。
7 重新提交 CREATE TABLESPACE
语句,确保表空间具有至少 5
个可用的扩展数据块。
8 增大表空间的最大大小。
9 减小表空间的初始大小或增大表空间的最大大小。
10 将新的容器分割集添加至表空间。现有容器不会再增大,当进行自动调整大小时,只扩展表空间的最后范围中的那些新容器。
11 等待操作和后续的重新平衡完成。

sqlcode :   -289
sqlstate :  57011

确定是表空间满了,我想问下如何调整表空间的大小,有点紧急,没时间去网上查资料了,麻烦两位老师指点一下

解答:

DB2现有表空间扩容方法
1)直接添加一个容器的例子:

db2 " ALTER TABLESPACE PAYROLL ADD (DEVICE '/dev/rhdisk9' 10000) "
加容器之后DB2会有一个自动balance的过程,可能会持续几个小时!!!

2)改变现有容器的大小(该方法不会触发balance,但如果表空间建立在裸设备上,则要扩冲裸设备空间):

db2 " ALTER TABLESPACE TS1 RESIZE (FILE '/conts/cont0' 2000, DEVICE '/dev/rcont1' 2000, FILE 'cont2' 2000) "

注意这种方式就是将原有的相应容器都改成大小是2000页

db2 "ALTER TABLESPACE TS1 RESIZE (ALL 2000)"

这种方式就是把表空间中所有的容器大小都改成2000页

db2 " ALTER TABLESPACE TS1 EXTEND (FILE '/conts/cont0' 1000, DEVICE '/dev/rcont1' 1000, FILE 'cont2' 1000) "

这种方式就是将相应的容器都扩大1000页,也就是增加1000页。

db2 " ALTER TABLESPACE DATA_TS EXTEND (ALL 1000)"

这种方式就是将所有的容器都增加1000页。

增加表空间为
1、增加的是裸设备
  ALTER TABLESPACE TS1
     ADD (DEVICE '/dev/rhdisk9' 10000)
2,增加的是文件系统
  ALTER TABLESPACE TS1
     ADD (FILE '/adsasdf/aasdfasd' 10000)
3,删除某个容器
ALTER TABLESPACE TS1
     drop (FILE '/adsasdf/aasdfasd',DEVICE '/dev/rhdisk9' )

DB2 SQLSTATE=57011(转载)

DB2 报 SQLSTATE=57011错误的解决办法

SQLSTATE=57011   为数据库中表空间已满的异常(错误)

可以用命令查看表空间

db2 => list tablespaces show detail

有两种类型表空间:
第一种类型表空间为:SYSCATSPACE,类型为系统管理表空间(SMS)
第二种类型表空间为:用户自己的表空间(比如xjhspaces11),类型为数据库管理表空间(DMS)
查看表空间中总的表空间(Total pages)和 剩余表空间(Free pages)
如果是系统管理表空间(SMS)不够,则是由于磁盘空间不够,需要增加磁盘空间
如果是数据库管理表空间(DMS)不够,则需要扩展表空间
扩展表空间的命令为:
db2 alter tablespace extend (all )
例如:db2 => alter tabblespace xjhspces11 extend(all 2560M)
扩展了数据库表空间2.5G
注意:对数据库管理表空间的扩展前,必须检查磁盘裸设备的空间,如果空间不够,需要增加磁盘裸设备的空间,再扩展数据库管理表空间,并且在扩展表空间之前,最好备份数据库,以免带来不必要的损失
备份数据库命令:$ db2move databaseName export

DB2如何调整表空间大小的更多相关文章

  1. DB2查看表空间大小及使用情况

    1.SQL 查询(选择Schema为SYSPROC) SELECT SUBSTR(TABLESPACE_NAME,,) AS TBSPC_NAME, AS "TOTAL(MB)", ...

  2. db2 查看表空间使用率

    1. 统计所有节点表空间使用率 select substr(TABLESPACE_NAME,1,20) as TBSPC_NAME,bigint(TOTAL_PAGES * PAGE_SIZE)/10 ...

  3. DB2查看表空间和增加表空间容量

    Db2 connect to xxx Db2 “LIST TABLESPACES SHOW DETAIL” Tablespace ID = 7 Name = TSASNAA Type = Databa ...

  4. ZeroMQ接口函数之 :zmq_msg_init_size - 使用一个指定的空间大小初始化ZMQ消息对象

    ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq_msg_init_size zmq_msg_init_size(3) ØMQ Manual - ØMQ/3.2.5 ...

  5. 增加VirtualBox虚拟机的磁盘空间大小(Host:Win7 VirtualBox5.0.16 VM:Win10)

    1 前言 网上关于增加VirtualBox虚拟机的磁盘空间大小的文章非常非常多,这里我之所以再写一篇,是因为在参照这些文章做的时候,由于VirtualBox的版本更新以及其他一些环境问题,碰到到一些问 ...

  6. [Linux] -Docker修改空间大小

    Docker默认空间大小分为两个,一个是池空间大小,另一个是容器空间大小. 池空间大小默认为:100G 容器空间大小默认为是:10G 所以修改空间大小也分为两个: 这里使用centos下的yum进行安 ...

  7. oracle 空间大小查询

    一.表空间大小 select b.file_name 物理文件名, b.tablespace_name 表空间, b.bytes / 1024 / 1024 大小M, (b.bytes - sum(n ...

  8. Linux 查看磁盘空间大小

    (1)查看文件大小 1. 查看当前文件夹下所有文件大小(包括子文件夹)    du -sh   2.查看var目录下文件大小   du -sh var   3.查看指定文件夹下所有文件大小(包括子文件 ...

  9. linux查看修改线程默认栈空间大小(ulimit -s)

    linux查看修改线程默认栈空间大小 ulimit -s 1.通过命令 ulimit -s 查看linux的默认栈空间大小,默认情况下 为10240 即10M 2.通过命令 ulimit -s 设置大 ...

随机推荐

  1. Mecanim动画

    1.基础 现在Animation编辑器给个模型设计一个动画,都会自动为此模型加上Animator组件,并产生一个controller后缀的控制器和一个相关的anim后缀的动画剪辑, unity根据An ...

  2. Linux 文本对比 diff 命令详解(整理)

    diff 命令详解 1.概述 windows系统下面就有不错的文本对比工具可以使用,例如常用的Beyond Compare,WinMerge都是图形界面的比较工具而且使用非常方便,如果你仅仅是在win ...

  3. JAVA并发-线程协作

    这段时间有点忙,技术博客更新的比较少,今天更新一下相关并发的常用线程协作的类吧. ExecutorService 线程池,用于创造和复用线程,他有几种模式. 我举一个自定义线程池数量的例子如下 Exe ...

  4. Oracle 数据库导出时 EXP-00008;ORA-00904

    问题是客户端和服务器端版本问题,我本地是11g,而服务器端是10g. 规则1:低版本的exp/imp可以连接到高版本(或同版本)的数据库服务器,但高版本的exp/imp不能连接到低版本的数据库服务器. ...

  5. [NOI2015][bzoj4197] 寿司晚宴 [状压dp+质因数]

    题面 传送门 思路 首先,要让两个人选的数字全部互质,那么有一个显然的充要条件:甲选的数字的质因数集合和乙选的数字的质因数集合没有交集 30pt 这种情况下n<=30,也就是说可用的质数只有10 ...

  6. 虚拟机——mnt_hgfs下无目录情况解决

    /mnt/hgfs下无目录情况解决: VMware8虚拟机安装Ubuntu 11.10使用share folders共享目录将虚拟机掉电关闭(不能暂停),设置share folders目录,重启虚拟机 ...

  7. nginx配置C compiler cc is not found

    1.需求 linux安装个编译器 参考资料:http://blog.csdn.net/testcs_dn/article/details/51461750

  8. RSA加密/解密 Decryption error异常解决

    RSA加密/解密 Decryption error异常解决 import java.io.ByteArrayOutputStream; import java.security.Key; import ...

  9. .NET 4.0中使用sqlite

    原文发布时间为:2011-12-10 -- 来源于本人的百度文章 [由搬家工具导入] http://www.csharpcity.com/sqlite-ado-net-c-4-0/ Getting S ...

  10. 学习webservice

    客户端测试页: WebService代码: using System; using System.Collections.Generic; using System.Linq; using Syste ...