设为首页 收藏本站
查看: 1178|回复: 0

[经验分享] 使用db2 load from时导致DB的tablespace置成backup pending状态使用db2 load from时导致DB的tablespace

[复制链接]

尚未签到

发表于 2016-11-17 05:50:24 | 显示全部楼层 |阅读模式
使用db2 load from时导致DB的tablespace置成backup pending状态使用db2 load from时导致DB的tablespace置成backup pending状态

使用db2 load from时导致DB的tablespace置成backup pending状态 我在往表里面更新或者插入新的数据有报错,有报SQL0290N这个错误,Table space access is not allowed. SQLSTATE=55039 但是这个时候可以往里面load数据,我的命令是这样写的 $db2 load from /worktmp/temp.del of del replace into SCHEMA.TABLENAME 于是搜了很多东西,有人告诉我使用下面命令看看State的值是什么 $db2 list tablespaces show detail Tablespace ID = 4 Name = TBS4K Type = Database managed space Contents = Any data State = 0x0020 Detailed explanation: Backup pending Total pages = 8388608 Useable pages = 8388096 Used pages = 340864 Free pages = 8047232 High water mark (pages) = 340864 Page size (bytes) = 4096 Extent size (pages) = 128 Prefetch size (pages) = 384 Number of containers = 4 Minimum recovery time = 2008-10-14-05.51.17.000000 Tablespace ID = 5 Name = TBS4KM Type = Database managed space Contents = Any data State = 0x0000 Detailed explanation: Normal Total pages = 8388608 Useable pages = 8388096 Used pages = 4224 Free pages = 8383872 High water mark (pages) = 4224 Page size (bytes) = 4096 Extent size (pages) = 128 Prefetch size (pages) = 384 Number of containers = 4 Minimum recovery time = 2008-10-23-07.30.01.000000 于是再搜,看看tablespace backup pending是怎么回事!便找到下面这个,

2. 受支持的表空间状态 状态 十六进制状态值 描述 示例 Backup Pending 0x20 在执行指定时间点的(point-in-time)表空间前滚操作之后,或者在执行指定了 COPY NO 选项的 LOAD 操作(针对可恢复的数据库)之后,表空间处于这种状态。在使用该表空间之前,必须备份该表空间(或者是整个数据库)。如果没有备份这个表空间,那么只能对其中包含的表进行查询,而无法更新它们。注意:在启用数据库进行前滚恢复之后,还必须立即对该数据库进行备份。如果 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 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; 上面提到“在使用该表空间之前,必须备份该表空间(或者是整个数据库)” 于是我先把整个数据库备份了一下,再查看tablespace状态时,都是Normal的,再次更新或者往表里面插入数据时一切正常。 这个时候我想起我下的db2 load的命令,以往都是在最后面加了NONRECOVERABLE这个参数,这次没有,问题肯定在这里。

便又顺藤摸瓜看到了下面的解释, 如果要对可恢复数据库执行一系列装入操作,那么与每次调用装入操作时都指定 COPY YES 选项相比,指定每个装入操作都不可恢复并在装入序列结束时进行备份的速度更快。可以使用 NONRECOVERABLE 选项来指定将装入事务标记为不可恢复,这样,以后不可能通过前滚操作恢复该事务。

Rollforward 实用程序将跳过该事务,并将把装入数据的表标记为“无效”。

该实用程序还将忽略该对表执行的任何后续事务。在前滚操作完成后,只能删除这样的表(请参阅图 2)。如果指定了此选项,在装入操作完成后就不会将表空间置于备份暂挂状态,并且在装入操作执行期间不必创建所装入数据的副本。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-301287-1-1.html 上篇帖子: DB2 XML 编程,第 4 部分: 在基于 Web 的 DB2 应用程序中集成来自不同数据源的数据 下篇帖子: 在C#.NET中怎样调用db2存储过程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表