【玩转DB2】一、DB2常用命令

简介:

首先自我介绍:我是小可!哈哈,我看云栖关于DB2文章很少,正好我也是在做数据仓库,平时用到的一些东西给大家分享一下!有问题记得评论提出哦!也可以加我的技术交流群:127591054和企鹅联系我哦!希望可以帮助到大家感谢!

第一步,学习DB2除了自己装个DB2以外,然后就要做下面这一步了!编目!为什么要编目?因为要在本地访问远程数据库!所以需要在下面黑框框写下面的语句哦!有问题欢迎评论!
_
_

1、编目

db2 catalog tcpip node 节点名 remote  ip地址 server 端口;
db2 catalog db 数据库名字 as 取得别名 at  node 节点名;
db2 terminate;

其中:tcpid是网络请求方式,编码数据库,名字不能超过8位
      remote是ip,server是端口

取消命令:
db2 uncatalog node 节点名   (取消节点的编目)
db2 uncatalog db 取得别名 /  数据库名字 (取消数据库的编目)
备注:其中节点名和别名是自己随便写的哦!不过两个节点名是一样的!

当然编目完就需要连数据库了!!大家对于编目有问题可以评论留言哦!

2、连接数据库

db2 connect to 取得别名 /  数据库名字 user 用户名 using 密码

3、查询编目信息和数据库信息

db2 list db directory
#########:查询连接了多少个数据库
db2 list node directory
#########:连接点,表示创建多少个节点连接几个库。

**(下面这个估计用到的最多,至少我是哈哈,首先大家要记住导入导出数据格式Del格式文件,这个是DB2的一种存放数据的格式,还有IXF格式,这两个格式存放的规则不一样)
4、导入导出数据export/import/load**

首先给大家看下,导出的目录结构!这个是ixf格式导出的!一般我用的都是DEL导出,方便简单!后面我会以这两种方式为例讲一下导出导入
_

Export:

db2 “export to 目录/表名.del of del select * from 表”;
db2 "export to 目录\tab1.ixf of ixf lobs to 目录\ lobfile lobs modified by lobsinsepfiles  messages 目录\tab1.msg select * from schema_name.table_name";

说明:schema_name 是表所属
         table_name是表名
         lobsinsepfiles,lobsinfile 是生成lob文件 前一个是生成每个,后面是生成到一个文件中
         messages:是导出的日志。

IXF文件——是集成交换格式
DEL文件——定界ASCII文件,也是一个ASCII字符流。
IXF是这个样子的。DEL就是以,号分隔得的,记事本打开直接看也很清晰!所以一般导出这个格式。

_

Import:

db2 “import from目录/表名.del of del select * from 表”;
db2 “import from 目录/表名.ixf of ixf messages msg2.txt insert into 表”

Load
说起Load大家只需要记得Load不要生成日志所以很快!Import需要生成就够了!用法和Import与Export基本一样,换个名字而已。

db2 “load client from FILENAME of del modified by codepage=1386 coldel; chardel’ dumpfile=PATH/FILENAME messages PATH/FILENAME insert into TABLEBAME for exception TABLENAME ALLOW READ ACCESS”

常用的语法:
db2 “load from 目录/表名.del of del insert into 表”
Load报错解决方法:
db2 “load from dev/null of del termiate into 表”
下面是参数介绍大家可以看看!

_
_

5、db2look(导出表结构)/db2move(批量处理导入导出)
参数:

-u -用户名
-p -密码
-tn -表名,导出单一表
-tf - 文件名,文件中每行记录一个完整的表名
-ts -表空间名称,用于导出某个表空间下的所有数据
-tc -表创建者,导出某用户创建的所有数据
-sn -模式名,用于导出某个模式下的所有数据
db2move 数据库名字export –u 用户名 –p 密码

例如:

db2move yun_pas export -sn ytfinst -u pasinst -p pasinst
说明: 
1,这将会把数据库testdb中的全部数据提取到当前目录中。
每个表的内容都存储在一个.ixf文件中,每个.ixf文件都有一个与之相对应的.msg文件,.msg文件是描述从表中导出数据时的信息的。另外还有两个文件,db2move.lst用来记录.ixf文件、.msg文件与表的一一对应关系,EXPORT.out记录的是导出数据时的屏幕输出。下面的图就是一个完整的批量导出某个模式下的数据的目录。

_

大量例子来袭

1)、全库数据导出,导出语句如下
db2move db export -u db2admin -p db2admin


2)、导出某个表空间的所有数据
db2move db export -ts tb1 -u db2admin -p db2admin
若要导出多个表空间数据,方法如下:
db2move db export -ts tb1,tb2 -u db2admin -p db2admin
注:上行语句中的“tb1,tb2”用逗号分隔,且不能有空格


3)、导出单一表
db2move db export -tn tbname -u db2admin -p db2admin


4)、导出某个模式下的所有数据
db2move db export -sn schemaname -u db2admin -p db2admin


5)、根据配置文件导出数据
配置文件中记录需要导出的所有表名,必须注意,每行只能写一个完整表名,且要加上所属的模式名,并以加上双引号
在此,在db2cmd所在的目录下,创建一个文件,如table.txt,文件中如下编写:
"db2admin"."table1"
"db2admin"."table2"
"db2admin"."table3"
导出语句为:
db2move db export -tf table.txt -u db2admin -p db2admin
这样就可以根据 table.txt 文件中配置的表,导出相应数据。


6)、导出某个用户下的所有数据
db2move db export -tc db2admin -u db2admin -p db2admin

7)、通过import,replace数据
db2move db import -io replace -u db2admin -p db2admin

db2look:
1、语法(我们其实可以在db2cmd打db2look也是可以出来的!我这里贴图)

_
_
大量例子来袭哈哈:

其中 数据库名:sample 用户:db2admin模式名:db2admin
1、db2look -d sample -u db2admin -e -o db2look.sql 

-- 这将生成由用户db2admin 创建的所有表和联合对象的 DDL 语句
-- db2look 输出被发送到名为 db2look.sql 的文件中 

3.、db2look -d sample -z db2admin -e -o db2look.sql 

-- 这将为模式名为db2admin 的所有表生成 DDL 语句
-- 还将生成 $USER 创建的所有联合对象的 DDL。
-- db2look 输出被发送到名为 db2look.sql 的文件中 

3.、db2look -d sample -u db2admin -m -o db2look.sql 

-- 这将生成 UPDATE 语句以捕获关于用户db2admin创建的表/昵称的统计信息
-- db2look 输出被发送到名为 db2look.sql 的文件中 

4.、db2look -d sample -u db2admin -e -wrapper W1 -o db2look.sql

-- 这将生成由用户db2admin创建的所有表的 DDL 语句
-- 还将生成适用于包装器 W1 的用户db2admin所创建所有联合对象的 DDL
-- db2look 输出被发送到名为 db2look.sql 的文件中 

5、db2look -d sample -u db2admin -e -server S1 -o db2look.sql 

-- 这将生成由用户db2admin创建的所有表的 DDL 语句
-- 还将生成适用于服务器 S1 的用户db2admin所创建所有联合对象的 DDL
-- db2look 输出被发送到名为 db2look.sql 的文件中

6、执行sql脚本

db2 -tvf 目录\xxx.sql -z 目录\xxx.log

7、编译执行存储过程(大家对这个不太理解我们后面在说!)

编译:db2 -td@ -f 存过文件位置
执行:db2 “call 存过名字(参数)”
相关文章
|
1月前
|
存储 Oracle 关系型数据库
【数据库-DB2】深入了解DB2 reorg
本文介绍了DB2数据库中reorg操作的重要性,旨在通过重组表数据来消除数据碎片、压缩信息并提高数据访问速度。reorg操作能够根据索引关键字重新排序数据,减少查询I/O次数,提升查询性能。文章详细讲解了reorg的操作步骤、适用场景及注意事项,强调了在执行reorg前后更新统计信息的必要性。
34 2
|
SQL Oracle 关系型数据库
MySQL下的DB Link
在实际工作中,我们可能会遇到需要操作其他数据库实例的部分表,但又不想系统连接多库。此时我们就需要用到数据表映射。如同Oracle中的DBlink一般,使用过Oracle DBlink数据库链接的人都知道可以跨实例来进行数据查询,同样的,Mysql自带的FEDERATED引擎完美的帮我们解决了该问题。本篇文章介绍FEDERATED引擎的开启和使用。
278 0
|
关系型数据库 数据库连接 数据库
DB2常用命令
DB2常用命令1.打开命令行窗口   #db2cmd 2.打开控制中心   # db2cmd db2cc 3.打开命令编辑器  db2cmd db2ce 操作数据库命令*4.启动数据库实例   #db2start 5.
2111 0
|
NoSQL MongoDB SQL
mongo db
MongoDB 数据类型 ObjectId ObjectId 类似唯一主键,可以很快的去生成和排序,包含 12 bytes,含义是: 前 4 个字节表示创建 unix 时间戳,格林尼治时间 UTC 时间,比北京时间晚了 8 个小时 接下来的 3 个字节是机器标识码 紧接的两个字节由进程 id 组成 PID 最后三个字节是随机数 MongoDB 中存储的文档必须有一个 _id 键。
887 0
|
关系型数据库 数据库 Windows
|
存储 关系型数据库 MySQL