数据移动参考的连接

IMPORT
http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.cmd.doc/doc/r0008304.html?cp=SSEPGG_9.7.0%2F3-6-2-4-58

EXPORT
http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.cmd.doc/doc/r0008303.html?cp=SSEPGG_9.7.0%2F3-6-2-4-36

LOAD
http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.cmd.doc/doc/r0008305.html?cp=SSEPGG_9.7.0%2F3-6-2-4-78

lob export
http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.dm.doc/doc/c0004562.html

table export
http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.dm.doc/doc/c0004561.html

type table export
http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.dm.doc/doc/c0050960.html

LBAC-protected data export considerations
http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.dm.doc/doc/c0024643.html

Identity column export considerations
http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.dm.doc/doc/c0004560.html

移动工具
import/export
load

db2look/db2move
db2dart

使用数据移动的场景及问题
1.在对某表做大量修改时,特别是CR时,检查数据库的备份记录,是否有最近的备份文件,如果有,请客户确认如果出现问题是否可用;另一种,就是做数据的临时备份,这时我们需要DataMovement Tools
如何评估表中的数据量大小

如何方便的查看表中是否含有标识列
db2 "select distinct identity from syscat.columns where tabname = 'XXXX'" 如何方便的查看表中是否含有lob列
db2 "select TABSCHEMA concat '.'||TABNAME from syscat.columns where typename like '%LOB' and TABSCHEMA not like '%IBM%' and not like 'SYS%'" | grep -i xxxxx 另一种方式是查看表的定义
db2look -d db_name -t t1 t2 -e -o db2look_tables.out;cat db2look_tables.out
e.g. db2look -d sample -t dbv97fp7.employee -e
NOTE:如果在-t选项做了某表的alias,那么将不会导出数据

2. 在跨操作系统情况下,恢复数据库,在这种情况下,无法使用offline 或online 备份文件进行数据库恢复

似乎export 无法完成这样的工作啊,因为语法上是需要select 语句导出数据的,该如何实现的呢?

db2look+db2move

3. 表数据迁移,有时,客户需要将一个表中的数据迁移到另一个表中,其中表的定义可能不一致的

标识列:

NOTE:标识列导入导出的注意事项

1) 在原数据中没有标识列的情况下导入到含有标识列的表

A B C  --->  A B i1 C

NOTE:这是原数据中的列数小于目标表中的列数的特殊情况

2)在原数据中带有标识列的情况下导入到含有标识列的表

A B i1 C ---> A B i1 C

3)目标表带有 generated always 的标识列,不需要导入文件中的标识列值

4)目标表带有 generated always 的标识列,需要使用载入原数据中标识列的值

NOTE:普通的identity能否使用identityoverride 文件修饰符

5)导入文件中含有标识列,但是表中不包含标识列

NOTE:这是目标表列数小于原数据列数的特例

生成列:

导入注意事项:

没有使用文件类型修饰符时,将会按照如下规则进行

1)当数据文件中相应的行缺少生成列的值或提供了NULL值时,将创建生成列值;

直接导入将导致生成列后的列的值,无法导入必须使用如下方法

2)如果为生成列提供了非空值,那么将拒绝该行(SQL3550W)

生成列与标识列有类似的问题

导入和导出生成列同样有类似与标识列的文件修饰符 generatedignore,generatedmissing,generatedoverride

NOTE:使用load 和文件修饰符 generatedoverride 会出现如下问题,该如何处理

SQL0668N  Operation not allowed for reason code "1" on table "DBV97FP7.TBGE".SQLSTATE=57016 ????

3)如果为不可空生成列创建了NULL值,例如如果将列定义为两个表列之和,但这两个表列的文件中含有NULL值,那么会发生这种情况,那么将拒绝整行(SQL0407N)

大对象的导入导出:

导出大对象(LOB)列的表时,默认操作是对每个LOB值导出最多32KB,以便将其与列数据的余下部分放在同一个文件中。如果要导出超过32KB的LOB值,那么应将LOB数据写至单独文件以便截断。

要指定应将LOB写至自己的文件,可以使用lobsinfile文件修饰符。此文件类型修饰符指示EXPORT使用程序将LOB数据放置在LOBS TO 子句指定的目录中。使用LOBS TO 或LOBFILE会隐式激活lobsinfile文件类型修饰符。

默认情况下,LOB值与导出的关系数据将写至同一路径。如果LOBS TO 选项指定了一个或多个路径,那么EXPORT使用程序将循环使用这些LOB路径,以便每个成功的LOB值写入相应的LOB文件。

可以使用lobfile选项对输出LOB文件指定名称。如果指定了LOBFILE选项,那么LOBFILENAME的格式为lobfilespecxxx.lob,其中lobfilespec是为LOBFILE选项指定的值,而xxx是 EXPORT使用程序生存的lob文件的序号,否则,lobfilename的格式为exportfilename.xxx.lob,其中exportfilename是为EXPORT命令指定的已输出文件格式名称,而xxx是export实用程序输出的lob文件的序列号

默认情况下,多个LOB将写至单个文件,如果将各个LOB存储在不同的文件中,可以使用lobsinfepfiles文件修饰符已将每个LOB写至单独的文件(如何解释各个LOB)

空值:

对于空值的处理,往往会有很多问题,比如

1)我们在导入列是空值时,完成插入一个默认值,而非空,避免存在列有非空限制,导致数据导入失败;

2)对于变成字符列来说 ,对于导入的数据,往往希望将字符尾部的空格自动消除掉,但是事与愿违,导入的数据将会保留尾部的null or blank;

3)数据库默认情况下,会消除字符串前面的空格,有时候,我们希望保留,比如是名字的前面

对于null处理数据库提供了如下文件修饰符 nullindchar striptnulls  striptblanks  keepblanks

定界符:

什么是定界符?

定界符包括哪些类型,分别什么意思?  record delimiter, character delimiter, column delimiter

对于定界符的作用,往往是避免数据库识别错误文件数据。

1)我们的数据,有时候需要导入的数据如下

I am 6" tall

数据中不包含字符定界符,""是数据而不是定界符的情况;  ----这里的两种处理方式(取消字符定界符,修改字符定界符为其他)

2)我们想导出的数据不包含字符定界符;

3)字符定界符““与数据冲突,想改变字符定界符;

4)"Vincent <row delimiter> is a manager", <row delimiter>

"Vincent

is a manager"

"Bob

is a employee"

导入的数据库中;

数据库提供如下的文件修饰符:nodoubledel,

chardel,coldel,delprioritychar

双字符定界符

""  ---解释一下双字符定界符

字符定界符,列定界符,行定界符(记录定界符)

PC/IXF:

特点一:

典型导出操作包括插入到现有表中所选数据的输出,当然也可以导出整个表,以备以后使用import重建表。这种情况,必须指定文件格式为PC/IXF,然后通过CREATE 方式创建已保存表(包括索引)。但是出现以下任何情况,某些数据将不会保存到IXF文件中

特点二:

该文件是二进制文件,可以跨平台使用,并且文件占用空间小。

数据库有两个文件修饰符

indexixf,nochecklengths

日期格式:

在不同平台和系统上进行数据移动时,日期格式容易出问题。

这几个文件修饰符仅用于ASC和DEL格式

dateformat

datesiso

timeformat

timestampformat

这两个没有研究呢

代码页不同

XML

DB2 移动数据总结一的更多相关文章

  1. 【DB2】数据迁移

    数据迁移概述 在日常生活中常有数据的导入导出,为此db2提出了很多工具可以选择,export.import.load.db2look.db2move.db2dart,如下图所示: a.最上面虚线框部分 ...

  2. DB2批处理数据导入

    这里需要两个BAT文件 first.bat @echo off @set /p databaseName=1)请输入数据库名: @set /p userName=2)请输入用户名: @set /p u ...

  3. DB2删除数据时的小技巧

    大家对如何删除数据都不陌生,我们习惯性的这么写: 其实这么写性能并不好,尤其是删除大量数据的时候,要想获得更好的性能,可以采用如下方式: 那如果要把一个表的所有数据都删除了,该怎么办?有人可能会说,这 ...

  4. 批处理数据--db2备份数据

    如果要插入数据,前提先根据主键删除记录,然后在插入. 批处理包含两个必要文件 init.bat和start.bat 文档内容如下 init.bat内容如下 @echo ondb2 connect to ...

  5. 【shell】定时删除DB2表数据

    使用db2的时候,有时候需要对表数据进行删除,防止数据太多,造成数据库空间满了 以下是一个定时删除表tmp,tm1中id为1的数据的脚本 #!/bin/sh ##------------------- ...

  6. DB2导入数据时乱码问题

    1.由于导入import导入数据时乱码,一直找不到解决办法,于是就用load导入 LOAD后,发现某些表检查挂起( 原因码为 "1",所以不允许操作 SQLSTATE=57016  ...

  7. 数据迁移实战:基于Kettle的Mysql到DB2的数据迁移

    From:https://my.oschina.net/simpleton/blog/525675 一.什么是ETL ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数 ...

  8. DB2大数据量优化查询解决方案

    利用DB2表分区的功能对大数据量的表进行分区,可以优化查询. 表分区介绍: 表分区是一种数据组织方案,它根据一列或多列中的值把表数据划分为多个称为数据分区 的存储对象. (我觉得表分区就类似于Wind ...

  9. DB2检查数据在各节点分布情况

    情景:总所周知,DB2的表空间(数据)在节点中存储是根据每张表的分区键来分布的,如果分区键建的不好,会直接导致表空间在各节点的占用大小不均匀,久而久之,其中一个或几个节点的大小已所剩无几,其他的却依旧 ...

随机推荐

  1. velocity的日志解决问题

    问题描述:velocity使用时,添加了一个非自己想要的日志文件,因此在velocity的配置中需要添加logger. 解决: velocity.properties添加log配置: runtime. ...

  2. HDU 1496

    题目出处:HDU OJ 1496 http://acm.hdu.edu.cn/showproblem.php?pid=1496 为了练习Hash,特定采用了杭电自带的分类列表http://acm.hd ...

  3. Mathcad操作tips:算式输入、变量定义与计算

    算式输入 1. 数字与符号相乘,输入时不必手动输入乘号(“*”). 2. 以下有助于算式的可视化:a. 使用Math工具栏输入,并合理使用tab键:b. 合理使用空格键. 3. 输入开根号时,可用快捷 ...

  4. ES6——数据结构Set

    数据结构 Set 集合的基本概念: 集合是由一组无序且唯一(即不能重复)的xiang组成的.这个数据结构使用了与有限集合相同的数学概念,应用在计算机的数据结构中. 特点: key和 value 相同, ...

  5. C# 等待框

    今天发现dev控件自带了等待框,调用方便,而且不会阻塞主线程. 拉一个窗体,界面上放两个按钮,显示等待框,隐藏. <Window x:Class="WaitDialogTest.Mai ...

  6. 《OD面试》Java面试题整理

    一.面试考察点 1 主语言本身 2 数据库 3 算法 4 Spring/SpringMVC/MyBatis 5 项目经验 1)项目涉及到的技术点深挖: (1)考察候选人技术深度  (2)看候选人遇到问 ...

  7. RDLC报表的相关技巧四(报表内依照分组重置页码)

    报表中不同的组重置页数,如采购订单每一个PO显示的页数都是针对这个PO的,而不是总的页数. 步骤: 1.在各组实例中启用分页符2.用高级模式将组的属性中的ResetPageNumber设置为True3 ...

  8. AHOI2005航线规划 bzoj1969(LCT缩点)

    题目描述 对Samuel星球的探险已经取得了非常巨大的成就,于是科学家们将目光投向了Samuel星球所在的星系——一个巨大的由千百万星球构成的Samuel星系. 星际空间站的Samuel II巨型计算 ...

  9. css盒子模型基础,margin-top塌陷,元素溢出

    现在布局不用table,一般用盒子模型来布局,也就是通常说的div+css,一个页面就是多个盒子的拼接   一. 初识盒子模型   例子1,测试盒子各属性设置   <head> <s ...

  10. [jvm]运行时数据区域详解

    了解虚拟机是怎么使用内存的,有助于我们解决和排查内存泄漏和溢出方面的问题.详解java虚拟机内存的各个区域,分析这些区域的作用服务对象以及可能发生的问题. 一.运行时数据区域 java虚拟机在执行ja ...