DB数据库导⼊导出
D B数据库导⼊导出
⽂件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]
D B2数据导⼊导出
2012年3⽉12⽇
编辑:徐彦
⼀、环境
操作系统:Redhat Linux AS
( #1 SMP i686 i386 GNU/Linux)
数据库版本:DB2 WorkGroup版 V9.7.0
(数据库版本可通过连接数据库来查看,db2 connect to dbname)
⼆、声明
实例⽤户,默认为db2inst1
Das⽤户,默认为dasusr1
数据库安装⽬录($INSTHOME),默认为/opt/ibm/db2/
实例安装⽬录($HOME),默认为/home/db2inst1/
实例名:db2inst1
数据库名:
三、导出具体步骤
导出对象结构
建议单独创建⼀个数据导出⽬录,利于导出⽂件整理的清晰。
$ su – db2inst1
# 切换⾄db2inst1⽤户
$ cd /
#为导出⽬录,例如/home/db2inst1/dbdmp(db2inst1要有相应的读写权限)
$ db2 connect to
# 连接⾄数据库
$ db2look –d -e –a –l –o .sql
# 导出数据库对象创建脚本
例⼦:
数据库名为meibof
导出数据库数据
(建议在⽬录下另建db2move的⽬录⽤来存放导出数据,因为db2move 命令会产⽣若⼲⽂件)db2move export
(如果导出是发现有warning,在上⾯的命名后⾯加上 -aw参数)
以数据库名为meibof为例:
四、导⼊具体步骤
建⽴新数据库
$ su – db2inst1
# 切换⾄db2inst1⽤户
db2 create db (建议使⽤db2cc⼯具来进⾏创建数据库)
创建名为meibof的数据库:
执⾏.sql脚本创建数据库
切换到放置.sql的⽬录
db2 –tvf .sql
(单次导⼊有可能丢失数据结构,建议连续执⾏3次,导⼊完成后,和开发⼈员确认数据库对象的数量,尤其是存储过程。)
导⼊数据
切换到放置db2move导出数据的⽬录
db2move load
⼀致性检查
原理:如果发现有表存在检查挂起状态(由于检查约束的原因),则输⼊命令如下db2 set integrity for immediate checked将其转换成正常状态。
⾸先利⽤ sql 语句得到要检查的表的执⾏语句
主要命令:
db2 "select 'db2 set integrity for .'||TABNAME||' immediate chec ked' from where TABSCHEMA='' and STATUS='C'"
以数据库名meibof,SCHEMA名meibof为例:
查出有14张表需要转换成正常状态。
在上⼀条语句末加上 > 把要添加的sql语句添加到脚本⽂件
db2数据库sql语句如下例:
⽤vi⽂本编辑器打开脚本⽂件:
1)在第⼀⾏加⼊连接数据库sql语句;
2)在最后⼀⾏加⼊commit命令,db2 commit
执⾏完后再次检查发现没有需要更正的:
说明:如果还有需要更正的表,则反复执⾏上述操作。
五、附录
⽤法
db2look 版本
db2look:⽣成 DDL 以便重新创建在数据库中定义的对象
语法: db2look -d DBname [-e] [-u Creator] [-z Schema] [-t Tname1
[-m] [-c] [-r] [-l] [-x] [-xd] [-f] [-fd] [-td x] [-noview] [-i userID] [-w password]
[-v Vname1 Vname2 ... VnameN]
[-wrapper WrapperName] [-server ServerName] [-nofed]
db2look -d DBname [-u Creator] [-s] [-g] [-a] [-t TnameN] [-p] [-o Fname] [-i userID] [-w password] db2look [-h]
-d: 数据库名称:这必须指定
-e: 抽取复制数据库所需要的 DDL ⽂件
此选项将⽣成包含 DDL 语句的脚本
可以对另⼀个数据库运⾏此脚本以便重新创建数据库对象
此选项可以和 -m 选项⼀起使⽤
-u: 创建程序标识:若 -u 和 -a 都未指定,则将使⽤ $USER 如果指定了 -a 选项,则将忽略 -u 选项
-z: 模式名:如果同时指定了 -z 和 -a,则将忽略 -z
联合部分的模式名被忽略
-t: ⽣成指定表的统计信息
可以指定的表的数⽬最多为 30
-tw: 为名称与表名的模式条件(通配符)相匹配的表⽣成 DDL 当指定了 -tw 选项时,-t 选项会被忽略
-v: 只为视图⽣成 DDL,当指定了 -t 时将忽略此选项
-h: 更详细的帮助消息
-o: 将输出重定向到给定的⽂件名
如果未指定 -o 选项,则输出将转到 stdout
-a: 为所有创建程序⽣成统计信息
如果指定了此选项,则将忽略 -u 选项
-m: 在模拟⽅式下运⾏ db2look 实⽤程序
此选项将⽣成包含 SQL UPDATE 语句的脚本
这些 SQL UPDATE 语句捕获所有统计信息
可以对另⼀个数据库运⾏此脚本以便复制初始的那⼀个
当指定了 -m 选项时,将忽略 -p、-g 和 -s 选项
-c: 不要⽣成模拟的 COMMIT 语句
除⾮指定了 -m 或 -e,否则将忽略此选项
将不⽣成 CONNECT 和 CONNECT RESET 语句
省略了 COMMIT。在执⾏脚本之后,需要显式地进⾏落实。
-r: 不要⽣成模拟的 RUNSTATS 语句
缺省值为 RUNSTATS。仅当指定了 -m 时,此选项才有效
-l: ⽣成数据库布局:数据库分区组、缓冲池和表空间。
-x: 如果指定了此选项,则 db2look 实⽤程序将⽣成授权 DDL 对于现有已授权特权,不包括对象的原始定义器
-xd: 如果指定了此选项,则 db2look 实⽤程序将⽣成授权 DDL 对于现有已授权特权,包括对象的原始定义器
-f: 抽取配置参数和环境变量
如果指定此选项,将忽略 -wrapper 和 -server 选项
-fd: 为 opt_buffpage 和 opt_sortheap 以及其它配置和环境参数⽣成 db2fopt 语句。
-td: 将 x 指定为语句定界符(缺省定界符为分号(;))
应该与 -e 选项⼀起使⽤(如果触发器或者 SQL 例程存在的话)
-p: 使⽤明⽂格式
-s: ⽣成 postscript ⽂件
此选项将为您⽣成 postscript ⽂件
当设置了此选项时,将除去所有 latex 和 tmp ps ⽂件
所需的(⾮ IBM)软件:LaTeX 和 dvips
注意:⽂件必须在 LaTeX 输⼊路径中
-g: 使⽤图形来显⽰索引的页访存对
必须安装 Gnuplot,并且 <> 必须在您的 LaTeX 输⼊路径中
还将随 LaTeX ⽂件⼀起⽣成 <> ⽂件
-i: 登录到数据库驻留的服务器时所使⽤的⽤户标识
-
w: 登录到数据库驻留的服务器时所使⽤的密码
-noview: 不要⽣成 CREATE VIEW ddl 语句
-wrapper: 为适⽤于此包装器的联合对象⽣成 DDL
⽣成的对象可能包含下列各项:
包装器、服务器、⽤户映射、昵称、类型映射、
函数模板、函数映射和索引规范
-server: 为适⽤于此服务器的联合对象⽣成 DDL
⽣成的对象可能包含下列各项:
包装器、服务器、⽤户映射、昵称、类型映射、
函数模板、函数映射和索引规范
-nofed: 不要⽣成 Federated DDL
如果指定此选项,将忽略 -wrapper 和 -server 选项
LaTeX 排版:latex 以获得
⽰例: db2look -d DEPARTMENT -u walid -e -o
-- 这将⽣成由⽤户 WALID 创建的所有表和联合对象的 DDL 语句-- db2look 输出被发送到名为的⽂件中⽰例: db2look -d DEPARTMENT -z myscm1 -e -o
-- 这将为模式名为 MYSCM1 的所有表⽣成 DDL 语句
-- 还将⽣成 $USER 创建的所有联合对象的 DDL。
-- db2look 输出被发送到名为的⽂件中
⽰例: db2look -d DEPARTMENT -u walid -m -o
-- 这将⽣成 UPDATE 语句以捕获关于⽤户 WALID 创建的表/昵称的统计信息-- db2look 输出被发送到名为的⽂件中
⽰例: db2look -d DEPARTMENT -u walid -e -wrapper W1 -o
-- 这将⽣成由⽤户 WALID 创建的所有表的 DDL 语句
-- 还将⽣成适⽤于包装器 W1 的⽤户 WALID 所创建所有联合对象的 DDL
-- db2look 输出被发送到名为的⽂件中
⽰例: db2look -d DEPARTMENT -u walid -e -server S1 -o
-- 这将⽣成由⽤户 WALID 创建的所有表的 DDL 语句
-- 还将⽣成适⽤于服务器 S1 的⽤户 WALID 所创建所有联合对象的 DDL
-- db2look 输出被发送到名为的⽂件中
⽤法
db2move [
⾸先,您必须指定数据库名(想要移动的表所在的数据库)和要执⾏的操作(export 和 import 或 load)。然后指定⼀个选项来定义操作的范围。例如,可以将⼀个操作限制在特定的表(-tn)、表空间(-ts)、表创建者(-tc)或模式名(-sn)范围内。指定表、表空间或表的创建者的⼀个⼦集只对export
操作有效。如果指定多个值,就必须使⽤逗号将其分隔开;在值列表项之间不允许有空格。可以指定的项最多为10个。
Export同时会导出建表命令!
另外,也可以指定 -tf 选项,此时要使⽤⼀个⽂件名作为参数,其中列出了要导出的表名;在该⽂件中,每⾏只能列出⼀个完整的表名。您还可以指定以下内容:
-io import-option
指定 DB2 的 import ⼯具可以运⾏的⼀种模式。有效的选项有: CREATE、INSERT、 INSERT_UPDATE、 REPLACE 和REPLACE_CREATE。缺省值为
REPLACE_CREATE。有关这些模式的更多内容,请参阅 DB2 的产品⽂档,可以从 DB2 技术⽀持获得这些⽂档。
-lo load-option
指定 DB2 的 load ⼯具可以运⾏的⼀种模式。有效的选项有:INSERT 和REPLACE。缺省值为 INSERT。有关这些模式的更多内容,请参阅 DB2 的产品⽂档,可以从 DB2 技术⽀持获得这些⽂档。
-l lobpaths
指定要创建或查的 LOB ⽂件的位置。必须指定⼀个或多个绝对路径名。如果指定了多个绝对路径,就必须使⽤逗号将其分隔开;值之间不允许有空格。缺省值是当前⽬录。
-u userid
指定⼀个⽤户 ID,该⼯具可以使⽤这个⽤户 ID 登录到远程系统上。
-p password
指定对该⽤户进⾏认证的密码;该⼯具需要使⽤⼀个有效的⽤户 ID 和密码登录到远程系统上。
db2move是DB2数据转移命令,⽤于不同操作系统之间(如linux和windows)的数据转移.
可以先⽤db2move export将数据导出,然后在另⼀个DB2⾥⽤db2move import或db2move load导⼊数据.
导出⽅法:
建⽴⼀个空⽂件夹,进⼊该⽂件夹使⽤
db2move Mydatabase export 导出数据.
导⼊⽅法:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论