我对昨晚数据库升级出现的问题现在总结一下:
下边是错误:
SQL0668N 原因码为 "1",所以不允许操作 SQLSTATE=57016
1. 最根本的问题是load的问题:
Copy YES/ NONRECOVERABLE
对于DMS表空间,load默认为copy NO 模式,此模式下,load完成后,表空间会处于暂挂状态,这时候只能查表中的数据,需要对表空间进行一次备份,才可以对表进行update、insert等操作,那么我们可以使用如上2个命令,对于Copy YES,load完成以后会自动进行一次备份操作;NONRECOVERABLE 指出load不可恢复,此命令符不会产生表空间暂挂,也不会自动进行表空间备份,但是他有一个缺点就是,不能恢复,当数据库进行回滚的时候,不能还原,危险等级还是比较高一点,不过个人觉得也NONRECOVERABLE比较实用。
例:LOAD CLIENT FROM 'F:s1.del' OF DEL INSERT INTO DB2ADMIN.ZXTABLES NONRECOVERABLE
LOAD CLIENT FROM 'F:s1.del' OF DEL INSERT INTO DB2ADMIN.ZXTABLES COPY YES
2.List tablespaces show detail 看到的ox0200 找个状态就是表空间暂挂了。
Tablespace ID = 2
Name = USERSPACE1
Type = System managed space
Contents = Any data
State = 0x0020
Detailed explanation:
Backup pending
3.load导致表空间挂起深入分析:
首先是因为数据库的日志的设置方式引起的。我们平常使用的数据库的日志方式是循环日志,而这次使用的归档日志,这就是以前我们load 每次都是正常的,而这次为什么出现了这个原因。
设置数据库归档日志:
>db2 UPDATE DB CFG FOR test USING LOGARCHMETH1 "DISK:E:\db2log"
这时要备份数据库
db2_all "<<+0<db2 backup database test to D:\data compress"
db2_all "<<-0<db2 backup database test to D:\data compress"
重新连接数据库,可以访问了。下来开始实验:
load client from d:\MOBILE_PRODUCT_INST_200812.del of del insert into MOBILE_PRODUCT_INST_200812
load 完成后,我们看一下表空间的状态,发现表空间已经挂起了。这时我们只能去备份找个表空间
db2_all "<<+0<db2 backup database test tablespace userspace1 to D:\data compress"
db2_all "<<-0<db2 backup database test tablespace userspace1 to D:\data compress"
备份完成后,可以访问这个表了。
接下来看正确的load的方式:
load client from d:\MOBILE_PRODUCT_INST_200812.del of del insert into MOBILE_PRODUCT_INST_200812 NONRECOVERABLE;
注意加了个参数NONRECOVERABLE 意思是:不可恢复。
4.总结:
当你的数据库处在archivelog模式下,用load倒数时就会出现备份暂挂,因为load不写日志,自然会要求你备份的.或者用import,或用带copy yes,norecovery的load。
当 DB2的数据库启用了前滚恢复模式,即将日志由循环日志方式改为归档日志,以便用户在进行恢复操作时,可在恢复了数据库或表空间的备份后,再通过前滚归档日志中的事务,恢复数据库备份时间点之后提交的事务,最大程度的保护数据库的数据。
而 DB2 的 LOAD 实用程序为实现快速导入数据的功能,除采用了通过直接向数据库中写入格式化的数据页装载数据,导入过程中不激活触发器,不会检查参考完整性和表检查约束当等方式外,还最小化了记录事务日志的操作。在 LOAD 的 LOAD、BUILD、DELETE 和 INDEX COPY 四个处理阶段中,仅在 DELETE 阶段记录对每个删除事件记日志,即只对每个违反唯一约束的行的删除操作记日志,因此整个 LOAD 操作仅记录了极少的日志。
由于 LOAD 最小化了日志的记录,有因启用了前滚恢复的数据库在恢复在线备份时需要归档日志的特性,对于这种数据库的 LOAD 操作,为避免执行 LOAD 操作后,表在使用 ROLLFORWARD 命令前滚归档日志的过程中因缺少日志而被置为非正常状态,DB2 为 LOAD 命令提供了如下选项:
COPY NO(缺省)
COPY YES
NONREVERABLE
分享到:
相关推荐
【数据库学习总结-总集】 在信息技术领域,数据库是存储和管理数据的核心工具,它扮演着数据仓库的角色,为各种应用程序提供数据支持。本总结旨在深入探讨数据库的基础知识、主要类型、设计原则以及最佳实践,帮助...
数据库课程总结数据库课程总结
【VC++数据库编程总结】 在IT领域,尤其是软件开发中,数据库编程是不可或缺的一部分,尤其在使用VC++作为开发工具时。VC++可以与多种数据库系统进行交互,如SQL Server、Oracle等,通过不同的访问技术实现数据的...
数据库编程总结 数据库编程总结 数据库编程总结
数据库系统复习总结 本资源摘要信息将对数据库系统的基本概念、数据库管理系统、数据模型、数据库设计、数据库恢复、事务处理等方面进行详细的总结和解释。 一、数据库系统的基本概念 * 数据库系统是长期存储在...
数据库索引总结,索引的作用?索引的注意事项?数据库索引的结构?
**JDBC连接数据库经验总结** Java Database Connectivity (JDBC) 是Java编程语言中用于与关系数据库交互的标准API。它提供了一种规范,使得Java开发者能够使用标准的Java语句来执行SQL命令,从而实现对数据库的操作...
mysql整理资料上传,包含了DDL(数据库定义语言)、DML(数据库操纵语言)的增删改查,还有DCL(数据库控制语句)以及事务隔离级别、数据库主从的原理和配置,以及一些sql调优的信息等等
数据库设计实践总结 数据库设计实践总结是软件开发和应用最有效的关心设计工具。数据库设计的优劣和表达性能对整个系统软件的生命周期长短具有重要的影响意义。以下是数据库设计实践总结的知识点: 1. 尽量使用...
Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结
数据库单表查询的总结 还有数据库的其他总结分开上传 数据库单表查询的总结 还有数据库的其他总结分开上传
空间数据库是信息技术与地理学相结合的产物,它专门用于管理和处理具有空间属性的数据。数据库管理系统(DBMS)是实现这一目标的关键,它提供了一种结构化的数据存储方式,允许高效地存储、检索和管理数据。在空间...
在IT领域,C#语言和数据库技术是两个至关重要的组成部分,尤其对于开发高效、稳定的应用程序至关重要。本文将深入探讨C#语言的基础知识以及数据库技术的基本概念,旨在为初学者提供一个全面的理解。 首先,C#(读作...
"数据库基本概念总结" 数据库是计算机科学和信息技术领域中的核心概念之一。它是由数据库管理系统(DBMS)管理的一组有组织的数据集合,旨在满足组织的信息需求。今天,我们将从数据库的基本概念开始,探索数据库的...
数据库和表的创建;数据库和表内容的操作;主键与外键关系...