db2中load命令的用法
DB2数据导入导出及建库步骤2命令

文档编号:DB2数据导入导出及建库步骤2013年3月关于本文档说明:类型-创建(C)、修改(U)、删除(D)、增加(A);目录关于本文档 (2)DB2 数据导入导出及建库步骤 (4)一、数据库数据的导出 (4)二、编辑导出的数据 (4)三、数据库的创建 (5)四、数据库数据的导入 (5)五、数据库数据的备份与还原 (5)DB2 数据导入导出及建库步骤【说明:LISG为已有数据库,LISG为想要创建的数据库。
】一、数据库数据的导出1、启动DB2服务本地:db2cmd 远程:telnet2、连接数据库db2 connect to LISG user db2inst1 using db2adm273、重启数据库,断开所有连接db2stop forcedb2start4、导出表结构及函数db2look -d LISG-a -e -x -o 20130309.sql -i db2inst1 -w db2adm275、导出基础数据(需指定文件夹目录cd /home/db2inst1/20130309 )db2move LISG export -u db2inst1 -p db2adm27二、编辑导出的数据1、基础数据打tar包命令:进入上级目录,执行“tar -tvf 20130309.tar20130309 ”;2、将导出的建表语句、基础数据放到指定路径下,编辑导出的20130307.sql文件,按照“表结构\视图\函数\存储\RISKAMNT函数”排序。
去掉所有的双引号,更换表与函数的前缀名为想要用的用户名(如“DB2INST1”),去掉开头的connect 并且把所有存在blob字段的表空间(即create语句的IN 后面的表空间)改成新建pagesize 32 K 的表空间(LISG);3、将所有的创建function语句剪切到另一个function.sql文件中去(直接创建function可能会失败);4、编辑db2move.lst文件,将双引号去掉,更换前缀名为想要用的用户名(如“DB2INST1”);三、数据库的创建1、新建数据库LISGdb2 create database LISG using codeset utf-8 territory cn2、查看库信息db2 get db cfg for LISG3、创建缓冲池(连接到LISG后为LISG创建一个pagesize 为32k的缓冲池)db2 connect to LISG user db2inst1 using db2adm27db2 create bufferpool LISGBF immediate size 1000 pagesize 32K4、创建三个表空间,使用刚才建立的缓冲池,使用D:\DB2\LISG处的容器(自动新建)常规表空间:db2 create regular tablespace LISG pagesize 32K managed by system using ('D:\DB2\ LISG) bufferpool LISGBF系统临时表空间:db2 create system temporary tablespace LISG1 pagesize 32K managed by system using ('D:\DB2\ LISG1) bufferpool LISGBF用户临时表空间:db2 create user temporary tablespace LISG2 pagesize 32K managed by system using ('D:\DB2\ LISG2) bufferpool LISGBF四、数据库数据的导入1、连接数据库db2 connect to LISG user db2inst1 using db2adm272、导入表结构db2 –tvf 20130309.sql3、导入函数db2 –tvf function.sql4、导入基础数据db2move LISG load -u db2inst1 -p db2adm27五、数据库数据的备份与还原(一)数据库数据备份1、重启数据库,断开所有连接db2stop forcedb2start2、备份数据库db2 backup database LISG to ‘指定目录’(二)数据库数据还原(备注:当在同一台主机上还原一个新的数据库时产生容器共享冲突)1、重启数据库,断开所有连接db2stop forcedb2start2、删除数据库db2 drop database LISG3、重建数据库LISGdb2 create database LISG using codeset utf-8 territory cn4、查看库信息db2 get db cfg for LISG5、创建缓冲池(连接到LISG后为LISG创建一个pagesize 为32k的缓冲池)db2 connect to LISG user db2inst1 using db2adm27db2 create bufferpool LISGBF immediate size 1000 pagesize 32K6、创建三个表空间,使用刚才建立的缓冲池,使用D:\DB2\LISG处的容器(自动新建)db2 create regular tablespace LISG pagesize 32K managed by system using (/home/db2inst1/LISG/ LISG’)bufferpool LISGBFdb2 create system temporary tablespace LISG1 pagesize 32K managed by system using ('D:\DB2\ LISG1') bufferpool LISGBFdb2 create user temporary tablespace LISG2 pagesize 32K managed by system using ('D:\DB2\ LISG2') bufferpool LISGBF7、还原数据库【说明:备份的数据库(olddb) 与要还原的数据(newdb)名不相同: db2 restore db olddb into newdb 】db2 restore database LISG into LISG(from C:\Documents and Settings\Administrator)友情提示:范文可能无法思考和涵盖全面,供参考!最好找专业人士起草或审核后使用,感谢您的下载!。
DB2数据库的迁移备份

db2数据库迁移备份一、操作系统相同:(属于离线/脱机备份)在相同操作系统下进行DB2的备份还原,使用BACKUP 和RESTORE 命令解决。
Linux下,切换DB2用户即可;Windows下,运行db2cmd。
1、backup1.1、db2 force applications all (断开数据库连接)1.2、db2 backup db db_name to D:\ (备份至D盘根目录)2、restore2.1、db2 force applications all (断开数据库连接)2.2、db2 restore db db_name from D:\ taken at 20151212190026 (还原D盘根目录下时间戳为20151212190026的备份文件)2.3、db2 rollforward db db_name to end of logs and stop (前回滚操作)2.4、如果不能连接数据库,将刚恢复的数据库进行一次备份操作即可。
二、跨系统的数据迁移操作:DB2 提供了两个非常实用的工具:(将Windows下的test数据库迁移至Linux下的test)★数据迁移工具db2move★数据字典获取工具db2look1、Windows下导出数据:运行->输入db2cmd,使用db2move 命令将源数据库(TEST)数据信息导出至指定的文件夹D:\dbback\db2move\TEST 下(目录自建)D:> cd \dbback\db2move\TESTD:\dbback\db2move\TEST> db2move TEST export -sn test -u test01 -p 123456Ps:-sn指定表模式-u指定用户 -p对应密码执行导出,成功后会显示Disconnecting from database ... successful!2、Windows下导出结构:使用db2look 命令将数据库结构,导出至指定的文件夹D:\dbback\db2look\TEST下D:> cd \dbback\db2look\TESTD:\dbback\db2move\TEST> db2look -d TEST -e -a -o db2look_TEST.sqlPs:-d 为指定数据库,参数必须-e 抽取数据库对象的DDL,这个参数必须-a 所有的用户和模式(-u Creator :指定用户,有-a时,忽略-u) -a -u 都没有时,默认当前登录用户-o 指定输出文件名称3、Linux下导入结构:把刚才导出的D:\dbback\db2move 和D:\dbback\db2look文件夹上传到linux系统中★更新表结构:su - db2inst1:password:123456db2inst1@localhost:~> cd db2back/db2move/TESTdb2inst1@localhost:~/db2back/db2move/TEST> db2 CREATE db TESTundefineddb2inst1@localhost:~/db2back/db2move/TEST> db2 -tvf db2look_TEST.sql4、Linux下导入数据:★使用load 命令装载数据db2inst1@localhost:~> cd /db2home/db2inst1/db2back/db2move/TESTdb2inst1@localhost:~/db2back/db2move/TEST> db2move TEST load操作顺利的话,数据会被转移到linux下面。
DB2数据库管理最佳实践笔记-10日常运维

10.1 日常运维工具概述Runstats是run statistics的缩写,意思是收集统计信息,目的是为DB2优化器提供最佳路径选择;Reorg是重组的意思,目的是减少表和索引在物理存储上的碎片,提供性能;Reorgchk是重组前的检查Rebind是对一些包、存储过程或静态程序进行重新绑定。
几个工具的执行流程:首先通过Runstats收集表和索引的统计信息,然后执行Reorg重组,如果有必要则执行,然后再次收集统计信息。
最后,对于静态语句、存储过程等,执行Rebind绑定.10.2 Runstats在系统运行一个查询的时候,优化器需要决定用某种方式来访问数据。
只有当DB2对表中的数据有一个大概的了解,才能知道每一步操作大约需要处理多少数据,返回多少行。
当优化器了解了这些信息后,就会根据一系列的运算,判定出各种访问途径所需要消耗的资源,然后从中选择一个消耗资源最少的方法.最普通的Runstats就是统计表和索引中有多少行数据,有多少不同的数值.Runstats命令使用DISTRIBUTION参数手机数据分布.数据分布分为两种,一种叫做频率采样(Frequency),一种叫做百分比采样(Quantile)。
当收集数据分布时,两种采样方式都会被收集.其中频率采样是手机表中拥有相同数量最多的几行,比如10000行数据中9000行为10,然后500行为9,然后100行为8,剩下的部分平均分布.如果我们制定Frequency为3的话,那么系统就会记录下来有9000行10,500行9,然后100行8,剩下的部分在估算时则假定平均分布。
而百分比采样则是将整个10000行数据分成相等大小的若干段,然后记录每一段的段首和段尾的数值,当需要查询一个数据段时(比如C1〉10 AND C1<15),就可以根据每一个数据段的启始数值加上段落的大小,估算出符合查询条件的记录数量。
理论上,数据分布收集的越细致越好.但是经过细致的数据分布信息可能会导致DB2在优化SQL时需要处理更多的信息,并占用更多的系统存储空间,可能会导致性能的下降。
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作为主键。
db2数据库日志清理

1、lo ad 方法装入数据:exp ort t o tem pfile of d el se lect* fro m tab lenam e whe re no t 清理条件;l oad f rom t empfi le of delmodif ied b y del prior itych ar re place into tabl enamenonr ecove rable;说明:在不相关的数据表exp ort数据时,可以采取并发的形式,以提高效率;table name指待清理ta ble的名称;m odifi ed by delp riori tycha r防止数据库记录中存在换行符,导致数据无法装入的情况; r eplac e int o对现数据库中的内容进行替换,即将现行的数据记录清理,替换为数据文件内容;n onrec overa ble无日志方式装入;2、查找当前的应用:db2 lis t app licat ion g rep b tpdbs;3、删除当前正在使用的a pplic ation:db2 "fo rce a pplic ation (id1,id2,id3)"id1,id2,id3 是list显示的应用号;4、查看当前应用号的执行状态:db2 g et sn apsho t for appl icati on ag entid 299greprow5、查看数据库参数:db2 getdb cf g for //当前数据库可以省略6、修改数据库的log数据:db2 u pdate db c fg us ing <参数名><参数值>7、d b2sto p for ce的用法:在进行bind的时候出现如下错误:sql0082c an er ror h as oc curre d whi ch ha s ter minat ed pr ocess ing.sql0092nn o pac kagewas c reate d bec auseof pr eviou s err ors.sql0091nb indin g was ende d wit h "3" erro rs an d "0" warn ings.主要是表文件被加锁,不能继续使用;在进行s top的时候报错:d b2sto p8/03/2005 21:46:530 0sql1025nth e dat abase mana ger w as no t sto ppedbecau se da tabas es ar e sti ll ac tive.sql1025n the d ataba se ma nager wasnot s toppe d bec ausedatab asesare s tillactiv e.需要使用如下命令可以解决这个问题: db2stopforce08/03/2005 21:47:49 0 0 sql1064nd b2sto p pro cessi ng wa s suc cessf ul.sql1064ndb2stop proc essin g was succ essfu l.然后启动数据库db2s tart,连接数据库db2s后,重新进行bind即可。
db2报错Operationnotallowedforreason

db2报错Operationnotallowedforreason1.表操作错误SQL0668N Operation not allowed for reason code "1" on table "XXXX". SQLSTATE=57016的解决⽅法The table is in Check Pending state. The integrity of the table is not enforced and the content of the table may be invalid.An operation on a parent table or an underlying table that is not in a check pending state may also receive this error if a dependent table is in a check pending state.Execute the SET INTEGRITY statement with the IMMEDIATE CHECKED option on table table-name to bring the table out of the Check Pending state.For a user maintained materialized query table, execute the statement with the IMMEDIATE UNCHECKED option instead of the IMMEDIATE CHECKED option.:ERROR [57016] [IBM][DB2/AIX64] SQL0668N Operation not allowed for reason code "1" on table "XXXX". SQLSTATE=57016可能有⼀⾏或多⾏违反了对数据定义的约束。
db2数据迁移工具

1.db2 export 实用程序1)文件格式在前面的例子中,数据被提取到一个 DEL 格式的文件中。
默认情况下,列值之间以逗号(,)隔开,字符串以双引号(")括起来。
如果被提取的数据已经包含逗号和双引号,那么会怎么样呢?在这种情况下,导入或装载实用程序不可能确定哪些符号是实际的数据,哪些符号是分界符。
为了定制 EXPORT 如何操作,可以使用MODIFIED BY子句,并指定您想用文件类型修饰符更改哪些方面。
下面是带 MODIFIED BY子句的 EXPORT 命令:下面列出了一些常用的修饰符:chardelx指定 x 作为新的单字符字符串分界符。
默认值是一个双引号(")。
coldelx指定 x 作为新的单字符列分界符。
默认值是一个逗号(,)。
codepage=x指定 x (一个 ASCII 字符串)作为输出数据的新的码页(code page)。
在导出操作期间,字符数据被从应用程序码页转换成这种码页。
timestampformat="x"x 是源表中时间戳的格式。
考虑这个例子:EXPORT TO myfile.del OF DELMODIFIED BY chardel! coldel@ codepage=1208 timestampformat="yyyy.mm.dd hh:mm tt" MESSAGES msg.outSELECT * FROM schedule前面的命令按照以下方式将 SCHEDULE 表中的数据导出到 DEL 格式的文件中:字符串以感叹号(!)括起来。
列之间以 @ 符号分隔开。
将字符串转换成码页 1208。
SCHEDULE 表中用户定义的时间戳的格式为 yyyy.mm.dd hh:mm tt。
2)用 LOBSINFILE 修饰符导出大型对象当导出包含大型对象列的表时,默认情况下只能导出 LOB 数据的前 32 KB。
DB2导出表结构

DB2导出表结构、表数据小结2010/12/5一、DB2命令行导出数据库全库表结构①Win+R进入到DB2安装目录的BIN目录下,执行命令:DB2CMD,进入到DB2 CLP窗口。
命令:DB2CMD②创建一个data文件夹命令:MKDIR data说明:将数据库全表结构的SQL语句导出到data目录下③进入到data目录命令:CD data④导出数据库全表结构命令:DB2LOOK –D DATABASE_NAME–E –A – I USER_NAME–W P ASSWORD–O DB_DLL.sql说明:DATABASE_NAME —数据库名称USER_NAME —登录数据库用户名PASSWORD —登录数据库用户密码DB_DLL.sql —数据库全表SQL脚本文件二、DB2命令行导出数据库全库数据①执行命令,导出数据命令:DB2MOVE DATABASE_NAME EXPORT –u USER_NAME–p P ASSWORD说明:DATABASE_NAME —数据库名称USER_NAME —登录数据库用户名PASSWORD —登录数据库用户密码DB_DLL.sql —数据库全表SQL脚本文件提示:-u,-p必须是小写三、DB2命令行导出数据库单个表数据①执行命令,导出单表数据命令:DB2 EXPORT TO [path(eg..D:/TABLE_NAME.IXF)] OF IXF SELECT [字段(eg.. * or col1,col2,……coln)] FROM TABLE_NAME;说明:导出文件格式A:DEL (delimited ASCII format);B:WSF (work sheetformat);C:IXF (integrated exchange format, PC version)四、DB2命令行导入表数据①执行命令导入表数据命令:DB2 IMPORT FORM [path(eg..D:/TABLE_NAME.IXF)] OF IXF INSERTINTO TABLE_NAME;DB2 LOAD FROM [path(eg..D:/TABLE_NAME.IXF)] OF IXF INSERT INTOTABLE_NAME;DB2 LOAD FROM [path(eg..D:/TABLE_NAME.IXF)] OF IXF REPLACE INTOTABLE_NAME;//当装载数据前,先删除已存在的记录DB2 LOAD FROM [path(eg..D:/TABLE_NAME.IXF)] OF IXF RESTART INTOTABLE_NAME;//当装载失败时,重新执行,并极力导出结果和错误信息DB2 LOAD FROM [path(eg..D:/TABLE_NAME.IXF)] OF IXF RESTART INTOTABLE_NAME;//在存在自增长字段的数据导入DB2 LOAD FROM [path(eg..D:/TABLE_NAME.IXF)] OF IXF MODIFIED BYIDENTIEYIGORN INSERT TO TABLE_NAME;解除装入数据时,发生的检查挂起:SET INTEGRITY FOR TABLE1 CHECK IMMEDIATE UNCHECKED;说明:命令只对数据通过约束检查的表有效,如果执行还不能解除,有必要检查数据的完整性,是否不符合约束条件,并试图重新整理数据,再执行装入操作.db2 相关命令(db2look 和 move)以及相关SQL操作关键字: db2look move1、导出到一个文件获得sql语句db2look -d cqyancao -e -o db.sql -i db2user -w psw数据库名要出文件名用户名密码示例: db2look -d DEPARTMENT -u walid -e -o db2look.sql-- 这将生成由用户 WALID 创建的所有表和联合对象的 DDL 语句-- db2look 输出被发送到名为 db2look.sql 的文件中示例: db2look -d DEPARTMENT -z myscm1 -e -o db2look.sql-- 这将为模式名为 MYSCM1 的所有表生成 DDL 语句-- 还将生成 $USER 创建的所有联合对象的 DDL。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
db2中load命令的用法
在DB2数据库中,LOAD命令用于将数据从外部文件加载到数据
库表中。
其基本语法如下:
LOAD FROM external_file OF DEL INSERT INTO target_table.
其中,external_file是包含要加载数据的外部文件的路径和
文件名,DEL表示文件中的字段是用特定的分隔符(通常是逗号或
制表符)分隔的,INSERT INTO target_table表示要将数据加载到
的目标表。
此外,LOAD命令还支持许多其他选项,例如可以指定要忽略的列、指定要跳过的行数、指定要使用的字符集等。
您还可以指定在
加载数据时是否验证外部文件中的数据与目标表中的数据类型是否
匹配。
需要注意的是,LOAD命令在执行时需要具有足够的权限,并且
要确保外部文件的格式与目标表的结构相匹配,以避免数据加载失
败或导致数据不一致的情况发生。