db2 load 命令

合集下载

DB2数据清除方法(自己看书总结四种方法,希望可以帮助大家)

DB2数据清除方法(自己看书总结四种方法,希望可以帮助大家)

1. 使用DELETE 语句,即:DELETE FROM <表名>该语句将清除表中所有数据,但由于这一操作会记日志,因此执行速度会相对慢一些,另外要注意的是,如果表较大,为保证删除操作的成功,应考虑是否留有足够大的日志空间。

2. 使用NOT LOGGED INITIALLY 选项,即:ALTER TABLE <表名> ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE这一方法仅在所操作的表在创建时选择了NOT LOGGED INITIALLY 选项进行定义后才可使用。

整个删除操作将不会记日志,因此执行速度是几种方法中最快的一种,但删除的数据是不可恢复的。

3. 使用IMPORT 或LOAD 命令,即:IMPORT FROM /dev/null OF DEL REPLACE INTO ecif.tb2033--(Unix 系统)或IMPORT FROM <空文件> OF DEL REPLACE INTO <表名>LOAD FROM /dev/null OF DEL REPLACE INTO <表名> NONRECOVERABLE --(Unix 系统)或LOAD FROM <空文件> OF DEL REPLACE INTO <表名> NONRECOVERABLE在这一方法中,REPLACE 导入方式首先会将表中所有数据清空,然后IMPORT/LOAD 又向表中导入了空数据,从而实现了数据的清除操作。

4. 使用DROP/CREATE TABLE 语句,即:DROP TABLE <表名>CREATE TABLE <表名> <字段的定义>如果保存有表的定义语句,或已利用DB2LOOK 命令获得了表定义的脚本,也可先删除整个表,再重新创建表。

如果表较大,用这种方法实现数据清空的速度会快于方法一。

PCdb2没有load权限解决办法

PCdb2没有load权限解决办法

要让具有‎S YSAD‎M权限的‎用户获取的‎能力与版本‎9.5 ‎中相同(授‎予 SEC‎A DM 权‎限的能力除‎外),安全‎性管理员必‎须显式授予‎用户 DB‎A DM 权‎限。

注意,‎安全性管理‎员授予 D‎B ADM ‎权限时,缺‎省情况下会‎包括新的‎D ATAA‎C CESS‎和AC‎C ESSC‎T RL 权‎限。

此操作‎给予用户的‎能力与版本‎9.5 ‎提供的能力‎相同。

要‎让此用户还‎能授予 S‎E CADM‎权限,那‎么还必须对‎其授予 S‎E CADM‎权限。

具‎有SEC‎A DM 权‎限时允许此‎用户执行的‎操作比作为‎版本 9.‎5系统管‎理员时能够‎执行的操作‎多。

例如,‎他们能够创‎建角色、可‎信上下文和‎审计策略之‎类的对象。

‎如果‎具有 SY‎S ADM ‎权限的用户‎创建数据库‎,那么将自‎动授予用户‎对该数据库‎的 DAT‎A ACCE‎S S、AC‎C ESSC‎T RL、S‎E CADM‎和 DB‎A DM 权‎限,这使得‎用户可使用‎的功能与版‎本 9.5‎中一样。

‎对用‎户 joh‎n赋予‎S YSAD‎M权限的‎基本语法如‎下:假设‎用户jo‎h n的组‎为adm‎i n;‎执行下述命‎令,对‎用户jo‎h n赋予‎SYSA‎D M权限‎:‎d b2u‎p date‎dbm‎c fg u‎s ing‎s ysad‎m_gro‎u p ad‎m in对‎安全性管理‎员(具有‎S ECAD‎M权限)‎的更改‎DB2 ‎9.7 中‎,SECA‎D M 的权‎限比 DB‎2 9.5‎的权限增‎大了‎具有 SE‎C ADM ‎权限的用户‎现在可授予‎和取消所有‎权限与特权‎,包括 D‎B ADM ‎和 SEC‎A DM。

‎安全性‎管理员现在‎可授予角色‎和组 SE‎C ADM ‎权限。

在版‎本 9.5‎中,SE‎C ADM ‎只能授予用‎户。

‎安全性管理‎员可通过授‎予另一用户‎对审计存储‎过程和表函‎数(AUD‎I T_AR‎C HIVE‎、AUDI‎T_LIS‎T_LOG‎S和 A‎U DIT_‎D ELIM‎_EXTR‎A CT)的‎EXEC‎U TE 特‎权来将运行‎它们的责任‎委托给该用‎户。

使用DB2的LOAD

使用DB2的LOAD

使⽤DB2的LOAD FROM CURSOR转移数据典型的 DB2 数据转移任务涉及三个步骤:把数据以⼆进制或⽂本格式从源数据库导出到⼀个临时数据交换⽂件,在系统之间转移⽣成的⽂件,把数据从⽂件导⼊或装载到⽬标数据库中. 使⽤ DB2 LOAD 实⽤程序的 FROM CURSOR 选项简化 DB2? for Linux?, UNIX?, and Windows? 的数据转移过程。

本⽂介绍 LOAD FROM CURSOR 特性并提供两个接⼝ Command Line Processor 和 ADMIN_CMD 存储过程的使⽤⽰例。

典型的 DB2 数据转移任务涉及三个步骤: 把数据以⼆进制或⽂本格式从源数据库导出到⼀个临时数据交换⽂件 在系统之间转移⽣成的⽂件 把数据从⽂件导⼊或装载到⽬标数据库中 在数据量很⼤的情况下,使⽤ EXPORT 实⽤程序⽣成数据交换⽂件常常要花费很长时间。

另外,在把数据移⼊和移出数据库时,必须考虑不同的数据库编码页和操作系统。

可以使⽤ LOAD 实⽤程序的 FROM CURSOR 选项避免这些问题。

当指定 FROM CURSOR 选项时,LOAD 实⽤程序直接把⼀个 SQL 查询的结果集作为数据装载操作的来源,这样就不需要⽣成临时数据交换⽂件。

因此,LOAD FROM CURSOR 是在不同的表空间或数据库之间快速轻松地转移数据的⽅法。

可以在命令⾏上执⾏ LOAD FROM CURSOR,也可以通过使⽤ DB2 的 ADMIN_CMD 存储过程在应⽤程序或存储过程中执⾏它。

本⽂介绍 LOAD FROM CURSOR 特性并提供两个接⼝ Command Line Processor (CLP) 和 ADMIN_CMD 存储过程的使⽤⽰例。

把表转移到另⼀个表空间 ⾸先,看看如何把表从⼀个表空间转移到另⼀个表空间。

如果创建表的表空间的页⾯⼤⼩不合适,或者应该⽤另⼀个缓冲区池访问表,就可能需要执⾏这种数据转移。

DB2数据的导入(Import) 导出(Export)(Load)

DB2数据的导入(Import) 导出(Export)(Load)

DB2中所谓的数据移动,包括:1. 数据的导入(Import)2. 数据的导出(Export)3. 数据的装入(Load)导入和装入都是利用DB2的相关命令把某种格式的文件中的数据保存到数据库中的表中导出是指把DB2数据库的表中的数据保存到某种格式的文件当中去数据移动的作用:如果要在不同的数据库管理系统之间转移数据,数据移动通常是最实用的一种方法,因为任何一种数据库管理系统都支持常用的几种文件格式,通过这个通用的接口,就很容易实现不同系统间数据的转移。

这三个命令中,Export最简单,因为从表中向文件转移数据,通常不会出现错误,也不会有非法的数据。

1. ASC——非定界ASCII文件,是一个ASCII字符流。

数据流中的行由行定界符分隔,而行中的每一列则通过起始和结束位置来定义。

例如:10 Head Office 160 Corporate New York15 New England 50 Eastern Boston20 Mid Atlantic 10 Eastern Washington38 South Atlantic 30 Eastern Atlanta42 Great Lakes 100 Midwest Chicago51 Plains 140 Midwest Dallas66 Pacific 270 Western San Francisco84 Mountain 290 Western Denver2. DEL——定界ASCII文件,也是一个ASCII字符流。

数据流中的行由行定界符分隔,行中的列值由列定界符分隔。

文件类型修饰符可用于修改这些定界符的默认值。

例如:10,"Head Office",160,"Corporate","New York"15,"New England",50,"Eastern","Boston"20,"Mid Atlantic",10,"Eastern","Washington"38,"South Atlantic",30,"Eastern","Atlanta"42,"Great Lakes",100,"Midwest","Chicago"51,"Plains",140,"Midwest","Dallas"66,"Pacific",270,"Western","San Francisco"84,"Mountain",290,"Western","Denver"3. WSF——(work sheet format)为工作表格式,用于与Lotus系列的软件进行数据交换。

db2命令记录(一)

db2命令记录(一)

第一.请问高手,如何查看tablespace里包含哪些表?select tabschema,tabname from syscat.tables where tbspace='TABLESPACEA' and type='T' 这里的TABLESPACEA具体情况定,如用USERSPACE1(158.222.2.110)第二.DB2 CLP从DOS进入db2cmddb2cmd在本地DB2数据库添加一个远程结点db2 catalog tcpip node xdzx1 remote 155.222.2.110 server 60064db2 catalog database xdzx1 at node xdzx1查看版本信息db2licm -l启动,停止db2数据库db2admin start db2admin stopdb2start db2stop执行存储过程db2 " call p01_acct_depacct_y('2007-4-15',?,?)"创建t01_acct_depacct_y表,in dms_data 代表数据存在dms_data命名空间 index in dms_idx代表索引创建在dms_idx里面create table t01_acct_depacct_y(record_date DATE not null,etl_date DATE,dep_acct_no CHAR(15) not null,curr_cd CHAR(3) not null,curr_iden CHAR(1) not null,bank_no CHAR(6) not null,summary_bank_no CHAR(6),xyz_no CHAR(2),dep_categ CHAR(1),acct_name VARCHAR(160),acct_short_name VARCHAR(60),busi_typ CHAR(3),assu_busi_typ CHAR(2),dep_term INT,open_date DATE,close_date DATE,cust_open_date DATE,dep_bal_tsum DEC(24,2),dep_bal_msum DEC(24,2),dep_bal_qsum DEC(24,2),dep_bal_qend_ysum DEC(24,2),year_dep_amt DEC(17,2),year_dep_cnt INT,year_oth_amt DEC(17,2),year_oth_cnt INT,year_d_sum DEC(17,2),year_c_sum DEC(17,2),year_d_cnt INT,year_c_cnt INT,constraint P_pk01_acct_saacct primary key (record_date, dep_acct_no, curr_cd, curr_iden))in dms_dataindex in dms_idx获取数据库中现有存储过程select substr(procschema,1,15),substr(procname,1,15) from syscat.procedures; select * from syscat.procedures where procschema='XXGL'获取当前时间select current time from (values 1) as test;select current date from (values 2) as test;select (current_date)- 2 year,(current_date)+ 1 day,current_timestamp + 1 hour from (values 1) test在列中查询以删除重复的记录我们有一个表,字段A有重复的记录,我们想要编写一个SQL 查询来让字段A作为主键。

db2cmd 常用命令

db2cmd 常用命令
DB2数据库部分日常实用操作
"SERIALNO" INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY ( START WITH +0 INCREMENT BY +1 MINVALUE +0 MAXVALUE +2147483647 NO CYCLE NO CACHE NO ORDER ) ,
9、DB2 日志处理:
DB2日志是以文件的形式存放在文件系统中,分为两种模式:循环日志和归档日志。当创建新数据库时,日志的缺省模式是循环日志。在这种模式下,只能实现数据库的脱机备份和恢复。如果要实现联机备份和恢复,必须设为归档日志模式。
目前在综合业务系统中,设置的均是归档日志模式;其它系统(如事后监督、经营决策、中间业务等)一般都设置为循环日志模式。至于采用何种模式,可以通过修改数据库配置参数(LOGRETAIN)来实现: 归档日志模式:db2 update db cfg for using logretain on 注:改为on后,查看数据库配置参数logretain的值时,实际显示的是recovery。改变此参数后,再次连接数据库会显示数据库处于备份暂挂(BACKUP PENDING)状态。这时,需要做一次对数据库的脱机备份(db2 backup db ),才能使数据库状态变为正常。
11、如何清理db2diag.log文件
db2diag.log,是用来记录DB2数据库运行中的信息的文件。可以通过此文件,查看记录的有关DB2数据库详细的错误信息。此文件也是不断增大的,需要定期进行清理。
可以通过查看实例的配置参数DIAGPATH,来确定db2diag.log文件是放在哪个目录下:db2 get dbm cfg 如果Diagnostic data directory path(DIAGPATH) = /home/db2inst1/sqllib/db2dump,则此文件是放在/home/db2inst1/sqllib/db2dump目录下。当文件系统/home的使用率达到80%-90%左右时,应及时删除db2diag.log文件。

DB2 Load数据装入

DB2 Load数据装入

DB2 Load数据装入1.引言这段时间一直在忙一个基于DB2的项目,其中一部分工作涉及到DB2数据的导入。

我们知道oracle提供了sqlloader程序完成大数据量的快速导入,DB2是和oracle最相似的数据库,所以DB2也提供了数据导入的实用程序,而且还是两个,分别是import和load,因为import的实质还是要执行sql语句完成数据的导入,所以速度相对较慢。

Load是直接将格式化的页写入数据库,对于大数据量的导入,load程序更快。

但是load实用程序不会触发触发器。

并且load时除了验证索引唯一性约束之外,不执行其他的约束检查,这样会对数据库的数据完整性造成一些影响。

如果能保证数据来源可靠的话,load是个不错的选择。

接下来就简单说一下load实用程序的使用。

2.概述Load 的过程分为四个阶段:装入,构建,删除,索引复制。

如下图:Load有四种装入方式,分别是:REPLACE:这种方式下会删除目标表数据,用并用输入数据填充该表。

INSERT:目标表原有数据不做修改,将输入数据追加到目标表之后。

TERMINATE:装载失败后,可以通过该方式回滚失败的装入操作。

RESTART:已终端的装入操作将继续(我没有试过这种方式)。

Load可以装入的数据格式包括IXF——也就是DB2 export程序推荐的那种数据格式,是二进制的。

这种数据导入也最方便;DEL——就是分界符的ASCILL文件,DB2默认的是用逗号(,)作为字段列的分隔符,用双引号(“)作为记录行的分隔符;ASC——非定界符的ASCII文件,load时需要指定列的起止位置;CURSOR——游标,我没用过。

3.语法及参数介绍Load程序的语法参数还是相当复杂的,现在虽然在用这个程序了,但是有些参数还是没搞明白。

在这里我拣着主要的&&我明白的参数介绍一下。

基本上能够满足一般的装入操作要求。

因为语法实在是很繁琐,我不得不贴一张官方的大图出来了。

db2 load

db2 load
比如: 可以 insert into a (select * from a);
但是不可以: load from (select * from a) of cursor insert into a nonrecoverable; 因为这样会报错
请注意:load 对于default值是可以实现的。比如如果load目标表有default '' not null的字段,那么load并不会报错。
请注意:load对于runstats也是敏感的。测试过一个load,目标表没有runstats的时候,花了50秒才load完成,
runstats之后1秒不到就完成了。
看来runstats什么速度都可以影响啊。
请注意:load 的时候不能读本表,再写入本表,但是insert可以。
将会填充''。
load from d:\zjj\sysinfo.del of del replace into sysinfo1(id,private) nonrecoverable; ---报错
load from d:\zjj\sysinfo.del of del replace into sysinfo1(id,'private') nonrecoverable; ---成功
请注意:db2 load 只支持向实表中load数据,不能支持向系统临时表中load数据。
请注意:如果一个表中的字段名字有private,你会发现在指定字段名字load的时候是无法load的,但是import就可以。
此时可以给指定的字段(private)加上'',这样就可以load了。
在load过程中,可以通过
load query TABLE_NAME 来查看loarom"的话load的数据文件一定要是db2远程服务器上的保存的文件才能load,否则会报错,"SQL3126N 远程客户机需要文件和目录的绝对路径"

db2load方法

db2load方法
create procedure db2load_test
(in table1 varchar(20),
in table2 varchar(20),
out cursor_out varchar(1000),
out load_state varchar(1000))
begin
DECLARE v_version_number integer default 1;--
call sysproc.db2load(V_version_number,V_CURSOR_STATEMENT,V_LOAD_COMMAND,v_sqlcode,v_sqlmessage,rows_read,rows_skipped,rows_loaded,rows_rejected,rows_deleted,rows_committed,rows_part_read,rows_part_rejected,rows_part_partitioned,V_MPP_LOAD_SUMMARY);
set V_LOAD_COMMAND='LOAD FROM C OF CURSOR INSERT INTO '||table2||' nonrecoverable';
set cursor_out=V_CURSOR_STATEMENT;
set load_state=V_LOAD_COMMAND;
存储过程如下:
drop procedure load_table1_2_table2;
create procedure load_table1_2_table2
(in table1 varchar(30),
in table2 varchar(30),

分区数据库环境下 DB2 LOAD 性能调优

分区数据库环境下 DB2 LOAD 性能调优

分区数据库环境下 DB2 LOAD 性能调优吴磊, 软件工程师, IBM简介:本文详细阐述了分区数据库环境下 DB2 LOAD 的线程模型,并以 LOAD 线程模型为纲,详细分析每个线程的作用和特点,多方面、多角度地剖析影响其性能的因素,同时对性能的改进提供了参考建议。

最后,以实例演示展示了性能调优的效果。

DB2 LOAD 实用程序广泛应用于各行业、各领域的数据移动场景中,通过本文,相关读者可以充分理解 DB2 LOAD 的线程模型,影响各相关线程性能的关键参数,文中给出的参考建议与实例场景对读者有借鉴意义。

本文的标签:dpf, 关于产品, 性能, 管理发布日期:2011 年 12 月 12 日 级别:中级访问情况 :806 次浏览DB2 LOAD 线程模型在本文中,除非特别声明,对于 DB2 LOAD 的讨论都是在分区数据库环境下。

同时本文专注于讨论分区数据库环境下 DB2 LOAD 的性能调优,不再对分区数据库中的基本概念进行赘述,阅读本文的读者需要对分区数据库概念有基本的了解。

LOAD 作为DB2 的实用程序,广泛地应用于各种数据移动场景中,尤其是在数据仓库的 ETL 过程中,LOAD 更是占据了主导地位。

因此如何有效地提升 LOAD 性能,在数据移动场景中满足客户的需求和期望,是至关重要的。

在对LOAD 性能进行调优之前,首先需要理解 LOAD 中各相关线程的作用和特点,从而有针对性地进行调整、优化。

LOAD 线程模型如图 1 所示。

图1. LOAD 线程模型在 DB2 中,LOAD 操作请求由代理线程 db2agent 受理,该线程负责派生、协调、监视相关LOAD 线程。

LOAD 内部相关线程的处理流程,从预分区代理线程(db2lpprt)开始。

预分区代理只存在于 Coordinator 分区节点,读入输入数据源,通过TCP/IP 网络将数据记录分发至各数据库分区的分区代理线程(db2lpart)。

db2load

db2load

Db2 文件导入导出常见命令总结Db2 文件导入导出常见命令总结Db2 的数据迁移,最常用的就是导入导出功能,而导入导出的命令貌似简单,实则内含玄机,千变万化,稍不留神,则错误百出,这儿就工作中常用到的命令,总结了一下,分享给大家!欢迎大家踊跃拍砖!当然在这以前,我觉得有必要提及一点关于导入导出基础的知识!DEL:界定的ASCII文件,行分隔符和列分隔符将数据分开。

ASC:定长的ASCII文件,行按照行分割符分开,列定长。

PC/IXF:只能用来在db2之间导数据,根据类型数字值被打包成十进制或者二进制,字符被保存为ASCII,只保存变量已经使用了的长度,文件中包括表的定义和表的数据。

WSF:工作表方式导入导出,这种格式的文件类型用的比较少。

Db2中对不同的数据导入导出方式,支持不同的文件类型,这里个人觉得很有必要注意下的。

文件类型Import export load-------------------------------------------------------定界支持支持支持非定界支持不支持支持Ixf 支持支持支持Wsf工作表支持支持不支持关于3种导入导出操作进行简单的介绍:export:导出数据,支持IXF,DEL或WSFimport:导入数据,可以向表中导入数据,支持上面提到的4种文件类型。

load:导入数据,功能和import基本相同。

支持以上说的几种文件类型。

关于Export这个其实比较简单,没啥好说的,一般命令:export to filename of filetype select x from xx where ;就ok了,这里需要注意的是:1. 关于不同字符集的导出MODIFIED BY CODEPAGE=Exprot to filename.del for del MODIFIED BY CODEPAGE=1386 select … from …where …; 这里,在数据从数据库倒出来的时候就会做一个数据库代码页的转换2.时间字段格式化的MODIFIED BY TIMESTAMPFORMAT="yyyy-mm-dd hh:mm:ss tt"例:Exprot to filename.del for del MODIFIED BY TIMESTAMPFORMAT="yyyy-mm-dd hh:mm:ss tt" select … from …where …;关于Import1.Import模式的介绍CREATE/INSERT/INSERT_UPDATE/REPLACE/REPLACE_CREATECREATE :首先创建目标表和它的索引,然后将数据导入到新表中。

db2load选项

db2load选项

db2load选项db2 load使⽤最近有个好朋友因为load问题导致了⽣产故障,所以特意写篇⽂章总结⼀下load的⽤法及注意事项。

1.load概述数据的导⼊⽅法有insert,import和load三种,其中load不需要写⽇志(或很少⽇志),不做检查约束和参照完整性约束,不触发Trigger,锁的时间⽐较短,因此特别适合⼤数据量的导⼊。

2.load的4个阶段load过程分为4个阶段:load/build/delete/index copy。

load阶段是将源⽂件parser成物理数据存储的格式,直接装⼊到页中,⽽不通过db2引擎,load阶段会检查表定义,违背定义的数据不会装⼊到表中。

build阶段建议索引(如果装⼊表有索引的话),会检查唯⼀性约束,违背了唯⼀性的数据会在delete阶段删除。

index copy阶段将index数据从指定的临时表空间拷贝到初始的表空间⾥,index copy只适应于allow read access场景。

load的4个阶段会记录在messages⽂件⾥。

3.online and offline load缺省情况下,load过程不允许其他应⽤访问表,即allow no access,或叫offline load(离线加载)。

Allow read access,或叫online load(在线加载),只有在load ...insert into的时候才允许使⽤,其他应⽤读到的数据是加载前的数据,load ... replace into会将数据先删除,再load,只能是离线加载。

4.load举例此例中,要将calpar.del⽂件数据导⼊到表calpar中,calpar表的第⼀个字段是primary key,最后⼀个字段定义为⾮空的数字型。

load命令如下:load from calpar.del of del modified by dumpfile=/dump.fil warningcount 100 messages par.msgs inser into calpar for exception calpar.exp此命令会产⽣四个输出,calpar为⽬标表,messages记录load的4个阶段,dumpfile记录违背表定义的数据,exception table记录违背唯⼀性约束的数据(exception table需要在load之前创建,表定义为⽬标表+timestamp type column+clob type column)。

db2 load的用法

db2 load的用法

首先贴一个db2官网的语法图:/developerworks/cn/data/library/techarticles/dm-0808khatri/sidefile1.h tml.-,--------------.V |>>-LOAD--+--------+--FROM----+-filename---+-+--OF--filetype----->'-CLIENT-' +-pipename---++-device-----+'-cursorname-'>--+-------------------------+--+------------------------+------>| .-,--------. | | .-,--------. || V | | | V | |'-LOBS FROM----lob-path-+-' '-XML FROM----xml-path-+-'>--+--------------------------------+--------------------------->| .---------------. || V | |'-MODIFIED BY----file-type-mod-+-'>--+-------------------------------------------------------------------------------+-->| .-,------------------------. || V | |'-METHOD--+-L--(----column-start--column-end-+--)--+-------------------------------+-+-'| | .-,-------------------. | || | V | | || '-NULL INDICATORS--(----null-indicator-list-+--)-'|| .-,-----------. || V | |+-N--(----column-name-+--)----------------------------------------------------------+| .-,---------------. || V | |'-P--(----column-position-+--)------------------------------------------------------'>--+------------------------------------+----------------------->'-XMLPARSE--+-STRIP----+--WHITESPACE-''-PRESERVE-'>--+--------------------------------------------------------------------------+-->'-XMLVALIDATE USING--+-XDS--+-----------------------+--| Ignore and Map parameters |-+-' | '-DEFAULT--schema-sqlid-' |+-SCHEMA--schema-sqlid------------------------------------------+'-SCHEMALOCATION HINTS------------------------------------------'>--+--------------+--+-------------+--+-----------------+------->'-SAVECOUNT--n-' '-ROWCOUNT--n-' '-WARNINGCOUNT--n-'>--+------------------------+----------------------------------->'-MESSAGES--message-file-'>--+-------------------------------+---------------------------->'-TEMPFILES PATH--temp-pathname-'>--+-INSERT-----------------------+----------------------------->| .-KEEPDICTIONARY--. |+-REPLACE--+-----------------+-+| '-RESETDICTIONARY-' |+-RESTART----------------------+'-TERMINATE--------------------'>--INTO--table-name--+-------------------------+---------------->| .-,-------------. || V | |'-(----insert-column-+--)-'>--+----------------------------------------------------------+-->| .-,-------------------------. || V (1) (2) | |'-FOR EXCEPTION--table-name--------------+-------------+-+-'+-NORANGEEXC--+'-NOUNIQUEEXC-'>--+-----------------------------+------------------------------>'-STATISTICS--+-USE PROFILE-+-''-NO----------'>--+-----------------------------------------------------------------+-->| .-NO----------------------------------------------------. |+-COPY--+-YES--+-USE TSM--+--------------------------+--------+-+-+ | | '-OPEN--num-sess--SESSIONS-' | || | .-,----------------. | || | V | | || +-TO----device/directory-+---------------------+ || '-LOAD--lib-name--+--------------------------+-' || '-OPEN--num-sess--SESSIONS-' |'-NONRECOVERABLE--------------------------------------------------'>--+-------------------+--+--------------------------+---------->'-WITHOUT PROMPTING-' '-DATA BUFFER--buffer-size-'>--+--------------------------+--+--------------------+--------->'-SORT BUFFER--buffer-size-' '-CPU_PARALLELISM--n-'>--+---------------------+--+----------------------------+------>'-DISK_PARALLELISM--n-' | .-YES-. |'-FETCH_PARALLELISM--+-NO--+-'>--+--------------------------------+--------------------------->'-INDEXING MODE--+-AUTOSELECT--+-'+-REBUILD-----++-INCREMENTAL-+'-DEFERRED----'.-ALLOW NO ACCESS-----------------------------.>--+---------------------------------------------+-------------->'-ALLOW READ ACCESS--+----------------------+-''-USE--tablespace-name-'>--+----------------------------------------------+------------->'-SET INTEGRITY PENDING CASCADE--+-IMMEDIATE-+-''-DEFERRED--'>--+-----------------+------------------------------------------>'-LOCK WITH FORCE-'>--+----------------------------------------------------------------------------+-->'-SOURCEUSEREXIT--executable--| Redirect Input/Output parameters |--+-------------+-' '-PARALLELIZE-'>--+------------------------------------------------------+----><| .-----------------------. || .-PARTITIONED DB CONFIG-. V | |'-+-----------------------+----partitioned-db-option-+-'Ignore and Map parameters|--+--------------------------------+--------------------------->| .-,------------. || V | |'-IGNORE--(----schema-sqlid-+--)-'>--+----------------------------------------------------+-------|| .-,-----------------------------------. || V | |'-MAP--(----(--schema-sqlid--,--schema-sqlid--)-+--)-'Redirect Input/Output parameters|--+---------------------------------------------------------------------------------+--|'-REDIRECT--+-INPUT FROM--+-BUFFER--input-buffer-+--+-----------------------------+-+-' | '-FILE--input-file-----' '-OUTPUT TO FILE--output-file-' |'-OUTPUT TO FILE--output-file-------------------------------------------'这个语法图先保存起来,有空再慢慢研究,目前暂时把自己能用并且测试过的写出来。

db2常用命令

db2常用命令

3. 取消节点编目
db2 uncatalog node <node_name>
1. 查看本地节点目录
命令窗口中输入:db2 list node directory
2. 编目一个TCP/IP节点
12. 表名或模式中含有引号时访问表
db2 backup db o_yd to d:
(db2 initialize tape on \\.\tape0)
(db2 rewind tape on \\.\tape0)
db2 backup db o_yd to \\.\tape0
10.恢复数据库
db2 import to c:\dftz.ixf of ixf commitcount 5000 insert into dftz
db2 import to c:\dftz.ixf of ixf commitcount 5000 insert_update into dftz
db2 import to c:\dftz.ixf of ixf commitcount 5000 replace into dftz
6. 编目数据库
db2 catalog database <db_name> as <db_alias> at node <node_name>
7. 取消数据库编目
db2 uncatalog database <db_name>
拷贝存储过程到服务器上的C:\sqllib\function目录中
12.整理表
db2 connect to o_yd user db2 using pwd
db2 reorg table ydd

DB2数据的导入(Import) 导出(Export)(Load)

DB2数据的导入(Import) 导出(Export)(Load)

DB2中所谓的数据移动,包括:1. 数据的导入(Import)2. 数据的导出(Export)3. 数据的装入(Load)导入和装入都是利用DB2的相关命令把某种格式的文件中的数据保存到数据库中的表中导出是指把DB2数据库的表中的数据保存到某种格式的文件当中去数据移动的作用:如果要在不同的数据库管理系统之间转移数据,数据移动通常是最实用的一种方法,因为任何一种数据库管理系统都支持常用的几种文件格式,通过这个通用的接口,就很容易实现不同系统间数据的转移。

这三个命令中,Export最简单,因为从表中向文件转移数据,通常不会出现错误,也不会有非法的数据。

1. ASC——非定界ASCII文件,是一个ASCII字符流。

数据流中的行由行定界符分隔,而行中的每一列则通过起始和结束位置来定义。

例如:10 Head Office 160 Corporate New York15 New England 50 Eastern Boston20 Mid Atlantic 10 Eastern Washington38 South Atlantic 30 Eastern Atlanta42 Great Lakes 100 Midwest Chicago51 Plains 140 Midwest Dallas66 Pacific 270 Western San Francisco84 Mountain 290 Western Denver2. DEL——定界ASCII文件,也是一个ASCII字符流。

数据流中的行由行定界符分隔,行中的列值由列定界符分隔。

文件类型修饰符可用于修改这些定界符的默认值。

例如:10,"Head Office",160,"Corporate","New York"15,"New England",50,"Eastern","Boston"20,"Mid Atlantic",10,"Eastern","Washington"38,"South Atlantic",30,"Eastern","Atlanta"42,"Great Lakes",100,"Midwest","Chicago"51,"Plains",140,"Midwest","Dallas"66,"Pacific",270,"Western","San Francisco"84,"Mountain",290,"Western","Denver"3. WSF——(work sheet format)为工作表格式,用于与Lotus系列的软件进行数据交换。

db2中load命令的用法

db2中load命令的用法

db2中load命令的用法
在DB2数据库中,LOAD命令用于将数据从外部文件加载到数据
库表中。

其基本语法如下:
LOAD FROM external_file OF DEL INSERT INTO target_table.
其中,external_file是包含要加载数据的外部文件的路径和
文件名,DEL表示文件中的字段是用特定的分隔符(通常是逗号或
制表符)分隔的,INSERT INTO target_table表示要将数据加载到
的目标表。

此外,LOAD命令还支持许多其他选项,例如可以指定要忽略的列、指定要跳过的行数、指定要使用的字符集等。

您还可以指定在
加载数据时是否验证外部文件中的数据与目标表中的数据类型是否
匹配。

需要注意的是,LOAD命令在执行时需要具有足够的权限,并且
要确保外部文件的格式与目标表的结构相匹配,以避免数据加载失
败或导致数据不一致的情况发生。

DB2 LOAD工具

DB2 LOAD工具

级别:初级袁春光(), 高级技术专家, 庄梁科技公司2009 年2 月23 日在DB2 数据库的日常使用中,很重要的一项工作就是移动数据,那么在此时就经常会用到LOAD 工具。

DB2 的LOAD 工具的功能非常强大,而且在很多方面与其他工具比较起来有着突出的优点,这使得LOAD 工具在DB2 数据移动方面有着不可替代的作用,尤其是在需要处理大规模数据的情况下表现尤其抢眼。

下面结合本人的实践经验介绍一下在使用LOAD 工具的过程中比较有帮助的一些技巧。

影响LOAD 性能的选项LOAD 工具与其他数据移动工具比较起来的一大优势就是提供卓越的性能,这主要是由于LOAD 对数据的加载时采取数据页级别的处理,这绕过了数据库管理系统的多个处理层次,因此可以极大的提高性能。

除了LOAD 工具本身的这一特点之外,我们还可以通过合理的设置LOAD 的一些选项来进一步提高其性能。

下面列出一些影响LOAD 性能的选项及其合理设置的建议。

CPU_PARALLELISM n此选项用于指定一个LOAD 同时使用n 个CPU 来并发的处理LOAD,在LOAD 处理的数据量较大并且操作系统的负载不高的情况下,可以通过此参数指定多个CPU 并发的执行构建表过程中的解析、转换、格式化等内容来提高效率。

如果同时启动了多个LOAD 工具要注意所有LOAD 工具指定的此参数最好不要超过操作系统中逻辑CPU 的总数(在此指定的CPU 是LCPU- 即逻辑CPU)。

此选项不设置,则DB2 会根据当前操作系统中CPU 的数量自动的分配CPU 数量。

DATA BUFFER buffersize此选项用于指定LOAD 工具能够使用的数据缓存的最大值,单位是4k 。

我们可以想象,在处理的数据量很大,且在不超过操作系统空闲物理内存的情况下,我们为LOAD 分配越多的数据缓存那么LOAD 的性能将会越好。

但是此值设置受到数据库的参数UTIL_HEAP_SZ 限制。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

当DB2 的数据库启用了前滚恢复模式,即将日志由循环日志方式改为归档日志,以便用户在进行恢复操作时,可在恢复了数据库或表空间的备份后,再通过前滚归档日志中的事务,恢复数据库备份时间点之后提交的事务,最大程度的保护数据库的数据。

而DB2 的LOAD 实用程序为实现快速导入数据的功能,除采用了通过直接向数据库中写入格式化的数据页装载数据,导入过程中不激活触发器,不会检查参考完整性和表检查约束当等方式外,还最小化了记录事务日志的操作。

在LOAD 的LOAD、BUILD、DELETE 和INDEX COPY 四个处理阶段中,仅在DELETE 阶段记录对每个删除事件记日志,即只对每个违反唯一约束的行的删除操作记日志,因此整个LOAD 操作仅记录了极少的日志。

由于LOAD 最小化了日志的记录,有因启用了前滚恢复的数据库在恢复在线备份时需要归档日志的特性,对于这种数据库的LOAD 操作,为避免执行LOAD 操作后,表在使用ROLLFORWARD 命令前滚归档日志的过程中因缺少日志而被置为非正常状态,DB2 为LOAD 命令提供了如下选项:·COPY NO(缺省)·COPY YES·NONREVERABLE为更清楚地说明这些选项的作用,这里将以举例的方式进行说明。

而在开始操作之前,首先了解一下DB2 备份操作所产生的映象文件的形式和命名特点:在UNIX 环境下是文件的形式:Databasealias.Type.Instancename.Nodename.Catnodename.Timestamp.number在Windows 环境下是子目录及文件的形式:Databasealias.Type\Instancename\Node0000\Catn0000\yyyymmdd\hhmmss.number而其中的Type 则因备份类型的不同而不同:0 -- 数据库全备份3 -- 表空间备份4 -- 由LOAD 操作产生的备份1. 进行一次数据库的全备份:首先对已启用前滚恢复模式的SAMPLE 数据库进行一次全备份:E:\TEST>db2 backup db sample备份成功。

此备份映像的时间戳记是:20051230174105这时看到在当前目录下产生了一个SAMPLE.0 的子目录,表明产生的是一个数据库全备份。

下面将对这些现象逐个予以举例说明:2. 关于COPY NO:在LOAD 操作结束时,将表所在的表空间置于“备份暂挂”状态,此时虽然其中的表可以进行SELECT 操作,但不能进行UPDATE 和DELETE 操作。

为使该表状态恢复正常,除去备份暂挂状态,必须手动对其表空间执行一个BACKUP 命令。

由于该选项为缺省选项,如果LOAD 命令中未指明,则默认为使用该选项,如:E:\TEST>db2 connect to sampleE:\TEST>db2 load from staff.del of del insert into staffE:\TEST>db2 list tablespaces:表空间标识= 2名称= USERSPACE1类型= 系统管理空间内容= 任何数据状态= 0x0020详细解释:备份暂挂:E:\TEST>db2 select count(*) from staff1-----------701 条记录已选择。

E:\TEST>db2 update staff set id=335 where id=340DB21034E 该命令被当作SQL 语句来处理,因为它不是有效的“命令行处理器”命令。

在SQL 处理期间,它返回:SQL0290N 不允许存取表空间。

SQLSTATE=55039在手动对USERSPACE1 表空间进行一次备份操作后,表空间状态将正常,再次尝试更新操作就会成功:E:\TEST>db2 backup db sample tablespace (userspace1)备份成功。

此备份映像的时间戳记是:20051230184841命令完成后可以在当前目录下看到产生了一个SAMPLE.3 的子目录,表明产生的是一个表空间级的备份。

E:\TEST>db2 connect to sampleE:\TEST>db2 list tablespaces表空间标识= 2名称= USERSPACE1类型= 系统管理空间内容= 任何数据状态= 0x0000详细解释:正常而所产生这份关于表空间的备份可在数据库因前滚操作将表空间置为“复原暂挂”状态时用于将表空间状态恢复为正常,并恢复LOAD 操作对该表的修改。

如当前滚数据库超过LOAD 时间点后,表空间将被置为复原暂挂状态:E:\TEST>db2 restore db sample taken at 20051230174105DB20000I RESTORE DA TABASE 命令成功完成。

E:\TEST>db2 rollforward db sample to end of logs and stopSQL1271W 已恢复数据库"SAMPLE",但在节点"0"上有一个或多个表空间脱机E:\TEST>db2 connect to sampleE:\TEST>db2 list tablespaces表空间标识= 2名称= USERSPACE1类型= 系统管理空间内容= 任何数据状态= 0x0100详细解释:复原暂挂此时可利用这一表空间级的备份进行恢复操作:E:\TEST>db2 restore db sample tablespace (userspace1) taken at 20051230184841DB20000I RESTORE DA TABASE 命令成功完成。

E:\TEST>db2 connect to sampleE:\TEST>db2 list tablespaces:表空间标识= 2名称= USERSPACE1类型= 系统管理空间内容= 任何数据状态= 0x0080详细解释:前滚暂挂:E:\TEST>db2 rollforward db sample to end of logs and stop tablespace (userspace1)前滚状态输入数据库别名= sample节点数已返回状态= 1节点号= 0前滚状态= 未暂挂下一个要读取的日志文件=已处理的日志文件= -上次落实的事务= 2005-12-30-10.47.10.000000DB20000I ROLLFORWARD 命令成功完成。

E:\TEST>db2 connect to sampleE:\TEST>db2 list tablespaces:表空间标识= 2名称= USERSPACE1类型= 系统管理空间内容= 任何数据状态= 0x0000详细解释:正常:E:\TEST>db2 update staff set id=335 where id=340DB20000I SQL 命令成功完成。

可见表空间状态已正常,表也可执行更新操作了。

3. 关于COPY YES:在LOAD 操作结束时,DB2 自动对表所在的表空间进行一次备份操作,因而LOAD 结束后,表所在的表空间不会再处于“备份暂挂”状态,而为“正常”状态。

但由于要进行备份操作,所以这种LOAD 操作的时间会较没有备份的长。

如:E:\TEST>db2 connect to sampleE:\TEST>db2 load from staff.del of del insert into staff copy yes to .E:\TEST>db2 list tablespaces:表空间标识= 2名称= USERSPACE1类型= 系统管理空间内容= 任何数据状态= 0x0000详细解释:正常:E:\TEST>db2 select count(*) from staff1-----------1051 条记录已选择。

此时可在当前目录下看到一个SAMPLE.4 的子目录,表明产生的是一个由LOAD 操作生成的备份,而这份备份将在数据库进行前滚恢复操作时用于重新创建LOAD 操作对数据库的修改。

如:E:\TEST>db2 restore db sample taken at 20051230174105DB20000I RESTORE DA TABASE 命令成功完成。

E:\TEST>db2 rollforward db sample to end of logs and stop前滚状态输入数据库别名= sample节点数已返回状态= 1节点号= 0前滚状态= 未暂挂下一个要读取的日志文件=已处理的日志文件= S0000002.LOG - S0000003.LOG上次落实的事务= 2005-12-30-11.48.26.000000DB20000I ROLLFORWARD 命令成功完成。

E:\TEST>db2 connect to sampleE:\TEST>db2 list tablespaces:表空间标识= 2名称= USERSPACE1类型= 系统管理空间内容= 任何数据状态= 0x0000详细解释:正常:E:\TEST>db2 select count(*) from staff1-----------1051 条记录已选择。

这表明在SAMPLE.4 下的备份被用于了前滚恢复操作,而重新创建了LOAD 操作对数据库插入的记录。

4. 关于NONRECOVERABLE:该选项会将LOAD 操作标志为不可恢复,即数据库不能通过后续的前滚操作而被恢复。

LOAD 操作结束后,数据库既不会处于“备份暂挂”状态,也不会产生任何的备份。

E:\TEST>db2 connect to sampleE:\TEST>db2 load from staff.del of del insert into staff nonrecoverableE:\TEST>db2 list tablespaces:表空间标识= 2名称= USERSPACE1类型= 系统管理空间内容= 任何数据状态= 0x0000详细解释:正常:虽然LOAD 之后表空间和表的状态都正常,但如果今后需要执行前滚命令恢复数据库时,前滚操作将跳过LOAD 事务的处理,而将LOAD 的表标记为无效,是对表的任何操作都不能进行。

如:E:\TEST>db2 restore db sample taken at 20051230174105DB20000I RESTORE DA TABASE 命令成功完成。

相关文档
最新文档