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

MSSQL
SQL Server 压缩日志及数据库文件大小
名词解释:带你轻松接触13个数据库术语
自定义数据库自动编号初始值和步进值
合理设置内存让数据库与其他程序共存
SQL Server 2005:数据类型最大值
数据库手边系列:SQL Server数据表信息
SQL Server讲堂:备份和恢复措施
八个有用的WordPress的SQL语句
SQL Server中链接服务器将替代远程服务器
SQLServer与服务器连接时出错的解决方案
在 SQL Server 数据库开发中的十大问题
SQLServer 游标简介与使用说明
SQLServer 存储过程简介与使用方法
数据库大战: MS SQL Server & IBM DB2
如何了解SQL的执行频率
SQL技巧:快速掌握一些异常精妙的"SQL"语句
经验:解决DB2中出现的SQL1032N错误现象
菜鸟课堂:MySQL权限的详细解答
SQL大讲堂:如何了解SQL的执行频率
扫盲大讲堂:SQL查询结果集对注入的影响及利用

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 114 ::
收藏到网摘: 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、比较常见导致改种问题的原因是,非正常的中止正对表进行的操作,导致对表空间的使用没有正常的释放。