| 免费下载:IBM® DB2® Express-C 9.7.2 免费版 或者 DB2® 9.7 for Linux®, UNIX®, and Windows® 试用版 |
|---|
| 下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。 |
目前,IBM DB2 Database for Linux, UNIX, and Windows (DB2 for LUW) 至少支持 30 种表或表空间状态。这些状态在某些情况下被用来控制对数据的访问,或者在必要时被用来引出特定用户动作,以保护数据库的完整性。大多数状态产生于与某个 DB2 实用程序的操作相关的事件,例如加载实用程序,或者备份和恢复实用程序。
本文描述了每个受支持的表或表空间状态(见表 1;单击状态名跳至其描述,该描述位于后面的某个表中)。本文还提供了一些工作示例,以便准确地展示如何解释和响应管理数据库时可能碰到的状态。这些示例取自于 AIX® 上运行的命令脚本;您可以复制、粘贴并亲自运行它们。如果您在非 UNIX 的系统上运行 DB2 服务器,请确保所有的路径名都是适合系统的正确格式。大多数示例都是以 SAMPLE 数据库中的表为基础的,该数据库是 DB2 产品附带的。也存在少数需要 SAMPLE 数据库中没有包含的场景的情况,但是,您可以将到 SAMPLE 数据库的连接用作为一个起始点。
表 2 和表 3 中描述了这些状态。表 2 描述了受支持的表空间状态,而 表 3 则描述了目前支持的表状态。
表 1. 到版本 9.7.4 为止的 DB2 for LUW 所有支持版本中定义的表和表空间状态
db2tbst 命令接收十六进制的状态值,并返回相应的表空间状态(参见图 1)。例如,命令 db2tbst 0x0008 返回 State = Load Pending。而该十六进制的状态值反过来又是 LIST TABLESPACES 命令输出的组成部分(参见图 2)。关于这些以及其他 DB2 命令的更多信息,请参阅 IBM DB2 9.7 for Linux, UNIX, and Windows Command Reference。
图 1. db2tbst 命令接收十六进制的表空间状态值并返回其状态。
表空间的外部可见状态是由单个状态值的十六进制总和构成的。例如,如果表空间的状态是 Backup Pending 和 Load in Progress,那么所返回的十六进制值就是 0x20020 (0x00020 + 0x20000)。本例中,命令 db2tbst 0x20020 返回:
State = Backup Pending
+ Load in Progress
|
图 2. 可以使用 LIST TABLESPACES 命令确定连接数据库中表空间的当前状态。
| 状态 | 十六进制状态值 | 描述 | 示例 |
|---|---|---|---|
| Backup Pending | 0x20 | 在执行指定时间点的(point-in-time)表空间前滚操作之后,或者在执行指定了 COPY NO 选项的 LOAD 操作(针对可恢复的数据库)之后,表空间处于这种状态。在使用该表空间之前,必须备份该表空间(或者是整个数据库)。如果没有备份这个表空间,那么只能对其中包含的表进行查询,而无法更新它们。注意:在启用数据库进行前滚恢复之后,还必须立即对该数据库进行备份。如果 logarchmeth1 或 logarchmeth2 数据库配置参数被设置为 OFF 以外的值,数据库是可恢复的。直到对这样的数据库进行了备份,您才可以激活或连接它。备份后,backup_pending 信息数据库配置参数被设置为 NO。 | 1. 已知载入的输入文件 staff_data.del 具有以下内容:11,"Melnyk",20,"Sales",10,70000,15000: update db cfg for sample using logarchmeth1 logretain; backup db sample; connect to sample; load from staff_data.del of del messages load.msg insert into staff copy no; update staff set salary = 69000 where id = 11; 2. update db cfg for sample using logarchmeth1 logretain; connect to sample; |
| Backup in Progress | 0x800 | 这是一种只在进行备份操作期间才有效的临时状态。 | 执行一条在线 BACKUP DATABASE 命令: backup db sample online; 在执行备份操作时,通过另一个会话执行下列脚本: connect to sample; 1. list tablespaces show detail; 或者 2. get snapshot for tablespaces on sample; connect reset; USERSPACE1 返回的信息显示,该表空间处于 Backup in Progress 状态。 |
| DMS Rebalance in Progress | 0x10000000 | 这是一种只在执行数据重新平衡操作期间才有效的临时状态。当向定义为数据库管理空间(DMS)的表空间添加新的容器时,或者当扩展现有的容器时,就可能发生表空间数据的重新调整。重新调整(Rebalancing) 是指将表空间区段(extent)从某一位置移动到另一位置,试图保持数据成一整块的过程。一个区段就是一个容器空间单元(以页面为单位),而一个条带(stripe)就是用于表空间的跨容器集 的一层区段。 | 已知载入的输入文件 staffdata.del 拥有大量数据(例如,20000 条或更多记录): connect to sample; create tablespace ts1 managed by database using (file '/home/melnyk/melnyk/NODE0000/SQL00001/ts1c1' 1024); create table newstaff like staff in ts1; load from staffdata.del of del insert into newstaff nonrecoverable; alter tablespace ts1 add (file '/home/melnyk/melnyk/NODE0000/SQL00001/ts1c2' 1024); list tablespaces; connect reset; TS1 返回的信息显示,该表空间处于 DMS Rebalance in Progress 状态。 |
| Delete Pending | 0x00000010 | 如果在删除阶段加载操作失败(违反唯一性约束的行被删除),表空间将保持 Delete Pending 状态。状态改变对象标识监视元素(tablespace_state_change_object_id)将标记使表空间状态变为 Delete Pending 的对象。如果为非零,该元素的值将匹配 SYSCAT.TABLES 目录视图的 TABLEID 列的值。状态改变表空间标识监视元素(tablespace_state_change_ts_id)展示了使该表空间状态被设置的对象的表空间 ID。如果为非零,该元素的值将匹配 SYSCAT.TABLES 目录视图的 TABLESPACEID 列的值。 | 至于说明该表空间状态的示例,已经超出了本文的范围。 |
| Disable Pending | 0x200 | 在执行数据库前滚操作期间,表空间可能处于这种状态,但在前滚操作结束之时,就不应再处于该状态。当出现表空间脱机以及对没有被写入硬盘的事务补偿日志记录时,就可能触发这种状态。该表空间状态的出现以及随后状态的消失对用户都是透明的。 | 至于说明该表空间状态的示例,已经超出了本文的范围。 |
| Drop Pending | 0x8000 | 在重新启动数据库时,如果发现该数据库的一个或多个容器有问题,那么表空间就会处于这种状态。(如果数据库的前一会话异常终止,例如停电时,就必须重新启动数据库。)如果表空间处于 Drop Pending 状态,就不再可用,只能将其删除。 | 至于说明该表空间状态的示例,已经超出了本文的范围。 |
| Load in Progress | 0x20000 | 这是一种只在执行指定了 COPY NO 选项的载入操作(针对可恢复的数据库)时才有效的临时状态。请参阅 Load in Progress 表状态。 | 已知载入的输入文件 staffdata.del 有大量数据(例如,20000 条或更多记录): update db cfg for sample using logarchmeth1 logretain; backup db sample; connect to sample; create table newstaff like staff; load from staffdata.del of del insert into newstaff copy no; connect reset; 在执行载入操作时,从另一会话执行下列脚本: connect to sample; list tablespaces; connect reset; USERSPACE1 返回的信息显示,该表空间处于 Load in Progress(和 Backup Pending)状态。 |
| Movement in Progress | 0x00080000 | Movement in Progress 状态表示目前正在执行表空间区段移动操作,用于收回未使用的存储。 | 至于说明该表空间状态的示例,已经超出了本文的范围。 |
| Normal | 0x0 | 如果表空间不是处于任何其他(异常的)表空间状态,那么该表空间的状态就为 Normal 状态。Normal 状态是表空间被创建之后的初始状态。 | connect to sample; create tablespace ts1 managed by database using (file '/home/melnyk/melnyk/NODE0000/SQL00001/tsc1' 1024); list tablespaces show detail; |
| Offline and Not Accessible | 0x4000 | 如果表空间的一个或多个容器存在问题,那么表空间就处于这种状态。容器偶然可能会被重命名、移动或损坏。在该问题被纠正,且再次可以访问与该表空间相关的容器之后,可以通过断开数据库与应用程序的连接,然后重新连接数据库来消除该异常状态。或者,您可以执行一条 ALTER TABLESPACE 语句,指定 SWITCH ONLINE 子句来消除表空间的 Offline and Not Accessible 状态,从而无需断开其他应用程序与该数据库的连接。 | connect to sample; create tablespace ts1 managed by database using (file '/home/melnyk/melnyk/NODE0000/SQL00001/tsc1' 1024); alter tablespace ts1 add (file '/home/melnyk/melnyk/NODE0000/SQL00001/tsc2' 1024); export to st_data.del of del select * from staff; create table stafftemp like staff in ts1; import from st_data.del of del insert into stafftemp; connect reset; 将表空间容器 tsc1 重新命名为 tsc3,然后尝试查询 STAFFTEMP 表: connect to sample; select * from stafftemp; 该查询返回 SQL0290N(不允许访问表空间),而 LIST TABLESPACES 命令返回 TS1 的状态值 0x4000(Offline and Not Accessible)。将表空间容器 tsc3 再次命名为 tsc1。这一次,该查询将运行成功。 |
| Quiesced Exclusive | 0x4 | 当调用表空间静默(quiesce)功能的应用程序独占(读或写)访问表空间时,该表空间就处于这种状态。您可以通过执行一条 QUIESCE TABLESPACES FOR TABLE 命令,将表空间置于 Quiesced Exclusive 状态。 | 在将表空间设置为 Quiesced Exclusive 之前,要确保它处于 Normal 状态。 connect to sample; quiesce tablespaces for table staff reset; quiesce tablespaces for table staff exclusive; connect reset; 从另一会话执行下列脚本: connect to sample; select * from staff where id=60; update staff set salary=50000 where id=60; list tablespaces; connect reset; USERSPACE1 返回的信息显示,该表空间处于 Quiesced Exclusive 状态。 |
| Quiesced Share | 0x1 | 当调用表空间静默(quiesce)功能的应用程序和并发应用程序都可以读(但不能写)访问表空间时,该表空间就处于这种状态。您可以通过执行一条 QUIESCE TABLESPACES FOR TABLE 命令,将表空间显式地置于 Quiesced Share 状态。 | 在将表空间设置为 Quiesced Share 之前,要确保它处于 Normal 状态。 connect to sample; quiesce tablespaces for table staff reset; quiesce tablespaces for table staff share; connect reset; 从另一会话执行下列脚本: connect to sample; select * from staff where id=40; update staff set salary=50000 where id=40; list tablespaces; connect reset; USERSPACE1 返回的信息显示,该表空间处于 Quiesced Share 状态。 |
| Quiesced Update | 0x2 | 当调用表空间静默(quiesce)功能的应用程序独占写访问表空间时,该表空间就处于这种状态。您可以通过执行一条 QUIESCE TABLESPACES FOR TABLE 命令,将表空间显式地置于 Quiesced Update 状态。 | 在将表空间设置为 Quiesced Update 之前,要确保它处于 Normal 状态。 connect to sample; quiesce tablespaces for table staff reset; quiesce tablespaces for table staff intent to update; connect reset; 从另一会话执行下列脚本: connect to sample; select * from staff where id=50; update staff set salary=50000 where id=50; list tablespaces; connect reset; USERSPACE1 返回的信息显示,该表空间处于 Quiesced Update 状态。 |
| Redistribute in Progress | 0x40000 | Redistribute in Progress 表空间状态表示当前正在执行数据重新分配操作。如果数据重新分配操作失败或被中断,表状态将变为 Redistribute Pending。 | 至于说明该表空间状态的示例,已经超出了本文的范围。 |
| Reorg in Progress | 0x400 | 这是一种只在进行重组(reorg)操作期间才有效的临时状态。 | 执行一条 REORG TABLE 命令: connect to sample; reorg table staff; connect reset; 在执行重组操作时,从另一会话执行下列脚本: connect to sample; 1. list tablespaces show detail; 或者 2. get snapshot for tablespaces on sample; connect reset; USERSPACE1 返回的信息显示,该表空间处于 Reorg in Progress 状态。注意:涉及 SAMPLE 数据库的表重组操作很可能在极短的时间内就可以完成,因此,使用这种方法来观察 Reorg in Progress 状态可能比较困难。 |
| Restore Pending | 0x100 | 在执行了重定向恢复操作的第一部分之后(即在发出 SET TABLESPACE CONTAINERS 命令之前),数据库的表空间就处于这种状态。在使用表空间之前,必须恢复表空间(或者是整个数据库)。直到成功完成恢复操作,您才可以连接到数据库,此时, restore_pending 信息数据库配置参数的值被设为 NO。 | 当处于 Storage May be Defined 中的重定向恢复操作的第一部分完成时,所有的表空间都将处于 Restore Pending 状态。 |
| Restore in Progress | 0x2000 | 这是一种只在执行恢复操作期间才有效的临时状态。 | update db cfg for sample using logarchmeth1 logretain; backup db sample; backup db sample tablespace (userspace1); 该备份映像的时间戳为:20110611174124 restore db sample tablespace (userspace1) online taken at 20110611174124; 在执行恢复操作时,从另一会话执行下列脚本: connect to sample; 1. list tablespaces show detail; 或者 2. get snapshot for tablespaces on sample; connect reset; USERSPACE1 返回的信息显示,该表空间处于 Restore in Progress 状态。 |
| Roll Forward Pending | 0x80 | 在对可恢复的数据库执行恢复操作之后,表空间就处于这种状态。在使用表空间之前,必须前滚该表空间(或是整个数据库)。如果 logarchmeth1 或 logarchmeth2 数据库配置参数被设为非 OFF 的值,那么该数据库是可恢复的。直到前滚操作成功完成,您才可以激活或连接到该数据库,此时,rollfwd_pending 信息数据库配置参数被设为 NO。 | 当处于 Restore in Progress 中的在线表空间完成恢复操作时,表空间 USERSPACE1 处于 Roll Forward Pending 状态。 |
| Roll Forward in Progress | 0x40 | 这是一种只在执行前滚操作期间才有效的临时状态。 | 已知载入的输入文件 staffdata.del 拥有大量数据(例如,20000 条或更多记录): update db cfg for sample using logarchmeth1 logretain; backup db sample; connect to sample; create tablespace ts1 managed by database using (file '/home/melnyk/melnyk/NODE0000/SQL00001/ts1c1' 1024); create table newstaff like staff in ts1; connect reset; backup db sample tablespace (ts1) online; 该备份映像的时间戳为:20110630000715 connect to sample; load from staffdata.del of del insert into newstaff copy yes to /home/melnyk/backups; connect reset; restore db sample tablespace (ts1) online taken at 20110630000715; rollforward db sample to end of logs and stop tablespace (ts1) online; 当执行前滚操作时,从另一会话执行下列脚本: connect to sample; 1. list tablespaces show detail; 或者 2. get snapshot for tablespaces on sample; connect reset; TS1 返回的信息显示,该表空间处于 Roll Forward in Progress 状态。 |
| Storage May be Defined | 0x2000000 | 在执行了重定向恢复操作的第一部分之后(即在发出 SET TABLESPACE CONTAINERS 命令之前),数据库的表空间就处于这种状态。如果您愿意,这将允许您重新定义容器(请参阅 克隆使用 Redirected Restore 的 DB2 数据库)。 | backup db sample; 假定该备份映像的时间戳为:20110613204955: restore db sample taken at 20110613204955 redirect; list tablespaces; LIST TABLESPACES 命令返回的信息显示,所有的表空间都处于 Storage May be Defined 和 Restore Pending 状态。 |
| Storage Must be Defined | 0x1000 | 在将恢复操作重定向到新 数据库期间,如果省略了设置表空间容器的阶段,或者,如果在设置表空间容器的阶段期间无法获得指定的容器,那么数据库的表空间就会处于这种状态。某些时候会出现后一种情况,例如,指定了无效的路径名,或者是磁盘空间不足。 | backup db sample; 假定该备份映像的时间戳为:20110613204955: restore db sample taken at 20110613204955 into mydb redirect; set tablespace containers for 2 using (path 'ts2c1'); list tablespaces; LIST TABLESPACES 命令返回的信息显示,表空间 SYSCATSPACE 和表空间 TEMPSPACE1 都处于 Storage Must be Defined、 Storage May be Defined 和 Restore Pending 状态。Storage Must be Defined 状态比 Storage May be Defined 状态具有更高的优先权。 |
| Table Space Creation in Progress | 0x40000000 | 这是一种只在执行创建表空间的操作期间才有效的临时状态。 | connect to sample; create tablespace ts1 managed by database using (file '/home/melnyk/melnyk/NODE0000/SQL00001/tsc1' 1024); create tablespace ts2 managed by database using (file '/home/melnyk/melnyk/NODE0000/SQL00001/tsc2' 1024); create tablespace ts3 managed by database using (file '/home/melnyk/melnyk/NODE0000/SQL00001/tsc3' 1024); 在执行创建表空间的操作时,从另一会话执行下列脚本: connect to sample; 1. list tablespaces show detail; 或 2. get snapshot for tablespaces on sample; connect reset; TS1、TS2 和 TS3 返回的信息显示,这些表空间处于 Table Space Creation in Progress 状态。 |
| Table Space Deletion in Progress | 0x20000000 | 这是一种只在执行删除表空间的操作期间才有效的临时状态。 | connect to sample; create tablespace ts1 managed by database using (file '/home/melnyk/melnyk/NODE0000/SQL00001/tsc1' 1024); create tablespace ts2 managed by database using (file '/home/melnyk/melnyk/NODE0000/SQL00001/tsc2' 1024); create tablespace ts3 managed by database using (file '/home/melnyk/melnyk/NODE0000/SQL00001/tsc3' 1024); drop tablespace ts1; drop tablespace ts2; drop tablespace ts3; 在执行删除表空间的操作时,从另一会话执行下列脚本: connect to sample; 1. list tablespaces show detail; 或 2. get snapshot for tablespaces on sample; connect reset; TS1、TS2 和 TS3 返回的信息显示,这些表空间处于 Table Space Deletion in Progress 状态。 |
| Write Suspended | 0x00010000 | Write Suspended 表空间状态表示 SET WRITE 命令用于对数据库暂停 I/O 写操作。该命令还可以暂停对相关日志执行的 I/O 写操作。 | connect to sample; set write suspend for db; list tablespaces show detail; connect reset; LIST TABLESPACES 命令返回的信息表示,所有表空间都处于 Write Suspended 状态。 |
DB2 load 实用程序通过表状态(以及锁)来获取对表的访问,并在执行载入操作时维护数据库的一致性。即使载入操作发生了异常终止,表状态也将会被保持。您可以用 LOAD QUERY 命令(见图 3)确定特定表的状态。LOAD QUERY 命令在其运行时检查载入操作的状态,并返回表的状态。如果载入操作完成(或异常终止)了,那么该命令只返回表的状态。关于该命令和其他 DB2 命令的更多信息,请参阅 IBM DB2 9.7 for Linux, UNIX, and Windows Command Reference。
图 3. 可以使用 LOAD QUERY 命令来确定指定表的状态。
虽然在载入操作之前,从属的表空间不再是静默的(quiesce 是一种持久性的锁),但是 Load in Progress 表空间状态会在执行载入操作时阻止对从属表进行备份。Load in Progress 表空间状态不同于 Load in Progress 表状态:所有的载入操作都使用 Load in Progress 表状态,但是指定 COPY NO 选项的载入操作(针对可恢复的数据库)还是使用 Load in Progress 表空间状态。
一个表可以同时处于几种状态之下。例如,如果将数据载入定义了表检查约束的表中,并指定 ALLOW READ ACCESS 选项,那么在执行载入操作期间,该表就处于 Load in Progress、 Read Access Only 和 Set Integrity Pending 状态下。
表 3. 受支持的表状态
| 状态 | 描述 | 示例 |
|---|---|---|
| Set Integrity Pending(以前为 Check Pending) | 如果在一个表上定义了表检查约束(限制),但还未验证新数据与那些已定义约束的兼容性,那么该表就处于这种状态。例如,DB2 load 实用程序当开始在定义了表检查约束的表上执行载入操作时,就将表的状态设置为 Set Integrity Pending 状态。如果想使该表恢复为 Normal 状态,则需要执行一条 SET INTEGRITY 语句。要想获得更多的信息,请参阅 约束。 | 已知载入的输入文件 staff_data.del 拥有以下内容:11,"Melnyk",20,"Sales",10,70000,15000: connect to sample; alter table staff add constraint max_salary check (100000 - salary > 0); load from staff_data.del of del insert into staff; load query table staff; LOAD QUERY 命令返回的信息显示,STAFF 表处于 Set Integrity Pending 状态。 |
| Load Pending | 如果在可提交数据之前,表上的正在执行的载入操作被异常终止,那么该表就处于这种状态。若要使该表恢复 Normal 状态,则需要调用 load terminate、load restart 或 load replace 操作。 | 已知载入的输入文件 staffdata.del 拥有大量数据(例如,20000 条或更多记录),创建一个包含载入操作目标表的小型表空间,新建一个名为 NEWSTAFF 的表: connect to sample; create tablespace ts1 managed by database using (file '/home/melnyk/melnyk/NODE0000/SQL00001/ts1c1' 256); create table newstaff like staff in ts1; load from staffdata.del of del insert into newstaff; load query table newstaff; load from staffdata.del of del terminate into newstaff; load query table newstaff; connect reset; LOAD QUERY 命令返回的信息显示,NEWSTAFF 表处于 Load Pending 状态;在执行 load terminate 操作之后,该表就重新处于 Normal 状态。 |
| Load in Progress | 这是一种只在执行载入操作期间才有效的临时状态。关于当载入操作失败或被中断时,如何解除表的 Load in Progress 状态的信息,请参阅 IBM DB2 9.7 for Linux, UNIX, and Windows Data Movement Utilities Guide and Reference 中关于载入操作之后的暂挂状态的小节。还请参阅 Load in Progress 表空间状态。 | 已知载入的输入文件 staffdata.del 拥有大量数据(例如,20000 条或更多记录): connect to sample; create table newstaff like staff; load from staffdata.del of del insert into newstaff; 在执行载入操作时,从另一会话执行下列脚本: connect to sample; load query table newstaff; connect reset; LOAD QUERY 命令返回的信息显示,NEWSTAFF 表处于 Load in Progress 状态。 |
| Normal | 如果表不是处于任何其他(异常的)表状态,那么它就处于 Normal 状态。Normal 状态是表被创建之后的初始状态。 | connect to sample; create table newstaff like staff; load query table newstaff; LOAD QUERY 命令返回的信息显示,NEWSTAFF 表处于 Normal 状态。 |
| Not Load Restartable | 当执行完前滚操作,接着出现一个失败的载入操作,而该操作未被成功地重新启动或者终止时,表就处于这种状态。该表还将处于 Load Pending 状态。若要使该表恢复 Normal 状态,则需要执行一条 LOAD TERMINATE 命令。 | 已知载入的输入文件 staffdata.del 拥有大量数据(例如,20000 条或更多记录): update db cfg for sample using logarchmeth1 logretain; backup db sample; connect to sample; create tablespace ts1 managed by database using (file '/home/melnyk/melnyk/NODE0000/SQL00001/ts1c1' 256); create table newstaff like staff in ts1; connect reset; backup db sample; 该备份映像的时间戳为:20110629205935 connect to sample; load from staffdata.del of del insert into newstaff copy yes to /home/melnyk/backups; connect reset; restore db sample taken at 20110629205935; rollforward db sample to end of logs and stop; connect to sample; load query table newstaff; connect reset; LOAD QUERY 命令返回的信息显示,NEWSTAFF 表处于 Not Load Restartable 和 Load Pending 状态。 connect to sample; load from staffdata.del of del terminate into newstaff copy yes to /home/melnyk/backups; load query table newstaff; connect reset; LOAD QUERY 命令返回的信息显示,NEWSTAFF 表现在处于 Normal 状态。 |
| Read Access Only | 在执行载入操作时,如果指定了 ALLOW READ ACCESS 选项,那么表就处于这种状态。Read Access Only 是一个临时状态,它允许其他应用程序和实用程序读访问在执行载入操作之前 就存在的数据。 | 已知载入的输入文件 staffdata.del 拥有大量数据(例如,20000 条或更多记录): connect to sample; export to st_data.del of del select * from staff; create table newstaff like staff; import from st_data.del of del insert into newstaff; load from staffdata.del of del insert into newstaff allow read access; 在执行载入操作时,从另一会话执行下列脚本: connect to sample; load query table newstaff; select * from newstaff; connect reset; LOAD QUERY 命令返回的信息显示,NEWSTAFF 表处于 Read Access Only 和 Load in Progress 状态。该查询返回 STAFF 表所导出的内容,以及在执行载入操作之前,就存在于 NEWSTAFF 表中的数据。 |
| Redistribute Pending | Redistribute Pending 表状态表示数据再分配的操作失败或中断。您可以执行 REDISTRIBUTE DATABASE PARTITION GROUP 命令,指定 CONTINUE 或 ABORT 选项,移除 Redistribute Pending 状态。 | 至于说明该表空间状态的示例,已经超出了本文的范围。 |
| Type-1 Indexes | Type-1 Indexes 状态表示表正在使用 type-1 索引,该索引目前已经不受支持。您可以将 type-1 索引转换为 type-2 索引,方法是使用 REORG INDEXES/TABLE 命令的 CONVERT 选项,或使用 db2IdentifyType1 实用程序。 | 至于说明该表空间状态的示例,已经超出了本文的范围。 |
| Unavailable | 当前滚一个无法恢复的载入操作时,表就处于这种状态;这样的表只能被删除,或者从备份映像恢复它。 | 已知载入的输入文件 staff_data.del 拥有下列内容:11,"Melnyk",20,"Sales",10,70000,15000: update db cfg for sample using logarchmeth1 logretain; backup db sample; 该备份映像的时间戳为:20110629182012 connect to sample; load from staff_data.del of del insert into staff nonrecoverable; connect reset; restore db sample taken at 20110629182012; rollforward db sample to end of logs and stop; connect to sample; load query table staff; connect reset; LOAD QUERY 命令返回的信息显示,STAFF 表处于 Unavailable 状态。 |
DB2 for LUW 用表状态和表空间状态来控制对数据的访问,或者在特定情况下帮助保护数据库的完整性。本文通过工作示例展示了可能引出特定状态的更常见的一些条件,您可以用它们来识别哪些状态是有效,以及如何作出正确响应,以便可以继续使用数据,而不会出现漏拍(miss a beat)现象。您会很容易就适应这些示例,并将它们用到自己的数据中;很快,您将真正 “感知到周围的” 各种状态,并可使用它们来更好地理解数据库的行为。
学习
-
IBM Support Portal
是查找 Version 9.7 Information Center 和 PDF 产品手册等参考资料的理想场所。
-
IBM DB2 9.7 for Linux, UNIX, and Windows Data Movement Utilities Guide and Reference 提供了关于 DB2 数据移动实用程序的详细信息。
-
IBM DB2 9.7 for Linux, UNIX, and Windows Data Recovery and High Availability Guide and Reference 提供了关于 DB2 备份和恢复实用程序的详细信息。
-
请访问 developerWorks DB2 for Linux, UNIX, and Windows 资源页面,阅读文章和教程,并获得增强 DB2 技能的其他资源。
-
了解 DB2 Express-C,它是面向社区的 DB2 Express Edition 免费版本。
- 在 developerWorks Information Management
专区 了解有关信息管理的更多信息。查找技术文档、how-to 文章、培训、下载、产品信息等。
- developerWorks 技术活动 和 网络广播:随时关注这些活动中的技术。
-
developerWorks on
Twitter:立即加入并关注 developerWorks tweets。
获得产品和技术
-
下载 DB2
for Linux, UNIX, and Windows 的免费试用版。
-
现在您可以免费使用 DB2。下载 DB2 Express-C,它是为社区提供的 DB2 Express Edition 的免费版本,提供 了与 DB2 Express Edition 相同的核心数特性,并为构建和部署应用程序提供了坚实基础。
- 使用 IBM 试用软件 构建您的下一个开发项目,可以从 developerWorks 直接下载获得。
讨论
- 参与论坛讨论。
- 查看
developerWorks
blogs 并加入 developerWorks 中文社区,developerWorks 社区是一个面向全球 IT 专业人员,可以提供博客、书签、wiki、群组、联系、共享和协作等社区功能的专业社交网络社区。
Roman B. Melnyk 博士是 DB2 Information Development 团队的资深成员,专长是数据库管理、DB2 工具和 SQL。 在 IBM 工作的十一年中,Roman 撰写和编辑了大量 DB2 书籍、文章和其他相关资料。Roman 与人合著了 DB2 Version 8: The Official Guide、DB2: The Complete Reference、DB2 Fundamentals Certification for Dummies 和 DB2 for Dummies。Roman 最近编著了 Apache Derby -- Off to the Races 一书。可以通过 roman_b_melnyk@hotmail.com 与他联系。