DB2表空间静默状态的

数据库
DB2表空间静默状态可能导致对表空间操作时出现错误导致操作失败,下面就为您详细分析该问题,希望对您能有所启迪。

DB2表空间处于静默状态的话,由于静默操作导致的锁定的存在,对这样的表空间进行某些操作时,可能会遇到 SQL3805N 或 SQL0290N 等报错信息,提示表空间不可访问。

例如以位于 DB2INST1.USERSPAC1 表空间的 DB2INST1.STAFF 表为例:

a) 静默DB2表空间为意向更新状态:

db2 quiesce tablespaces for table db2inst1.staff intent to update

b) 尝试删除表的操作将失败:

db2 delete from db2inst1.staff
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0290N Table space access is not allowed. SQLSTATE=55039

此时若使用:

db2 list tablespaces

命令检查表空间状态,可以发现DB2表空间 USERSPACE1 处于 INTENT TO UPDATE 的静默状态:

......
Tablespace ID = 2
Name = USERSPACE1
Type = System managed space
Contents = Any data
State = 0x0002
Detailed explanation:
Quiesced: UPDATE
......

如果要除去这一静默状态,可使用静默命令中的“RESET”选项,使表空间恢复到正常状态(0x0000),从而实现对DB2表空间中表的正常访问。

此时,若尝试使用任何一个DB2 用户,执行如下命令,进行除去该表空间的静默状态的尝试:

db2 quiesce tablespaces for table db2inst1.staff reset
DB20000I The QUIESCE TABLESPACES command completed successfully.

可以看到命令已成功完成,但当再次尝试上述的 DELETE 操作时,却仍然遇到同样的SQL0290N 的报错,即不允许存取表空间。查询表空间状态表明它仍处于原来的意向更新的静默状态。
 

 

 

【编辑推荐】

windows下创建DB2表空间的过程

带您学习DB2字符集和MySql字符集

同表内记录间的DB2更新语句

db2扩充表空间和字段长度的方法

DB2日期时间型数据类型介绍

责任编辑:段燃 来源: 互联网
相关推荐

2010-11-01 16:38:13

DB2表空间

2010-11-01 16:54:09

DB2表空间

2010-09-30 11:36:31

DB2表空间

2010-09-30 11:26:26

DB2表空间

2010-09-30 11:20:35

DB2表静默状态

2010-11-01 12:11:43

DB2表空间

2010-11-01 16:07:22

DB2表空间

2010-11-02 14:45:12

DB2创建表空间

2010-09-01 14:00:01

DB2表空间

2010-11-03 11:26:39

DB2表空间

2010-09-30 11:55:03

DB2表空间

2010-09-01 14:46:16

DB2表空间

2010-11-01 16:19:18

2010-09-30 09:53:05

DB2创建表空间

2010-09-30 10:04:06

DB2创建表空间

2010-08-31 17:14:24

DB2表空间

2010-11-02 16:02:59

db2表空间

2010-11-03 11:30:56

DB2表空间扩容

2010-09-01 14:07:33

DB2映射

2010-11-03 15:49:32

DB2删除表
点赞
收藏

51CTO技术栈公众号