版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.状态DB2 基础 阐明表和表空间的状态 转2020-06-12状态DB2根底:说明表和表空间的状态转状态DB2根底:说明表和表空间的状态转简介:DB2使用表和表空间状态来控制对数据的访问,或帮助保护数据库的完好性。本文描绘了这些状态,并以工作例如的方式,展示了出现这些状态的典型条件和如何对其做出响应。目前,IBMDB2Universal DatabaseDB2 UDB至少支持25种表或表空间状态。这些状态在某些情况下被用来控制对数据的访问,或者在必要时被用来引出特定用户动作,以保护数据库的完好性。大多数状态产生于与某个DB2实用程序的操作相关的事件,例如加载实用程序,或者备份和恢复实用程序。
2、本文描绘了每个受支持的表或表空间状态见表1;单击状态名跳至其描绘,该描绘位于后面的某个表中。本文还提供了一些工作例如,以便准确地展示如何解释和响应管理数据库时可能碰到的状态。这些例如取自于AIX上运行的命令脚本;您可以复制、粘贴并亲自运行它们。假设您在非UNIX的系统上运行DB2 UDB,请确保所有的途径名都是适宜系统的正确格式。大多数例如都是以SAMPLE数据库中的表为根底的,该数据库是DB2 UDB附带的。也存在少数需要SAMPLE数据库中没有包含的场景的情况,但是,您可以将到SAMPLE数据库的连接用作为一个起始点。表2和表3中描绘了这些状态。表2描绘了受支持的表空间状态,而表3那么描绘
3、了目前支持的表状态。表1.到版本8.1.4为止的DB2 UDB所有支持版本中定义的表和表空间状态状态范围状态范围Backup Pending表空间Quiesced Update表空间Backup in Progress表空间Read Access Only表Check Pending表Reorg in Progress表空间DMS Rebalance in Progress表空间Restore Pending表空间Disable Pending表空间Restore in Progress表空间Drop Pending表空间Roll Forward Pending表空间Load Pending表
4、Roll Forward in Progress表空间Load in Progress表空间或表Storage May be Defined表空间Normal表空间或表Storage Must be Defined表空间Not Load Restartable表Table Space Creation in Progress表空间Offline and Not Accessible表空间Table Space Deletion in Progress表空间Quiesced Exclusive表空间Unavailable表Quiesced Share表空间表空间状态db2tbst命令接收十六进制
5、的状态值,并返回相应的表空间状态参见图1。例如,命令db2tbst 0x0008返回State=Load Pending。而该十六进制的状态值反过来又是LIST TABLESPACES命令输出的组成部分参见图2。关于这些以及其他DB2命令的更多信息,请参阅IBM DB2 Universal Database Command Reference。图1.db2tbst命令接收十六进制的表空间状态值并返回其状态。表空间的外部可见状态是由单个状态值的十六进制总和构成的。例如,假设表空间的状态是Backup Pending和Load in Progress,那么所返回的十六进制值就是0x200200x0
6、0020+0x20000。本例中,命令db2tbst 0x20020返回:State=Backup Pending+Load in Progress图2.可以使用LIST TABLESPACES命令确定连接数据库中表空间的当前状态。表2.受支持的表空间状态状态十六进制状态值描绘例如Backup Pending 0x20在执行指定时间点的point-in-time表空间前滚操作之后,或者在执行指定了COPY NO选项的LOAD操作针对可恢复的数据库之后,表空间处于这种状态。在使用该表空间之前,必须备份该表空间或者是整个数据库。假设没有备份这个表空间,那么只能对其中包含的表进展查询,而无法更新它们
7、。注意:在启用数据库进展前滚恢复之后,还必须立即对该数据库进展备份。假设logretain数据库配置参数被设为RECOVERY,或者userexit数据库配置参数被设为YES,那么该数据库是可恢复的。直到对这样的数据库进展了备份,您才可以连接它。备份后,backup_pending数据库配置参数会被设为NO。1.载入的输入文件staff_data.del具有以下内容:11,"Melnyk",20,"Sales",10,70000,15000:update db cfg for sample using logretain recovery;backup
8、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 logretain recovery;connect to sample;Backup in Progress 0x800这是一种只在进展备份操作期间才有效的临时状态。执行一条在线BACKUP DATABASE命令:backup db sam
9、ple 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 0x 10000000这是一种只在执行数据重新平衡操作期间才有效的临时状态。当向定义为数据库管理空间DMS的表空间添加新的容器时,或者当扩展现有的容器时,就可能发生表空间数据的重
10、新调整。重新调整Rebalancing是指将表空间区段extent从某一位置挪动到另一位置,试图保持数据成一整块的过程。一个区段extent就是一个容器空间单元以页面为单位,而一个条带stripe就是用于表空间的跨容器集的一层区段。载入的输入文件staffdata.del拥有大量数据例如,20000条或更多记录:connect to sample;create tablespace ts1 managed by database usingfile'/home/melnyk/melnyk/NODE0000/SQL00001/ts1c1'1024;create table new
11、staff like staff in ts1;load from staffdata.del of del insert into newstaff nonrecoverable;alter tablespace ts1 addfile'/home/melnyk/melnyk/NODE0000/SQL00001/ts1c2'1024;list tablespaces;connect reset;TS1返回的信息显示,该表空间处于DMS Rebalance in Progress状态。Disable Pending 0x200在执行数据库前滚操作期间,表空间可能处于这种状态,但
12、在前滚操作完毕之时,就不应再处于该状态。当出现表空间脱机以及对没有被写入硬盘的事务补偿日志记录时,就可能触发这种状态。该表空间状态的出现以及随后状态的消失对用户都是透明的。至于说明该表空间状态的例如,已经超出了本文的范围。Drop Pending 0x8000在重新启动数据库时,假设发现该数据库的一个或多个容器有问题,那么表空间就会处于这种状态。假设数据库的前一会话异常终止,例如停电时,就必须重新启动数据库。假设表空间处于Drop Pending状态,就不再可用,只能将其删除。至于说明该表空间状态的例如,已经超出了本文的范围。Load in Progress 0x20000这是一种只在执行指定
13、了COPY NO选项的载入操作针对可恢复的数据库时才有效的临时状态。请参阅Load in Progress表状态。载入的输入文件staffdata.del有大量数据例如,20000条或更多记录:update db cfg for sample using logretain recovery;connect to sample;load from staffdata.del of del insert into newstaff copy no;在执行载入操作时,从另一会话执行以下脚本:connect to sample;list tablespaces;connect reset;Infor
14、mation returned for USERSPACE1返回的信息显示,该表空间处于Load in Progress和Backup Pending状态。Normal 0x0假设表空间不是处于任何其他异常的表空间状态,那么该表空间的状态就为Normal状态。Normal状态是表空间被创立之后的初始状态。connect to sample;create tablespace ts1 managed by database usingfile'/home/melnyk/melnyk/NODE0000/SQL00001/tsc1'1024;list tablespaces show
15、 detail;Offline and Not Accessible 0x4000假设表空间的一个或多个容器存在问题,那么表空间就处于这种状态。容器偶尔可能会被重命名、挪动或损坏。在该问题被纠正,且再次可以访问与该表空间相关的容器之后,可以通过断开数据库与应用程序的连接,然后重新连接数据库来消除该异常状态。或者,您可以执行一条ALTER TABLESPACE语句,指定SWITCH ONLINE子句来消除表空间的Offline and Not Accessible状态,从而无需断开其他应用程序与该数据库的连接。connect to sample;create tablespace ts1 man
16、aged by database usingfile'/home/melnyk/melnyk/NODE0000/SQL00001/tsc1'1024;alter tablespace ts1 addfile'/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 s
17、tafftemp;connect reset;将表空间容器tsc1重新命名为tsc3,然后尝试查询STAFFTEMP表:connect to sample;select*from stafftemp;该查询返回SQL0290N不允许访问表空间,而LIST TABLESPACES命令返回TS1的状态值0x4000Offline and Not Accessible。将表空间容器tsc3再次命名为tsc1。这一次,该查询将运行成功。Quiesced Exclusive 0x4当调用表空间静默quiesce功能的应用程序独占读或写访问表空间时,该表空间就处于这种状态。您可以通过执行一条QUIESCE
18、 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=
19、50000 where id=60;list tablespaces;connect reset;Information returned for USERSPACE1返回的信息显示,该表空间处于Quiesced Exclusive状态。Quiesced Share 0x1当调用表空间静默quiesce功能的应用程序和并发应用程序都可以读但不能写访问表空间时,该表空间就处于这种状态。您可以通过执行一条QUIESCE TABLESPACES FOR TABLE命令,将表空间显式地置于Quiesced Share状态。在将表空间设置为Quiesced Share之前,要确保它处于Normal状态。
20、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 U
21、pdate 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;从另一会话执行以下脚本
22、:connect to sample;select*from staff where id=50;update staff set salary=50000 where id=50;list tablespaces;connect reset;USERSPACE1返回的信息显示,该表空间处于Quiesced Update状态。Reorg in Progress 0x400这是一种只在进展重组reorg操作期间才有效的临时状态。执行一条REORG TABLE命令:connect to sample;reorg table staff;connect reset;在执行重组操作时,从另一会话执行以
23、下脚本: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命令之前
24、,数据库的表空间就处于这种状态。在使用表空间之前,必须恢复表空间或者是整个数据库。直到成功完成恢复操作,您才可以连接到数据库,此时,restore_pending信息数据库配置参数的值被设为NO。当处于Storage May be Defined中的重定向恢复操作的第一部分完成时,所有的表空间都将处于Restore Pending状态。Restore in Progress 0x2000这是一种只在执行恢复操作期间才有效的临时状态。update db cfg for sample using logretain recovery;backup db sample;backup db sampl
25、e tablespaceuserspace1;该备份映像的时间戳为:20040611174124 restore db sample tablespaceuserspace1online taken at 20040611174124;在执行恢复操作时,从另一会话执行以下脚本:connect to sample;1.list tablespaces show detail;或者2.get snapshot for tablespaces on sample;connect reset;USERSPACE1返回的信息显示,该表空间处于Restore in Progress状态。Roll Forw
26、ard Pending 0x80在对可恢复的数据库执行恢复操作之后,表空间就处于这种状态。在使用表空间之前,必须前滚该表空间或是整个数据库。假设logretain数据库配置参数被设为RECOVERY,或者userexit数据库配置参数被设为YES,那么该数据库是可恢复的。直到前滚操作成功完成,您才可以激活或连接到该数据库,此时,rollfwd_pending信息数据库配置参数被设为NO。当处于Restore in Progress中的在线表空间完成恢复操作时,表空间USERSPACE1处于Roll Forward Pending状态。Roll Forward in Progress 0x40这
27、是一种只在执行前滚操作期间才有效的临时状态。载入的输入文件staffdata.del拥有大量数据例如,20000条或更多记录:update db cfg for sample using logretain recovery;backup db sample;connect to sample;create tablespace ts1 managed by database usingfile'/home/melnyk/melnyk/NODE0000/SQL00001/ts1c1'1024;create table newstaff like staff in ts1;con
28、nect reset;backup db sample tablespacets1online;该备份映像的时间戳为:20040630000715 connect to sample;load from staffdata.del of del insert into newstaff copy yes to/home/melnyk/backups;connect reset;restore db sample tablespacets1online taken at 20040630000715;rollforward db sample to end of logs and stop ta
29、blespacets1online;当执行前滚操作时,从另一会话执行以下脚本: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 0x 2000000在执行了重定向恢复操作的第一部分之后即在发出SET TABLESPACE CONTAINERS命令之前,数据库的表空间就处于这种状态。假设您愿意,这将允许您
30、重新定义容器请参阅DB2根底:使用重定向恢复克隆DB2数据库。backup db sample;假定该备份映像的时间戳为:20040613204955 restore db sample taken at 20040613204955 redirect;list tablespaces;Information returned by the LIST TABLESPACES命令返回的信息显示,所有的表空间都处于Storage May be Defined和Restore Pending状态。Storage Must be Defined 0x1000在将恢复操作重定向到新数据库期间,假设省略了
31、设置表空间容器的阶段,或者,假设在设置表空间容器的阶段期间无法获得指定的容器,那么数据库的表空间就会处于这种状态。某些时候会出现后一种情况,例如,指定了无效的途径名,或者是磁盘空间缺乏。backup db sample;假定该备份映像的时间戳为:20040613204955。restore db sample taken at 20040613204955 into mydb redirect;set tablespace containers for 2usingpath'ts2c1';list tablespaces;LIST TABLESPACES命令返回的信息显示,表空
32、间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 0x 40000000这是一种只在执行创立表空间的操作期间才有效的临时状态。connect to sample;create tablespace ts1 managed by database usingfile'/home/m
33、elnyk/melnyk/NODE0000/SQL00001/tsc1'1024;create tablespace ts2 managed by database usingfile'/home/melnyk/melnyk/NODE0000/SQL00001/tsc2'1024;create tablespace ts3 managed by database usingfile'/home/melnyk/melnyk/NODE0000/SQL00001/tsc3'1024;在执行创立表空间的操作时,从另一会话执行以下脚本:connect to sam
34、ple;1.list tablespaces show detail;or 2.get snapshot for tablespaces on sample;connect reset;TS1、TS2和TS3返回的信息显示,这些表空间处于Table Space Creation in Progress状态。Table Space Deletion in Progress 0x 20000000这是一种只在执行删除表空间的操作期间才有效的临时状态。connect to sample;create tablespace ts1 managed by database usingfile'/
35、home/melnyk/melnyk/NODE0000/SQL00001/tsc1'1024;create tablespace ts2 managed by database usingfile'/home/melnyk/melnyk/NODE0000/SQL00001/tsc2'1024;create tablespace ts3 managed by database usingfile'/home/melnyk/melnyk/NODE0000/SQL00001/tsc3'1024;drop tablespace ts1;drop tablespa
36、ce 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状态。回页首DB2 UDB Version 8load实用程序通过表状态以及锁来获取对表的访问,并在执行载入操作时维护数据库的一致性。即使载入操作发生了异常终止,表状态
37、也将会被保持。您可以用LOAD QUERY命令见图3确定特定表的状态。LOAD QUERY命令在其运行时检查载入操作的状态,并返回表的状态。假设载入操作完成或异常终止了,那么该命令只返回表的状态。关于该命令和其他DB2命令的更多信息,请参阅IBM DB2 Universal Database Command Reference。图3.可以使用LOAD QUERY命令来确定指定表的状态。虽然在载入操作之前,附属的表空间不再是静默的quiesce是一种持久性的锁,但是Load in Progress表空间状态会在执行载入操作时阻止对附属表进展备份。Load in Progress表空间状态不同于L
38、oad in Progress表空间状态:所有的载入操作都使用Load in Progress表状态,但是指定COPY NO选项的载入操作针对可恢复的数据库还是使用Load in Progress表空间状态。一个表可以同时处于几种状态之下。例如,假设将数据载入定义了表检查约束的表中,并指定ALLOW READ ACCESS选项,那么在执行载入操作期间,该表就处于Check Pending、Load in Progress和Read Access Only状态下。表3.受支持的表状态状态描绘例如Check Pending假设在一个表上定义了表检查约束,但还未验证新数据与那些已定义约束的兼容性,那
39、么该表就处于这种状态。例如,DB2 load实用程序当开场在定义了表检查约束的表上执行载入操作时,就将表的状态设置为Check Pending状态。假设想使该表恢复为Normal状态,那么需要执行一条SET INTEGRITY语句。要想获得更多的信息,请参阅约束。载入的输入文件staff_data.del拥有以下内容:11,"Melnyk",20,"Sales",10,70000,15000:connect to sample;alter table staff add constraint max_salary check100000-salary 0
40、;load from staff_data.del of del insert into staff;load query table staff;LOAD QUERY命令返回的信息显示,STAFF表处于Check Pending状态。Load Pending假设在可提交数据之前,表上的正在执行的载入操作被异常终止,那么该表就处于这种状态。假设要使该表恢复Normal状态,那么需要调用load terminate、load restart或load replace操作。载入的输入文件staffdata.del拥有大量数据例如,20000条或更多记录,创立一个包含载入操作目的表的小型表空间,新建
41、一个名为NEWSTAFF的表:connect to sample;create tablespace ts1 managed by database usingfile'/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
42、into newstaff;load query table newstaff;connect reset;LOAD QUERY命令返回的信息显示,NEWSTAFF表处于Load Pending状态;在执行load terminate操作之后,该表就重新处于Normal状态。Load in Progress这是一种只在执行载入操作期间才有效的临时状态。关于当载入操作失败或被中断时,如何解除表的Load in Progress状态的信息,请参阅IBM DB2 Universal Database Data Movement Utilities Guide and Reference中关于载入操作
43、之后的暂挂状态的小节。还请参阅Load in Progress表空间状态。载入的输入文件staffdata.del拥有大量数据例如,20000条或更多记录:update db cfg for sample using logretain recovery;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 t
44、o 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当执行完
45、前滚操作,接着出现一个失败的载入操作,而该操作未被成功地重新启动或者终止时,表就处于这种状态。该表还将处于Load Pending状态。假设要使该表恢复Normal状态,那么需要执行一条LOAD TERMINATE命令。载入的输入文件staffdata.del拥有大量数据例如,20000条或更多记录:update db cfg for sample using logretain recovery;backup db sample;connect to sample;create tablespace ts1 managed by database usingfile'/home/me
46、lnyk/melnyk/NODE0000/SQL00001/ts1c1'256;create table newstaff like staff in ts1;connect reset;backup db sample;该备份映像的时间戳为:20040629205935 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 20040629205935;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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 28056-2025余热锅炉技术规范
- 中国模具农机配件项目投资可行性研究报告
- 中国鳄鱼龟项目投资可行性研究报告
- 脂肪族聚胺酯丙烯酸酯行业深度研究报告
- 油密封座圈行业深度研究报告
- 准分子激光系统行业深度研究报告
- 中国纸塑自动成筒制袋机项目投资可行性研究报告
- 中国镂花机项目投资可行性研究报告
- 中国接动项目投资可行性研究报告
- 中国纸箱纸板包装项目投资可行性研究报告
- 《现代企业管理》期末考试复习题(附答案)
- 湖南省长沙市师大附中2025-2026学年高一上学期10月月考化学试题(原卷版)
- 南充市嘉陵城市发展集团有限公司2025年公开招聘工作人员(10人)笔试历年参考题库附带答案详解
- 叠山理水(课件)-2025-2026学年人教版(2024)初中美术八年级上册
- 堤防工程施工规范(2025版)
- 安全生产考核巡查办法全文
- 在全森林资源林政管理工作会议上的讲话
- Berg平衡量表
- 室外供热管道施工方案
- SMARO型自动络筒机常见故障分析及操作说明ppt课件
- 黑价联字前期收费(共7页)
评论
0/150
提交评论