DB2 基础阐明表和表空间的状态Word格式.docx
- 文档编号:16634469
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:27
- 大小:33.44KB
DB2 基础阐明表和表空间的状态Word格式.docx
《DB2 基础阐明表和表空间的状态Word格式.docx》由会员分享,可在线阅读,更多相关《DB2 基础阐明表和表空间的状态Word格式.docx(27页珍藏版)》请在冰豆网上搜索。
大多数示例都是以SAMPLE数据库中的表为基础的,该数据库是DB2UDB附带的。
也存在少数需要SAMPLE数据库中没有包含的场景的情况,但是,您可以将到SAMPLE数据库的连接用作为一个起始点。
表2和表3中描述了这些状态。
表2描述了受支持的表空间状态,而表3则描述了目前支持的表状态。
表1.到版本8.1.4为止的DB2UDB所有支持版本中定义的表和表空间状态
状态
范围
BackupPending
表空间
QuiescedUpdate
BackupinProgress
ReadAccessOnly
表
CheckPending
ReorginProgress
DMSRebalanceinProgress
RestorePending
DisablePending
RestoreinProgress
DropPending
RollForwardPending
LoadPending
RollForwardinProgress
LoadinProgress
表空间或表
StorageMaybeDefined
Normal
StorageMustbeDefined
NotLoadRestartable
TableSpaceCreationinProgress
OfflineandNotAccessible
TableSpaceDeletioninProgress
QuiescedExclusive
Unavailable
QuiescedShare
表空间状态
db2tbst命令接收十六进制的状态值,并返回相应的表空间状态(参见图1)。
例如,命令db2tbst0x0008返回State=LoadPending。
而该十六进制的状态值反过来又是LISTTABLESPACES命令输出的组成部分(参见图2)。
关于这些以及其他DB2命令的更多信息,请参阅IBMDB2UniversalDatabaseCommandReference。
图1.db2tbst命令接收十六进制的表空间状态值并返回其状态。
表空间的外部可见状态是由单个状态值的十六进制总和构成的。
例如,如果表空间的状态是BackupPending和LoadinProgress,那么所返回的十六进制值就是0x20020(0x00020+0x20000)。
本例中,命令db2tbst0x20020返回:
State=BackupPending
+LoadinProgress
图2.可以使用LISTTABLESPACES命令确定连接数据库中表空间的当前状态。
表2.受支持的表空间状态
十六进制状态值
描述
示例
0x20
在执行指定时间点的(point-in-time)表空间前滚操作之后,或者在执行指定了COPYNO选项的LOAD操作(针对可恢复的数据库)之后,表空间处于这种状态。
在使用该表空间之前,必须备份该表空间(或者是整个数据库)。
如果没有备份这个表空间,那么只能对其中包含的表进行查询,而无法更新它们。
注意:
在启用数据库进行前滚恢复之后,还必须立即对该数据库进行备份。
如果logretain数据库配置参数被设为RECOVERY,或者userexit数据库配置参数被设为YES,那么该数据库是可恢复的。
直到对这样的数据库进行了备份,您才可以连接它。
备份后,backup_pending数据库配置参数会被设为NO。
1.已知载入的输入文件staff_data.del具有以下内容:
11,"
Melnyk"
20,"
Sales"
10,70000,15000:
updatedbcfgforsampleusinglogretainrecovery;
backupdbsample;
connecttosample;
loadfromstaff_data.delofdelmessagesload.msginsertintostaffcopyno;
updatestaffsetsalary=69000whereid=11;
2.updatedbcfgforsampleusinglogretainrecovery;
0x800
这是一种只在进行备份操作期间才有效的临时状态。
执行一条在线BACKUPDATABASE命令:
backupdbsampleonline;
在执行备份操作时,通过另一个会话执行下列脚本:
1.listtablespacesshowdetail;
或者
2.getsnapshotfortablespacesonsample;
connectreset;
USERSPACE1返回的信息显示,该表空间处于BackupinProgress状态。
0x10000000
这是一种只在执行数据重新平衡操作期间才有效的临时状态。
当向定义为数据库管理空间(DMS)的表空间添加新的容器时,或者当扩展现有的容器时,就可能发生表空间数据的重新调整。
重新调整(Rebalancing)是指将表空间区段(extent)从某一位置移动到另一位置,试图保持数据成一整块的过程。
一个区段(extent)就是一个容器空间单元(以页面为单位),而一个条带(stripe)就是用于表空间的跨容器集的一层区段。
已知载入的输入文件staffdata.del拥有大量数据(例如,20000条或更多记录):
createtablespacets1managedbydatabaseusing(file'
/home/melnyk/melnyk/NODE0000/SQL00001/ts1c1'
1024);
createtablenewstafflikestaffints1;
loadfromstaffdata.delofdelinsertintonewstaffnonrecoverable;
altertablespacets1add(file'
/home/melnyk/melnyk/NODE0000/SQL00001/ts1c2'
listtablespaces;
TS1返回的信息显示,该表空间处于DMSRebalanceinProgress状态。
0x200
在执行数据库前滚操作期间,表空间可能处于这种状态,但在前滚操作结束之时,就不应再处于该状态。
当出现表空间脱机以及对没有被写入硬盘的事务补偿日志记录时,就可能触发这种状态。
该表空间状态的出现以及随后状态的消失对用户都是透明的。
至于说明该表空间状态的示例,已经超出了本文的范围。
0x8000
在重新启动数据库时,如果发现该数据库的一个或多个容器有问题,那么表空间就会处于这种状态。
(如果数据库的前一会话异常终止,例如停电时,就必须重新启动数据库。
)如果表空间处于DropPending状态,就不再可用,只能将其删除。
0x20000
这是一种只在执行指定了COPYNO选项的载入操作(针对可恢复的数据库)时才有效的临时状态。
请参阅LoadinProgress表状态。
已知载入的输入文件staffdata.del有大量数据(例如,20000条或更多记录):
loadfromstaffdata.delofdelinsertintonewstaffcopyno;
在执行载入操作时,从另一会话执行下列脚本:
InformationreturnedforUSERSPACE1返回的信息显示,该表空间处于LoadinProgress(和BackupPending)状态。
0x0
如果表空间不是处于任何其他(异常的)表空间状态,那么该表空间的状态就为Normal状态。
Normal状态是表空间被创建之后的初始状态。
/home/melnyk/melnyk/NODE0000/SQL00001/tsc1'
listtablespacesshowdetail;
0x4000
如果表空间的一个或多个容器存在问题,那么表空间就处于这种状态。
容器偶然可能会被重命名、移动或损坏。
在该问题被纠正,且再次可以访问与该表空间相关的容器之后,可以通过断开数据库与应用程序的连接,然后重新连接数据库来消除该异常状态。
或者,您可以执行一条ALTERTABLESPACE语句,指定SWITCHONLINE子句来消除表空间的OfflineandNotAccessible状态,从而无需断开其他应用程序与该数据库的连接。
/home/melnyk/melnyk/NODE0000/SQL00001/tsc2'
exporttost_data.delofdelselect*fromstaff;
createtablestafftemplikestaffints1;
importfromst_data.delofdelinsertintostafftemp;
将表空间容器tsc1重新命名为tsc3,然后尝试查询STAFFTEMP表:
select*fromstafftemp;
该查询返回SQL0290N(不允许访问表空间),而LISTTABLESPACES命令返回TS1的状态值0x4000(OfflineandNotAccessible)。
将表空间容器tsc3再次命名为tsc1。
这一次,该查询将运行成功。
0x4
当调用表空间静默(quiesce)功能的应用程序独占(读或写)访问表空间时,该表空间就处于这种状态。
您可以通过执行一条QUIESCETABLESPACESFORTABLE命令,将表空间置于QuiescedExclusive状态。
在将表空间设置为QuiescedExclusive之前,要确保它处于Normal状态。
quiescetablespacesfortablestaffreset;
quiescetablespacesfortablestaffexclusive;
从另一会话执行下列脚本:
select*fromstaffwhereid=60;
updatestaffsetsalary=50000whereid=60;
InformationreturnedforUSERSPACE1返回的信息显示,该表空间处于QuiescedExclusive状态。
0x1
当调用表空间静默(quiesce)功能的应用程序和并发应用程序都可以读(但不能写)访问表空间时,该表空间就处于这种状态。
您可以通过执行一条QUIESCETABLESPACESFORTABLE命令,将表空间显式地置于QuiescedShare状态。
在将表空间设置为QuiescedShare之前,要确保它处于Normal状态。
quiescetablespacesfortablestaffshare;
select*fromstaffwhereid=40;
updatestaffsetsalary=50000whereid=40;
USERSPACE1返回的信息显示,该表空间处于QuiescedShare状态。
0x2
当调用表空间静默(quiesce)功能的应用程序独占写访问表空间时,该表空间就处于这种状态。
您可以通过执行一条QUIESCETABLESPACESFORTABLE命令,将表空间显式地置于QuiescedUpdate状态。
在将表空间设置为QuiescedUpdate之前,要确保它处于Normal状态。
quiescetablespacesfortablestaffintenttoupdate;
select*fromstaffwhereid=50;
updatestaffsetsalary=50000whereid=50;
USERSPACE1返回的信息显示,该表空间处于QuiescedUpdate状态。
0x400
这是一种只在进行重组(reorg)操作期间才有效的临时状态。
执行一条REORGTABLE命令:
reorgtablestaff;
在执行重组操作时,从另一会话执行下列脚本:
USERSPACE1返回的信息显示,该表空间处于ReorginProgress状态。
涉及SAMPLE数据库的表重组操作很可能在极短的时间内就可以完成,因此,使用这种方法来观察ReorginProgress状态可能比较困难。
0x100
在执行了重定向恢复操作的第一部分之后(即在发出SETTABLESPACECONTAINERS命令之前),数据库的表空间就处于这种状态。
在使用表空间之前,必须恢复表空间(或者是整个数据库)。
直到成功完成恢复操作,您才可以连接到数据库,此时,restore_pending信息数据库配置参数的值被设为NO。
当处于StorageMaybeDefined中的重定向恢复操作的第一部分完成时,所有的表空间都将处于RestorePending状态。
0x2000
这是一种只在执行恢复操作期间才有效的临时状态。
backupdbsampletablespace(userspace1);
该备份映像的时间戳为:
20040611174124
restoredbsampletablespace(userspace1)onlinetakenat20040611174124;
在执行恢复操作时,从另一会话执行下列脚本:
USERSPACE1返回的信息显示,该表空间处于RestoreinProgress状态。
0x80
在对可恢复的数据库执行恢复操作之后,表空间就处于这种状态。
在使用表空间之前,必须前滚该表空间(或是整个数据库)。
直到前滚操作成功完成,您才可以激活或连接到该数据库,此时,rollfwd_pending信息数据库配置参数被设为NO。
当处于RestoreinProgress中的在线表空间完成恢复操作时,表空间USERSPACE1处于RollForwardPending状态。
0x40
这是一种只在执行前滚操作期间才有效的临时状态。
backupdbsampletablespace(ts1)online;
20040630000715
loadfromstaffdata.delofdelinsertintonewstaffcopyyesto/home/melnyk/backups;
restoredbsampletablespace(ts1)onlinetakenat20040630000715;
rollforwarddbsampletoendoflogsandstoptablespace(ts1)online;
当执行前滚操作时,从另一会话执行下列脚本:
TS1返回的信息显示,该表空间处于RollForwardinProgress状态。
0x2000000
如果您愿意,这将允许您重新定义容器(请参阅DB2基础:
使用重定向恢复克隆DB2数据库)。
假定该备份映像的时间戳为:
20040613204955
restoredbsampletakenat20040613204955redirect;
InformationreturnedbytheLISTTABLESPACES命令返回的信息显示,所有的表空间都处于StorageMaybeDefined和RestorePending状态。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DB2 基础阐明表和表空间的状态 基础 阐明 空间 状态