DB2表空间的静默状态

来源:互联网 发布:刘知白山水画 编辑:程序博客网 时间:2024/06/05 04:05
DB2表空间是DB2数据库的重要组成部分,下面就为您详细介绍DB2表空间的静默状态,供您参考,希望对您能够有所帮助  。
  DB2表空间的静默状态:
  对于DB2数据库,可利用QUIESCE命令静默表所在的DB2表空间,其命令的基本语法为:
  db2 quiesce tablespaces for table <tablename> <静默状态>
  其中DB2表空间的静默状态分以下三种:
  共享(SHARE): 
将表置于共享方式  。在此方式中,交易将试图对表空间请求意向共享锁(IS),表上请求共享锁(S),因此所有用户(包括您自己)可读取但不能更改表数据  。
  意向更新(INTENT TO UPDATE): 
将表置于更新方式  。在此方式中,交易将试图对表空间请求意向互斥锁(IX),表上请求更新(U)锁,因此仅您自己可更新表数据,其他用户可读取但不能更新该数据  。
  互斥(EXCLUSIVE):
使表处于互斥方式  。在此方式中,交易将试图对表空间和表请求超级互斥锁(Z),因此仅您自己可读取或更新表数据  。

  如果表已经处于一个停顿方式,则可以将其更改至较高级(更加互斥)方式  。例如,若表已处于共享方式,则可将它更改为意向更新或互斥方式  。然而,不能将较高方式更改为较低方式  。互斥比意向更新级别更高,而意向更新又比共享级别更高  。


db2 => list tablespaces           当前数据库的表空间 表空间标识                        = 0 名称                              = SYSCATSPACE 类型                              = 系统管理空间 内容                              = 任何数据 状态                              = 0x0000   详细解释:     正常 表空间标识                        = 1 名称                              = TEMPSPACE1 类型                              = 系统管理空间 内容                              = 系统临时数据 状态                              = 0x0000   详细解释:     正常 表空间标识                        = 2 名称                              = USERSPACE1 类型                              = 系统管理空间 内容                              = 任何数据 状态                              = 0x0000   详细解释:     正常db2 => quiesce tablespaces for table EMP_ACT shareDB20000I  QUIESCE TABLESPACES 命令成功完成。db2 => list tablespaces           当前数据库的表空间 表空间标识                        = 0 名称                              = SYSCATSPACE 类型                              = 系统管理空间 内容                              = 任何数据 状态                              = 0x0000   详细解释:     正常 表空间标识                        = 1 名称                              = TEMPSPACE1 类型                              = 系统管理空间 内容                              = 系统临时数据 状态                              = 0x0000   详细解释:     正常 表空间标识                        = 2 名称                              = USERSPACE1 类型                              = 系统管理空间 内容                              = 任何数据 状态                              = 0x0001   详细解释:     已停顿:SHAREdb2 =>
现在我对表插入一条数据

db2 => INSERT INTO WENCHAO.EMP_ACT (EMPNO, PROJNO, ACTNO, EMPTIME, EMSTDATE, EMENDATE)VALUES ('100000', 'MA2100', 10, 0.5, '01/01/1982', '11/01/1982')DB21034E  该命令被当作 SQL语句来处理,因为它不是有效的“命令行处理器”命令。在 SQL 处理期间,它返回:SQL0290N  不允许存取表空间。  SQLSTATE=55039db2 =>

我现在插入另外一个表试下

db2 => INSERT INTO WENCHAO.ORG (DEPTNUMB, DEPTNAME, MANAGER, DIVISION, LOCATION) VALUES (88, 'Head Office', 160, 'Corporate', 'New York')DB21034E  该命令被当作 SQL语句来处理,因为它不是有效的“命令行处理器”命令。在 SQL 处理期间,它返回:SQL0290N  不允许存取表空间。  SQLSTATE=55039db2 =>

同样报错,可见只要对一张表使用了静默模式的话,该表所在的表空间就处于该种模式

看下数据库状态

db2 => get db cfg for sample       数据库 sample 的数据库配置 数据库配置发行版级别                                    = 0x0a00 数据库发行版级别                                        = 0x0a00 数据库地域                                              = CN 数据库代码页                                            = 1386 数据库代码集                                            = GBK 数据库国家/地区代码                                    = 86 数据库整理顺序                                          = UNIQUE 备用整理顺序                              (ALT_COLLATE) = 动态 SQL 查询管理                      (DYN_QUERY_MGMT) = DISABLE 对此数据库的发现支持                      (DISCOVER_DB) = ENABLE 缺省查询优化类                           (DFT_QUERYOPT) = 5 并行度                                     (DFT_DEGREE) = 1 在算术异常时继续                      (DFT_SQLMATHWARN) = NO 缺省刷新有效期                        (DFT_REFRESH_AGE) = 0 缺省维护的选项(DFT_MTTB_TYPES)的表类型                = SYSTEM 保留的高频值的数目                     (NUM_FREQVALUES) = 10 保留的分位点数目                        (NUM_QUANTILES) = 20 备份暂挂                                                = NO 数据库是一致的                                          = NO 前滚暂挂                                                = NO 复原暂挂                                                = NO 启用的多页文件分配                                      = YES 恢复状态的日志保留                                      = NO 日志记录状态的用户出口                                  = NO Data Links 标记到期时间间隔(秒)           (DL_EXPINT) = 60 Data Links 写令牌初始时间间隔           (DL_WT_IEXPINT) = 60 副本的 Data Links 数目                  (DL_NUM_COPIES) = 1 删除后的 Data Links 时间(天数)        (DL_TIME_DROP)  = 1 大写的 Data Links 标记                       (DL_UPPER) = NO Data Links 标记算法                          (DL_TOKEN) = MAC0 数据库堆(4KB)                                (DBHEAP) = 600 数据库共享内存大小(4KB)             (DATABASE_MEMORY) = AUTOMATIC 目录高速缓存大小(4KB)               (CATALOGCACHE_SZ) = (MAXAPPLS*4) 日志缓冲区大小(4KB)                         (LOGBUFSZ) = 8 实用程序堆大小(4KB)                    (UTIL_HEAP_SZ) = 5000 缓冲池大小(页)                             (BUFFPAGE) = 250 扩充存储段大小(4KB)                   (ESTORE_SEG_SZ) = 16000 扩充存储段的数目                      (NUM_ESTORE_SEGS) = 0 锁定列表的最大存储量(4KB)                   (LOCKLIST) = 50 应用程序组内存集的最大大小(4KB)     (APPGROUP_MEM_SZ) = 30000 应用程序组堆的内存百分比              (GROUPHEAP_RATIO) = 70 最大应用程序控制堆大小(4KB)         (APP_CTL_HEAP_SZ) = 128 共享排序的排序堆域值(4KB)            (SHEAPTHRES_SHR) = (SHEAPTHRES) 排序列表堆(4KB)                            (SORTHEAP) = 256 SQL 语句堆(4KB)                            (STMTHEAP) = 2048 缺省应用程序堆(4KB)                      (APPLHEAPSZ) = 256 程序包高速缓存大小(4KB)                  (PCKCACHESZ) = (MAXAPPLS*8) 统计信息堆大小(4KB)                    (STAT_HEAP_SZ) = 4384 检查死锁的时间间隔(毫秒)                  (DLCHKTIME) = 10000 每个应用程序的锁定百分比列表                 (MAXLOCKS) = 22 锁定超时(秒)                             (LOCKTIMEOUT) = -1 更改的页阈值                           (CHNGPGS_THRESH) = 60 异步页清除程序的数目                   (NUM_IOCLEANERS) = 1 I/O 服务器的数目                        (NUM_IOSERVERS) = 3 索引排序标志                                 (INDEXSORT) = YES 顺序检测标志                                (SEQDETECT) = YES 缺省预取大小(页)                    (DFT_PREFETCH_SZ) = AUTOMATIC 跟踪修改的页数                               (TRACKMOD) = OFF 容器的缺省数目                                          = 1 缺省表空间扩展数据块大小(页)            (DFT_EXTENT_SZ) = 32 活动应用程序的最大数目                       (MAXAPPLS) = AUTOMATIC 活动应用程序的平均数目       (AVG_APPLS) = 1 每个应用程序的最大打开 DB 文件数             (MAXFILOP) = 64 日志文件大小(4KB)                         (LOGFILSIZ) = 1000 主日志文件的数目                           (LOGPRIMARY) = 3 辅助日志文件的数目                          (LOGSECOND) = 2 已更改的至日志文件的路径                   (NEWLOGPATH) = 日志文件路径                                            = D:\DB2\NODE0000\SQL00002\SQLOGDIR\ 溢出日志路径                          (OVERFLOWLOGPATH) = 镜像日志路径                            (MIRRORLOGPATH) = 首个活动日志文件                                        = 磁盘上已满的块日志                    (BLK_LOG_DSK_FUL) = NO 事务使用的最大活动日志空间的百分比            (MAX_LOG) = 0 1 个活动 UOW 的活动日志文件的数目        (NUM_LOG_SPAN) = 0 组落实计数                                  (MINCOMMIT) = 1 软检查点前回收的日志文件的百分比              (SOFTMAX) = 100 启用的恢复的日志保留                        (LOGRETAIN) = OFF 启用的日志记录的用户出口                     (USEREXIT) = OFF HADR 数据库角色                                          = STANDARD HADR 本地主机名                        (HADR_LOCAL_HOST) = HADR 本地服务名称                       (HADR_LOCAL_SVC) = HADR 远程主机名                       (HADR_REMOTE_HOST) = HADR 远程服务名称                      (HADR_REMOTE_SVC) = 远程服务器的 HADR 实例名              (HADR_REMOTE_INST) = HADR 超时值                               (HADR_TIMEOUT) = 120 HADR 日志写同步方式                      (HADR_SYNCMODE) = NEARSYNC 第一个日志归档方法                        (LOGARCHMETH1) = OFF logarchmeth1 的选项                        (LOGARCHOPT1) = 第二个日志归档方法                        (LOGARCHMETH2) = OFF logarchmeth2 的选项                        (LOGARCHOPT2) = 故障转移日志归档路径                     (FAILARCHPATH) = 错误时重试日志归档次数                   (NUMARCHRETRY) = 5 日志归档重试延迟(秒)                 (ARCHRETRYDELAY) = 20 供应商选项                                  (VENDOROPT) = 启用的自动重新启动                        (AUTORESTART) = ON 索引重新创建时间和重做索引构建               (INDEXREC) = SYSTEM (RESTART) 在索引构建期间记录页                    (LOGINDEXBUILD) = OFF loadrec 会话的缺省数目                (DFT_LOADREC_SES) = 1 要保留的数据库备份的数目               (NUM_DB_BACKUPS) = 12 恢复历史保留时间(天数)              (REC_HIS_RETENTN) = 366 TSM 管理类                              (TSM_MGMTCLASS) = TSM 节点名                               (TSM_NODENAME) = TSM 所有者                                  (TSM_OWNER) = TSM 密码                                 (TSM_PASSWORD) = 自动维护                                   (AUTO_MAINT) = OFF   自动数据库备份                       (AUTO_DB_BACKUP) = OFF   自动表维护                           (AUTO_TBL_MAINT) = OFF     自动 runstats                       (AUTO_RUNSTATS) = OFF     自动统计信息概要分析              (AUTO_STATS_PROF) = OFF       自动概要文件更新                  (AUTO_PROF_UPD) = OFF     自动重组                               (AUTO_REORG) = OFFdb2 =>





db2 => quiesce tablespaces for table EMP_ACT intend TO UPDATESQL0104N  在 "<标识>" 之后发现意外的标记"intend"。期望的标记可能包括:"EXCLUSIVE"。  SQLSTATE=42601db2 => quiesce tablespaces for table EMP_ACT intent TO UPDATEDB20000I  QUIESCE TABLESPACES 命令成功完成。db2 => list tablespaces           当前数据库的表空间 表空间标识                        = 0 名称                              = SYSCATSPACE 类型                              = 系统管理空间 内容                              = 任何数据 状态                              = 0x0000   详细解释:     正常 表空间标识                        = 1 名称                              = TEMPSPACE1 类型                              = 系统管理空间 内容                              = 系统临时数据 状态                              = 0x0000   详细解释:     正常 表空间标识                        = 2 名称                              = USERSPACE1 类型                              = 系统管理空间 内容                              = 任何数据 状态                              = 0x0002   详细解释:     已停顿:UPDATE


db2 => quiesce tablespaces for table EMP_ACT exclusiveDB20000I  QUIESCE TABLESPACES 命令成功完成。db2 => list tablespaces           当前数据库的表空间 表空间标识                        = 0 名称                              = SYSCATSPACE 类型                              = 系统管理空间 内容                              = 任何数据 状态                              = 0x0000   详细解释:     正常 表空间标识                        = 1 名称                              = TEMPSPACE1 类型                              = 系统管理空间 内容                              = 系统临时数据 状态                              = 0x0000   详细解释:     正常 表空间标识                        = 2 名称                              = USERSPACE1 类型                              = 系统管理空间 内容                              = 任何数据 状态                              = 0x0004   详细解释:     已停顿:EXCLUSIVEdb2 =>




----现在如何解锁这种静默状态呢

db2 => quiesce tablespaces for table org resetDB20000I  QUIESCE TABLESPACES 命令成功完成。db2 => list tablespaces           当前数据库的表空间 表空间标识                        = 0 名称                              = SYSCATSPACE 类型                              = 系统管理空间 内容                              = 任何数据 状态                              = 0x0000   详细解释:     正常 表空间标识                        = 1 名称                              = TEMPSPACE1 类型                              = 系统管理空间 内容                              = 系统临时数据 状态                              = 0x0000   详细解释:     正常 表空间标识                        = 2 名称                              = USERSPACE1 类型                              = 系统管理空间 内容                              = 任何数据 状态                              = 0x0004   详细解释:     已停顿:EXCLUSIVEdb2 => quiesce tablespaces for table emp_act resetDB20000I  QUIESCE TABLESPACES 命令成功完成。db2 => list tablespaces           当前数据库的表空间 表空间标识                        = 0 名称                              = SYSCATSPACE 类型                              = 系统管理空间 内容                              = 任何数据 状态                              = 0x0000   详细解释:     正常 表空间标识                        = 1 名称                              = TEMPSPACE1 类型                              = 系统管理空间 内容                              = 系统临时数据 状态                              = 0x0000   详细解释:     正常 表空间标识                        = 2 名称                              = USERSPACE1 类型                              = 系统管理空间 内容                              = 任何数据 状态                              = 0x0000   详细解释:     正常db2 =>

所以必须找到当初静默时的表,具体如下

1. 连接到数据库
2. 用 list tablespaces show detail #判断哪个tablespace处于quiesce状态和和取得对象(object)ID
3. 用 db2 “select tabname from syscat.tables where tablid=对象ID” #得到表名
4. 用 db2 quiesce tablespaces for table 表名 reset #去除quiesce状态




-----延伸


0 0
原创粉丝点击