当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL0290N表空间状态问题:停顿的独占处理

MSSQL
四种方法在SQL Server数据库中成批导入数据
关于SQL Server数据库备份和恢复特性介绍
SQL Server 2005中数据库镜像的四个问题
SQL Server 2005代理服务应用软件组成
如何巧妙利用SQL Server的EXISTS结构
教你轻松学会SQL Server记录轮班的技巧
解析SQL Server中数据库快照的工作原理
使用SQL2000将现有代码作为Web服务提供
指导:SQL Server无日志恢复数据库
SQL Server 2005 Express混合模式登录设置
检测SQL Server是否有特洛伊木马
分布式DBA:SQL存储过程知识总结
在SQL Server 2008中安装安全审计
SQL Server 2005五个动态管理对象
用SQL Server事件探查器创建跟踪
讲解SQL Server数据库触发器的安全隐患
如何减少SQL Server死锁发生的情况
在SQL Server中使用索引的技巧
在SQL 2005中实现循环每一行做一定的操作
教你用压缩技术给SQL Server备份文件瘦身

MSSQL 中的 SQL0290N表空间状态问题:停顿的独占处理


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 149 ::
收藏到网摘: n/a

今天一个同事报告一个问题,表都不能使用了,检查了一下,发现

问题 db2 => select * from test

ACTNO ACTKWD ACTDESC

------ ------ --------------------

SQL0290N Table space access is not allowed. SQLSTATE=55039

其他表也不能使用

在db2cc里查看表空间状态为: 停顿的独占

解决方法:

到命令行状态,首先connect 到需要处理的数据库

◆1、db2 => list tablespaces show detail 显示表空间状态

Tablespaces for Current Database

Tablespace ID = 0

Name = SYSCATSPACE

Type = System managed space

Contents = Any data

State = 0x0000

Detailed explanation:

Normal

Total pages = 2519

Useable pages = 2519

Used pages = 2519

Free pages = Not applicable

High water mark (pages) = Not applicable

Page size (bytes) = 4096

Extent size (pages) = 32

Prefetch size (pages) = 32

Number of containers = 1

Tablespace ID = 1

Name = TEMPSPACE1

Type = System managed space

Contents = System Temporary data

State = 0x0000

Detailed explanation:

Normal

Total pages = 1

Useable pages = 1

Used pages = 1

Free pages = Not applicable

High water mark (pages) = Not applicable

Page size (bytes) = 4096

Extent size (pages) = 32

Prefetch size (pages) = 32

Number of containers = 1

Tablespace ID = 2

Name = USERSPACE1

Type = System managed space

Contents = Any data

State = 0x0004 这个代码意义就是“停顿的独占”,正常状态为0x0000,

非0就是有问题,都可以用下面方法解决。

Detailed explanation:

Quiesced: EXCLUSIVE

Total pages = 687

Useable pages = 687

Used pages = 687

Free pages = Not applicable

High water mark (pages) = Not applicable

Page size (bytes) = 4096

Extent size (pages) = 32

Prefetch size (pages) = 32

Number of containers = 1

Number of quiescers = 1 注意下面几行

Quiescer 1:

Tablespace ID = 2

Object ID = 50 “object id是造成死锁表的id”

◆2、db2 => select tabname from syscat.tables where tableid=50 通过所住的id号找出是哪个表。

TABNAME

--------------------------------------------

SYSINDEXEXTENSIONPARMS

TEST 就是这个表

2 record(s) selected.

◆3、db2 => quiesce tablespaces for table test reset 执行该命令清除错误的状态

DB20000I The QUIESCE TABLESPACES command completed successfully.

◆4、重新select,问题解决

◆5、比较常见导致改种问题的原因是,非正常的中止正对表进行的操作,导致对表空间的使用没有正常的释放。