db2数据库

db2数据库
db2数据库

db2 backup db DBNAME online compress include logs

脱机备份

db2 force applications all

Db2 backup db DBNAMEE compress

查看表空间

db2 list tablespace show detail //显示很多信息。

High water mark 曾经达到过的占用率

80%左右,要扩表空间或者清理数据

查看表状态

db2 load query table TABNAME

查看归档日志目录

db2 get db cfg for DBNAME|grep LOGARCHMETH1

数据库重整

Runstats ,reorgchk,计算是否需要重整

db2 diag。log文件,看中间是否有异常

Cd

演示

1,增加表空间(文件系统,裸设备)

2,查看表空间

3,循环日志变归档日志

4,脱机备份数据库

5,联机备份数据库

6,归档日志

7,load 数据

8,扩表空间

很多操作都要先关闭数据库,然后再开启,连接后再操作

3:

Db2 updte db cfg for sample using

Db2stop 停数据库

Db2start 启数据库

Db2 connect to sample 连接到数据库sample

Db2 “import from test.del of del insert into DBNAME”从本地的DEL文件中导入数据中Db2 prune logfile prior to dddddd.log 日志

1:

Db2 “alter Tablespace dms_dat4k extend //扩展表空间

Db2 termiate //写到当前目录。

空闲时备份

Db2 backup db

Db2 list utilities show detail 查看备份信息

Db2 “export to staff.del of del select * from test ”//导出或者备份

CDL DB2 Advocacy计划,DB2实验室与客户之间的直接交流解决客户问题。

不是售前服务人员,不是紧急事的负责人,不是技术支持。

EveryPlace移动终端

Personal Edition 个人版,单用户

Enterprise Edition企业版

查询:查询语言,索引,视图等, 也与存储方式有关

DB2数据类型分为:内置类型和自定义类型

数据查询常用的sql语句, 多表查询join

基础查询,统计分析等

内置类型: 数值型, 文件型, 日期时间型(DA TE, TIME,TIMESTAMP时间戳型), XML型(V9中引入的数据类型, 把XML作为内容存储到表中, XQUERY专门针对XML查询使用的)

数据的存储:

逻辑存储:表,表存储在特定的表空间中,与具有相同页面大小的缓冲池相联系

物理存储: 物理磁盘上.

Insert ,工具export import load

数据的安全性和性能:

完整性,约束

可靠性:多用户,隔离,临时性访问

安全性:加锁

一台物理机上可以安装多个DB2实例,它是数据库的运行环境,为数据库提供进程\内存等资源;.每个实例都有自己的的相应配置信息. 一个DB2实例中可以有多个数据库,每个数据库都有自己的配置, 一个数据中多相应的配置和多张数据表,还有约束,索引,视图等数据对象。

创建实例: 启动实例:

Db2icrt 实例名db2start

删除实例:

关闭实例:

Db2stop

查看实例的参数信息

Get dbm cfg

修改实例的参数信息

Update

创建DB

Create database DBNAME [automatic storage自动存储][ on 存储路径][dapath on数据库路径][using codeset字符集][territory区域码]

数据库的删除:

Drop DBNAME

查看数据库配置信息:

Get db cfg for 数据库名

修改数据库配置信息:

Update db cfg for 数据库名using 参数名更新后的值

缓冲池是内存中一块区域,用于临时存储

Create bufferpool

Alter bufferpool

Drop bufferpool

查看缓冲池状态

Db2mtrk –d –p -v

表空间(TABLESPACE),是DB2数据库中存储数据的逻辑块.

常规表空间regular

大对象表空间large

系统临时表空间:复杂查询表,大量数据内存不够用时. system

用户临时表空间: usring

Create Talespace

Alter talespace //修改表空间

Drop talespace

查看表空间

List tablespace [show detail]

List tablespace containers for 表空间ID号

模式(Schema)是一个逻辑分组,每个数据库内部的对象在创建时,都可以显示或者隐式指定模式,以用户分类.

表:是最重要的数据对象

普通表的创建:

DGTT用户临时表,与普通用户表不同,用临时表并不是一直存储在硬盘上,而是在一个应用程序结束之后,与之相关的用户临时表会自动从系统中删除.

Declare global temporary table …//创建全局临时表.

视表(view)是一个逻辑,并不存储数据,数据是存在表中的, 它只是为了方更查询,优化角度出发

创建视图:

索引(index) 主要是用于提高数据库查询的效率,唯一索引还能保证列的唯一性.有普通索引,唯一索引和聚簇索引三种,对XML字段可以单独定义索引.

普通索引, 提高查询效率

唯一索引,提高查询效率,保证唯一性,会报错

聚簇索引,又叫集群索引,对经常访问的数据按照指定的顺序进行排列,提高效率

Create index …

Drop index …

约束:

关系数据库有常见约束:非空,唯一,主键,外键, 检查

补充约束: 缺省值,标识列

序列(sequence)与标识列相类型。

创建序列,循环增长

Creat sequence myseq

Start with 1

Increment by 1

No cycle

Cache 30

存储过程:是数据库中的一种程序,它可以拥有输入输出参数,可以访问和修改一个或多个数据表中的数据。有自定的整套规则,以一定的逻辑包装多条SQL语句,存储在DB2的系统空间中;在调用是执行编译好的存储过程来访问数据库,进行查询操作。

Create procedure 过程名

(参数列表)

Language sql

Begin

过程体

End

Drop procedure 过程名

触发器(trigger)是根据数据库的变化而自动执行的程序,定义在一张表上,如果该表数据发生变化时满足条件就执行触发器。

Create trigger RateStatus

NO CASCADE BEFORE

Update of rate on currentrate

Referencing old as oldrate

New as newrate

For each row

Mode DB2SQL

语句体

End

删除触发器:drop trigger 触发器名称

用户自定义函数:与存储过程很相似,都可以接收输入参数,然后再返回。

DB2数据的安全性

身份认证:如果没有用户名和密码则用操作的用户名和密码

验证类型:server(明文)server_encrypt(加密),kerberos(第三方的加密模块),krb_server_encrypt(以第三方的加密模块进行加密), client(所有的客户端视为安全的连接。全部大写),可以通修改数据配置参数来变更。

授权:权限级别,授根和撤消。针对用户或者用户组。

授特权:插入

GRANT INSERT ON TABLE account TO USER jeff

WITH GRANT OPTION:级联授权

GRANT ALTERIN ,CREATIN

撤消特权:

REVOKE …

并发性:

事务(Transaction)就是一系列操作的集合,作为一个整体。这些操作要么全成功,要么全失败,也称为一个工作单元(Unit of Work Uow)。原子性,一致性,独立性,持久性。

多用户访问的挑战:

并发执行的应用程序四种问题:更新丢失,脏读,不可重复的读,幻像。

隔离级别:

DBMS中,一般不需要用直接设置锁,DB2通过隔离级来控制并发性,选择了合适的隔离级别。会隐式地进行各种加锁。

可重复读:RR

读稳定性:RS

游标稳定性:CS

当前已提交:CC

未提交读UR

隔离级别是通过锁(Lock)实现的。实际上是加在数据库,表空间,表,行或者数据页上的一种标记,用户对各种数据库对象进行读取或者写入操作时首先要看该对象上的锁是否允许

其进行相应操作。基本分为:共享锁(S锁)和排它锁(X锁),锁的升级和死锁。系统有专门的处理方式来解决死锁。

DB2的备份和恢复:

日志:跟踪对数据库对象和数据进行的操作进行记录。它们被用于恢复:如果发生崩溃,日志用于回放/重做已落实的事务,并撤消未落实的事务。日志可以存储在文件中或者裸设备中。对于DB2中的常规表,日志总处于ON状态。

循环日志模式:只能进行脱机全量备份,不能进行表空间备份,联机备份,增量备份等。可以使用崩溃恢和版本恢复,不能使用前滚恢复。

归档日志模式:可以进行各种备份和恢复,可以使用logarchmeth1配置参数来启用归档日志模式。在某个时间会对之前的日志进行归档,然后生成新的活动日志文件。一般使用归档日志。

备份:

根据备分时是否允许用户访问:脱机备份,联机备份

根据备份对象不同:数据库备份,表空间备份

根据对数据库的备份范围:全量备份,增量备份(累积备份,差异备份)累积备份,第一次备份全量,每次都备份增加积累的。差异备份,第一次全量,每次都备份每一次新增的。

崩溃恢复:DB2故障重启时,使用事务日志执行自动的恢复操作。

版本恢复:使用备份操作期间创建的映象来复原数据库的先前版本。

前滚恢复:使用完整的数据库备份和日志相结合,可能使一个数据库或表恢复之前某一时间段。

Csliu@https://www.360docs.net/doc/8115889627.html,刘长生

所有的培训资料都放在一个163邮箱上的:zjrcutraining@https://www.360docs.net/doc/8115889627.html, zjrcu123

二、使用创建数据库gspsdb:

4、用命令创建用户和添加密码:useradd gspirr

p asswd gspirr

5、在root下创建实例gspirr:(当然在安装时候也可以创建实例)

[root@localhost6:/opt/ibm/db2/instance]# ./db2icrt -p 61002 -u gspirr gspirr 其中/opt/ibm/db2/instance是db2的安装路径,

-p 用来指定服务名称(也可以不指定,由系统自行设定,在/etc/services中可以查看)-u 表示将用来运行受防护用户定义的函数(UDF)和受防护存储过程的用户的名称(可以随意设定)。指定您创建的受防护用户的名称。

6、启动/停止实例gspirr:

Su gspirr

Db2start

Db2stop

7、查看/设置gspirr配置:

Db2set -all

显示:

[i] DB2COUNTRY=86

[i] DB2COMM=TCPIP

[i] DB2CODEPAGE=1386

[g] DB2SYSTEM=localhost6.localdomain6

[g] DB2INSTDEF=db2inst1

[g] DB2ADMINSERVER=dasusr1

可以用命令db2set 设置配置:

db2set db2country=86

db2set db2codepage=1386

db2set DB2COMM=TCPIP

db2set DB2AUTOSTART=YES (设置db2自动随linux启动)

备注:设置服务端口

输入db2命令,进入db2命令行模式

update database manager configuration using svcename server1|50000

server1|50000两者选其一,server1|为服务名,50000为端口号

get database manager configuration;

为了打开DB2 Control Center,记得要以root 用户发出xhost +,如xhostlocal:db2,以添加对X Server 的访问权限。然后,以实例所有者身份重新登录,并启动DB2 Control Center;

用户可以使用以下几种方法来运行命令编辑器:在操作系统CLP中输入db2ce 命令。

使用LIST DATABASE DIRECTORY命令查看系统数据库目录的内容

8、在gspirr里创建数据库gspsdb:

Db2start

Db2 "CREATE DATABASE gspsdb ON '/GSPMM/db2data' USING CODESET GBK TERRITORY CN" 9|、创建缓冲池:

Db2 connect to gspsdb

Db2 "CREATE BUFFERPOOL bf_main_data IMMEDIATE SIZE 1024 PAGESIZE 32k"

Db2 "CREATE BUFFERPOOL bf_large_data IMMEDIATE SIZE 1024 PAGESIZE 32K "

Db2 "CREATE BUFFERPOOL bf_index_data IMMEDIATE SIZE 1024 PAGESIZE 32K" 10、创建表空间:

Db2 "CREATE REGULAR TABLESPACE ts_main_data PAGESIZE 32K MANAGED BY DATABASE USING ( FILE '$HOME/GSPMM/db2ts_rr/maindata' 512M ) EXTENTSIZE 32 OVERHEAD 10.5 PREFETCHSIZE 32 TRANSFERRATE 0.14 BUFFERPOOL bf_main_data"

Db2 "CREATE REGULAR TABLESPACE ts_large_data PAGESIZE 32K MANAGED BY DATABASE USING ( FILE '$HOME/GSPMM/db2ts_rr/largedata' 512M ) EXTENTSIZE 32 OVERHEAD 10.5 PREFETCHSIZE 32 TRANSFERRATE 0.14 BUFFERPOOL bf_large_data"

Db2 "CREATE REGULAR TABLESPACE ts_index_data PAGESIZE 32K MANAGED BY DATABASE USING ( FILE '$HOME/GSPMM/db2ts_rr/indexdata' 256M ) EXTENTSIZE 32 OVERHEAD 10.5 PREFETCHSIZE 32 TRANSFERRATE 0.14 BUFFERPOOL

bf_index_data"

11、批量建表并导入数据:

Su gspirr

Db2 connect to gspsdb

Sh crttbl.sh

Sh insert.sh

其中crttbl.sh内容如下:

db2 connect to gspsdb

for i in `ls *sql`

do

echo "====[$i]===="

db2 -tf $i

done

db2 disconnect current

其中insert.sh内容如下:

db2 connect to gspsdb

for i in `ls *sql`

do

echo "====[$i]===="

db2 -tf $i

done

db2 disconnect current

三、配置客户端连接gspsdb:

12、gspsdb端配置:

db2 list db directory //查看已经建好的所有的数据库

db2 list db directory show detail

1)验证实例使用的通讯协议,查看DB2COMM变量(tcp/ip)

db2set -all

2)查看数据库管理器的配置,查看SVCENAME(特指tcpip协议)db2 get dbm cfg |grep - i SVCENAME

显示:

TCP/IP Service name (SVCENAME) = 61002

SSL service name (SSL_SVCENAME) =

3)查看/etc/services中,有无与上面对应SVCENAME的端口,例如:

db2cDB2 50000/tcp

运行Vi services ,添加:db2_gspirr 61002/tcp

4)要确认服务器是否在监听,可以用netstat -an 来查看端口是否处于LISTEN状态[gspirr@ ~]$ netstat -na | grep 61002

tcp 0 0 0.0.0.0:61002 0.0.0.0:* LISTEN

13、检查客户端的配置如下:

1)启动客户端db2命令控制台

Db2cmd

db2 list node directory

db2 list node directory show detail //查看是否有节点

ping hostname来验证通讯

使用telnet hostname port来验证是否能连到实例

2)若没有节点,配置如下:

Db2

db2 => catalog tcpip node db2node2 remote 192.168.0.120 /

server 61002 remote_instance gspirr /

ostype linux

catalog tcpip node esb02 remote 10.20.2.247 server 60004 remote_instance esb02 ostype linux db2 => catalog database gspsdb as mydb2 at node db2node2

authentication server /

catalog database gspdb as esb2db at node esb2node

authentication server

catalog tcpip node esb1node remote 192.168.0.109 server 61006 remote_instance esb1 ostype linux

catalog database gspdb as esb1db at node esb1node

authentication server

Gspsdb/gspmdb/db

3) 测试到gspsdb的连接

db2=>connect to mydb2 user gspirr

显示:输入gspirr的当前密码:

成功连接,会显示

4)db2 "select * from TBL_FUNCTION_INFO",显示表内容。

亦可以使用db2控制中心,直接添加数据库gspsdb,打开数据库中的内容了。

安装了DB2,并成功创建实例之后,便可以以实例所有者的身份(在这个例子中是db2inst1)登录,然后调用db2profile 脚本来设置环境变量。可以使用db2sampl 脚本创建样例数据库。

四、卸载数据库:

su root

cd db2数据库的安装目录:/opt/ibm/db2/instance,如:

[root@localhost6:/opt/ibm/db2/instance]# ./db2idrop -f gspmdb

住:db2level 可以查看数据库版本的相关信息;

/opt/ibm/db2/instance里有数据库操作的所有命令;

UNCATALOG DB <数据库别名>,如:db2 => uncatalog db gspsdb

如何查看linux ip:

netstat -i -n

or: /sbin/ifconfig

不同数据库之间映射表:

1、在gspirr上建立esb上的gspdbnode

db2 catalog tcpip node dbnode REMOTE 192.168.0.120 SERVER 61003

db2 catalog database gspdb at node dbnode authentication server

db2 connect to gspmdb user gspirr using gspirr

db2 create wrapper drda

create server MYSERVER type db2/linux version 9.7.0 wrapper DRDA authorization "gspirr" password "gspirr" options(dbname 'gspdb')

create user mapping for "gspirr" SERVER "MYSERVER" options(REMOTE_AUTHID 'esb', REMOTE_PASSWORD 'esb')

db2 create nickname TBL_TRANSACTION_TRACE_1 for

MYSERVER.esb.TBL_TRANSACTION_TRACE_1

db2 create nickname TBL_TRANSACTION_TRACE_2 for

MYSERVER.esb.TBL_TRANSACTION_TRACE_2

/////////11111

db2 "create wrapper drda" && db2 "create server esbsvr type db2/aix64 version 9.1.0 wrapper drda authorization /"esb02/" password /"esb02/" options (dbname 'esbdb')"姜海胜13:51:21

db2 create user mapping for esb01 SERVER "MYSERVER" options(REMOTE_AUTHID 'esb02', REMOTE_PASSWORD 'esb02')

db2 catalog tcpip node dbnode REMOTE 10.20.2.247 SERVER 60004

db2 catalog database esbdb at node dbnode authentication server

db2 create wrapper drda

create server MYSERVER type db2/aix64 version 9.1.0 wrapper DRDA authorization "esb01" password "esb01" options(dbname 'esbdb')

create user mapping for "esb01" SERVER "esbdb" options(REMOTE_AUTHID 'esb02', REMOTE_PASSWORD 'esb02')

db2 create nickname TBL_TRANSACTION_TRACE_1 for

esbdb.esb02.TBL_TRANSACTION_TRACE_1

db2 create nickname TBL_TRANSACTION_TRACE_2 for

esbdb.esb02.TBL_TRANSACTION_TRACE_2

db2 create nickname TBL_EXCEPTION_TRACE_1 for esbdb.esb02.TBL_EXCEPTION_TRACE_1

db2 create nickname TBL_EXCEPTION_TRACE_2 for esbdb.esb02.TBL_EXCEPTION_TRACE_2 !!!!!

//////////////////////////////////////////////////

姜海胜 12:45:00

db2 "create wrapper drda" && db2 "create server esbsvr type db2/Linux version 9.7 wrapper drda authorization /"esb2/" password /"esb2/" options (dbname 'gspdb')"姜海胜 13:51:21

??create user mapping for gspirr SERVER "MYSERVER" options(REMOTE_AUTHID 'esb', REMOTE_PASSWORD 'esb')

姜海胜 12:45:17

///////////////////////////////////////////////////////////(原始数据)

陈亮13:22:33

#DATA-SYNC USER:gspimm

#CATALOG NODE

db2 catalog tcpip node gspdbsvr REMOTE 182.119.171.115 SERVER 51001

#CATALOG DB

db2 catalog database gspdb at node gspdbsvr authentication SERVER

#CONNECT TO gspmdb

db2 connect to gspmdb user gspmm using gspmm

#CREATE NICKNAME

db2 create wrapper drda

db2 =>create server MYSERVER type db2/AIX version 8.1 wrapper DRDA authorization "gspadmin" password "gspadmin" options

(dbname 'gspdb')

db2 =>create user mapping for "gspmm" SERVER "MYSERVER" options(REMOTE_AUTHID 'gspadmin', REMOTE_PASSWORD 'gspadmin')

db2 create nickname gsp_exception_trace_1 for

MYSERVER.gspadmin.gsp_exception_trace_1

db2 create nickname gsp_exception_trace_2 for

MYSERVER.gspadmin.gsp_exception_trace_2

db2 create nickname gsp_transaction_trace_1 for

MYSERVER.gspadmin.gsp_transaction_trace_1

db2 create nickname gsp_transaction_trace_2 for

MYSERVER.gspadmin.gsp_transaction_trace_2

db2licm -l

1.数据库的启动、停止

db2start--启动

db2stop [force]--停止

2.与数据库的连接、断开

db2 CONNECT TO DBName [user UserID using PWD]--建立连接

db2 CONNECT reset /db2 disconnect CURRENT --断开连接

3.实例的创建、删除

db2icrt < 实例名称>--创建db2 实例

db2idrop < 实例名称>--删除db2 实例

SET db2intance=db2--设置当前db2 实例

db2ilist--显示db2 拥有的实例

4.节点、数据库的编目

db2 list node directory --查看本地节点目录

db2 catalog tcpip node remote server ostype

--编目一个TCP/IP节点

db2 uncatalog node --取消节点编目

db2 catalog DATABASE AS AT node --编目数据库

db2 uncatalog DATABASE --取消数据库编目

5.表空间的创建、删除

db2 CREATE BUFFERPOOL STMABMP IMMEDIATE SIZE 25000 PAGESIZE 8K--创建缓冲池STMABMP

db2 DROP tablespace STMABMP--删除表空间

db2 CREATE REGULAR TABLESPACE STMA PAGESIZE 8 K MANAGED BY SYSTEM | DATABASE

USING ('D:/DB2Container/Stma' ) EXTENTSIZE 8 OVERHEAD 10.5 PREFETCHSIZE 8 TRANSFERRATE 0.14 BUFFERPOOL STMABMP DROPPED TABLE RECOVERY OFF

--在D:/DB2Container/Stma下创建系统/数据库管理表空间STMA

db2 BACKUP DATABASE 数据库别名TABLESPACE 表空间名[ONLINE} TO 介质名--表空间的备份

db2 list tablespaces show detail --列出所以表空间信息

db2 list tablespace containers for SpaceID--列出对应表空间的容器详情

--修改表空间

ALTER TABLESPACE 表空间名RESIZE(FILE '已满的容器名' 更改后容器的大小)

ALTER TABLESPACE 表空间名EXTEND(FILE '已满的容器名' 准备增加的大小)--可以是实际大小或者页数

eg:db2 "alter tablespace HTDC_INDEX EXTEND(file

'/home/db2admin/dbback/db2containner/htdc/index/htdc_index' 1024M)" --(unix系统)将DMS HTDC_INDEX 在扩大1G

6.数据库的创建、删除

db2 CREATE db DBName [using codeset GBK territory CN]--创建数据库

db2 DROP db DBName--删除数据库

db2 list db directory--列出所有数据库目录(包括远程编目的数据库)

db2 list db directory ON location--如Windows下的C: ,Unix下的

/home/db2inst1(本地数据库)

db2 list active databases--列出活动的数据库和连接数

TBL_TRANSACTION_TRACE_1

TBL_TRANSACTION_TRACE_2

GSP_EXCEPTION_TRACE_1

GSP_EXCEPTION_TRACE_2

7.表的创建、删除

DROP TABLE TableName ;--删除表

CREATE TABLE TableName

( 字段名数据类型,

PRIMARY KEY (字段名)

)IN Space1 INDEX IN Space2 ;--创建表(表空间Space1存放数据,Space2存放索引)

ALTER TABLE TableName VOLATILE CARDINALITY;--将表TableName设置为易失表

db2 list tables ;

db2 list tables FOR USER /ALL /system / SCHEMA SchemaName [show detail] ;

--列出数据库中的表如果没有指定任何参数,则缺省情况是列出当前用户的表

db2 describe TABLE TableName ;

db2 describe SELECT * FROM tables ;--查看表结构

8.索引的创建、删除

DROP INDEX Index_Name ;--删除索引

CREATE INDEX Index_Name ON TableName(F1) ;--对表TableName的F1字段创建索引Index_Name

db2 describe indexes FOR TABLE TableName ;--查看表TableName的索引

db2 describe indexes FOR TABLE TableName show detail;

db2 SELECT INDNAME,COLNAMES FROM syscat.indexes WHERE tabname = 'TableName';

9.视图的创建、删除

DROP VIEW ViewName ; --删除视图

CREATE VIEW ViewName(×,××) AS SELECT ×,××FROM TableName WHERE ×××;--创建视图

10.数据库的备份、恢复(详见浅谈IBM DB2的数据库备份与恢复一文)

--离线备份

db2 force applications all--断开所有连接

db2 force application(h1,h2……)--杀死与欲备份数据库相连接的进程

db2 backup db DBName [to d:/db2_backup] [use TSM]--离线备份

--在线、增量备份

--前提:更改数据库参数logretain, userexit, trackmod 为on,之后数据库处于backup pending状态,要完全离线备份数据库一次,之后就可以进行在线、在线增量备份了。

db2 update db cfg using logretain on userexit on trackmod on--启用相关参数

--归档路径

DB2 UPDATE DATABASE CONFIGURATION USING LOGARCHMETH1 DISK:D:/DB2/ IMMEDIATE

--LOGARCHMETH1参数改成TSM

DB2 UPDATE DATABASE CONFIGURATION USING LOGARCHMETH1 TSM IMMEDIATE

db2 backup db DBName [to d:/db2_backup] [use TSM]--离线备份

db2 backup db DBName online [to d:/db2_backup] [use TSM]--在线线备份

db2 backup db DBName online incremental [to d:/db2_backup] [use TSM]--在线增量备份

--数据库恢复

db2 restore db DBname [incremental] [FROM d:/db2_backup][use TSM] taken AT YYYYMMDDHHMMSS

--恢复(时间戳记:YYYYMMDDHHMMSS)

db2 list history backup [since YYYYMMDDHHMMSS] ALL FOR DBName

--查看[从YYYYMMDDHHMMSS] 对DBName的备份情况

db2 ROLLFORWARD DATABASE DBName TO END OF LOGS AND COMPLETE NORETRIEVE--将暂挂的数据恢复到前滚状态

db2 ROLLFORWARD DATABASE DBName TO END OF LOGS AND COMPLETE OVERFLOW LOG PATH ("C:/DBName.0/SQLOGDIR")

db2 CONNECT TO DBName

db2 prune history YYYYMMDDHHMMSS--删除DBName YYYYMMDDHHMMSS之前的备份记录

11.数据的导出、导入

--导出

db2 EXPORT TO D:/TableName.txt OF del SELECT * FROM

SCHEMA.TableName--文本格式

db2 EXPORT TO D:/TableName.csv OF del SELECT * FROM

SCHEMA.TableName--csv可转为excel

db2 EXPORT TO D:/TableName.ixf OF ixf SELECT * FROM

SCHEMA.TableName

--导出数据(IXF 集成通用交换格式)

db2 EXPORT TO "D:/TableName.data" OF IXF MESSAGES

"D:/TableName.msg" SELECT * FROM SCHEMA.TableName;

--导入

db2 IMPORT FROM D:/TableName.txt OF del INSERT INTO

SCHEMA.TableName

db2 IMPORT FROM "D:/TableName.data" OF IXF [MESSAGES

"D:/TableName.msg"] [COMMITCOUNT 1000] INSERT/CREATE INTO SCHEMA.TableName;

db2 IMPORT FROM "D:/TableName.ixf" OF IXF [COMMITCOUNT 1000]

INSERT/INSERT_UPDATE/CREATE/REPLACE/REPLACE_CREATE INTO SCHEMA.TableName;

IMPORT FROM file_name OF file_type MESSAGES message_file

[ INSERT | INSERT_UPDATE | REPLACE | REPLACE_CREATE | CREATE ] INTO target_table_name

*INSERT 选项将导入的数据插入表中。目标表必须已经存在。

*INSERT_UPDATE 将数据插入表中,或者更新表中具有匹配主键的行。目标表必须已经存在,并且定义了一个主键。

*REPLACE 选项删除所有已有的数据,并将导入的数据插入到一个已有的目标表中。

*使用REPLACE_CREATE 选项时,如果目标表已经存在,则导入实用程序删除已有的数据,并插入新的数据,就像REPLACE 选项那样。如果目标表还没有定义,那么首先创建这个表以及它的相关索引,然后再导入数据。正如您可能想像的那样,输入文件必须是PC/IXF 格式的文件,因为那种格式包含对导出表的结构化描述。如果目标表是被一个外键引用的一个父表,那么就不能使用REPLACE_CREATE。

*CREATE 选项首先创建目标表和它的索引,然后将数据导入到新表中。该选项惟一支持的文件格式是PC/IXF。还可以指定新表所在表空间的名称(IN datatbsp INDEX IN indtbsp)。

12.存储过程的编译与运行

db2 -td@ -vf ProcedureName.sql/.db2--编译

db2 call ProcedureName--运行

13.批处理文件

db2 -tvf FileName.sql

14.快速清除、装入大表数据

ALTER TABLE TableName activate NOT logged initially WITH empty

TABLE ;--不记日志

DECLARE C1 CURSOR FOR SELECT × × × ×FROM TableName1;

LOAD FROM C1 OF CURSOR INSERT INTO TableName2(××××) nonrecoverable;--不记日志

DB2 LOAD QUERY TABLE SCHEMA.TableName;--查看目标表load状态(正在装入/正常)

15.优化表

select 'runstats on table DB2ADMIN.'||rtrim(name)||' and indexes all;'

from sysibm.systables

where creator = 'DB2ADMIN' and Type = 'T';--获取优化语句

db2 runstats on table DB2ADMIN.TableName and indexes all;--优化语句

16.应用连接

db2 list application(s)[ FOR db DBName ] [show detail]--返回关于当前连接的

应用程序的信息

db2 force application (h1 [,h2,..,hn])--根据句柄号与特定应用程序断开连接

db2 force application all --断开所有应用程序与数据库的连接

db2 terminate --结束命令行对话

17. 设置联合数据库为可用(默认联合数据库不可用)

db2 update dbm cfg using federated yes

18.创建临时表空间

db2 CREATE USER TEMPORARY TABLESPACE STMASPACE PAGESIZE 32 K MANAGED BY DATABASE USING (FILE

'D:/DB2_TAB/STMASPACE.F1' 10000) EXTENTSIZE 256

19.创建临时表

DECLARE GLOBAL TEMPORARY TABLE 语句来定义临时表。DB2的临时表是基于会话的,且在会话之间是隔离的。当会话结束时,临时表的数据被删除,临时表被隐式卸下。对临时表的定义不会在SYSCAT.TABLES中出现.

eg: DECLARE GLOBAL TEMPORARY TABLE SESSION.Temp_K_Cig (Cig varchar(20)) WITH REPLACE NOT LOGGED on commit preserve rows;

20.修改日志文件大小、数目

db2 UPDATE DB CFG FOR DBName USING LOGFILSIZ6000 ; --日志文件大小

db2 UPDATE DB CFG FOR DBName USING LOGPRIMARY5 ;--日志文件数目db2 UPDATE DB CFG FOR DBName USING LOGSECOND25 ;--辅助日志文

件数目

21.如何重新启动数据库?

db2 RESTART DB DBName ;--重新启动数据库

db2 ACTIVATE DB DBName ;--激活数据库

db2 DEACTIVATE DB DBName ;--停止数据库

22.查看错误代码

db2 ? SQL *** eg:DB2 ? SQL803

db2 ? db2-command -- 关于指定命令的帮助

db2 ? help--有关阅读帮助屏幕的指示信息

db2 ? OPTIONS -- 关于所有命令选项的帮助

23.如何关闭表的日志

ALTER TABLE TABLE_NAME ACTIVE NOT LOGGED INIALLY

24.测试SQL的执行性能

db2batch -d DB_NAME -f select.sql -r benchmark.txt -o p3 --select.sql是select 语句写在文件中

25.查看当前应用号的执行状态

db2 get snapshot for application agentid 299 |grep Row

26.如何修改缓冲池

db2 alter bufferpool ibmdefaultbp size 10240

27.如何知道DB2的数据类型

select * from sysibm.sysdatatypes

28.如何知道BUFFERPOOLS状况

select * from sysibm.sysbufferpools

29.查询出用户表

SELECT * FROM SYSIBM.SYSTABLES WHERE CREATOR='USER'

30.如何知道当前DB2的版本

select * from sysibm.sysversions

31.如何知道TABLESPACE的状况

select * from sysibm.SYSTABLESPACES

32."SQL1032N 未发出启动数据库管理器的命令。SQLSTATE=57019"的解决办法

(1).License到期,在命令行下用db2licm -l 查看是否到期;

(2).用来启动服务的用户名或密码错误,(如我们更改了登录系统的密码),解决办法(Windows系统):在控制面板->管理工具->服务中对相关DB2服务选项【属性】中修改【登录】的用户名或密码。

33.表空间、表大小计算

db2look命令详解

db2look 今天整理了一下db2look命令参数说明 db2look Command syntax | |>>-db2look-- -d--DBname--+-----+--+--------------+--------------> | '- -e-' '- -u--Creator-' | |>--+-------------+--+-------------------------------------+-----> | '- -z--schema-' '-+----------------+--+-------------+-' | | .-------. | '- -tw--Tname-' | | V | | | '- -t----Tname-+-' | |>--+----------------+--+-----+--+------------+--+-----+---------> | | .-------. | '- -h-' '- -o--Fname-' '- -a-' | | V | | | '- -v----Vname-+-' | |>--+-----------------------+--+-----+--+-----+--+------+--------> | '- -m--+-----+--+-----+-' '- -l-' '- -x-' '- -xd-' | '- -c-' '- -r-' | |>--+-----+--+-----------------+--+-----+--+-----+--+-----+------> | '- -f-' '- -td--delimiter-' '- -p-' '- -s-' '- -g-' | |>--+----------+--+----------------------------+-----------------> | '- -noview-' '- -i--userid-- -w--password-' | |>--+------------------+--+---------+---------------------------><

db2数据库使用

一、db2 基础 基本语法 注释:“--”(两个减号) 字符串连接:“||” 如set msg=’aaaa’||’bbbb’,则msg为’aaaabbbb’ 字符串的引用:'’(一定用单引号),如果需要输入单引号,输入两个单引号即可。 语句结束:“;” 语法来源:PASCLE 转义字符: 如果你想查询字符串中包含'%’或'_’ ,就得使用转义字符(Escape Characters)。比如,要想查询book_title中包含字符 串’99%’的纪录: SELECT * FROM books WHERE book_title like '%99!%%’escape '!’ 后面的escape '!’是定一个转义字符'!’, 指明紧跟着转义字符’!'后的%不再是统配符。 DB2命令参数选项 Db2 list command options 可以查看 -a 显示 SQLCA OFF -c 自动落实 ON -e 显示 SQLCODE/SQLSTATE OFF -f 读取输入文件 OFF -l 将命令记录到历史文件中 OFF -n 除去换行字符 OFF -o 显示输出 ON -p 显示交互式输入提示 ON -r 将输出保存到报告文件 OFF -s 在命令出错时停止执行 OFF -t 设置语句终止字符 OFF -v 回送当前命令 OFF -w 显示 FETCH/SELECT 警告信息 ON -x 不打印列标题 OFF -z 将所有输出保存到输出文件 OFF 这些选项的具体功能及其缺省设置为: .a 显示 SQLCA 的数据,缺省为 OFF。 .c 是否自动落实 SQL 命令,缺省为 ON。

DB2_数据库日志管理

1、load 方法装入数据: export to tempfile of del select * from tablename where not 清理条件; load from tempfile of del modified by delprioritychar replace into tablename nonrecoverable; 说明: 在不相关的数据表export数据时,可以采取并发的形式,以提高效率; tablename指待清理table的名称; modified by delprioritychar防止数据库记录中存在换行符,导致数据无法装入的情况; replace into对现数据库中的内容进行替换,即将现行的数据记录清理,替换为数据文件内容; nonrecoverable无日志方式装入; 2、查找当前的应用: db2 list application grep btpdbs; 3、删除当前正在使用的application: db2 "force application (id1,id2,id3)" id1,id2,id3 是list显示的应用号; 4、查看当前应用号的执行状态: db2 get snapshot for application agentid 299 grep row 5、查看数据库参数: db2 get db cfg for //当前数据库可以省略 6、修改数据库的log数据: db2 update db cfg using <参数名> <参数值> 7、db2stop force的用法: 在进行bind的时候出现如下错误: sql0082can error has occurred which has terminated processing. sql0092nno package was created because of previous errors. sql0091nbinding was ended with "3" errors and "0" warnings. 主要是表文件被加锁,不能继续使用; 在进行stop的时候报错:db2stop 8/03/2005 21:46:530 0 sql1025nthe database manager was not stopped because databases are still active.

DS连接DB2和Oracle

DB2: 1.在ds服务器安装oracle客户端 2.db2 catalog数据库 3.配置$DSHOME/dsenv文件,加入如下内容: DB2DIR=/opt/IBM/db2/V10——实际路径 DB2INSTANCE=db2inst1 ——实际的db2实例用户 INSTHOME=/home/db2inst1 ——实际路径 DB2PATH=/opt/IBM/db2/V10 ——-实际路径 PATH=$PATH:$INSTHOME/sqllib/bin:$INSTHOME/sqllib/adm:$INSTHOME/sqllib/mi sc:$INSTHOME/sqllib/db2tss/bin:$DSHOME/bin:$DB2PATH/bin LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$INSTHOME/sqllib/lib:$DB2PATH/lib64 THREADS_FLAG=native export DB2DIR DB2INSTANCE INSTHOME DB2PATH PATH LIBPATH THREADS_FLAG Oracle: 1.在ds服务器安装oracle客户端 2.编辑$ORACLE_HOME/network/admin/tnsnames.ora文件,加入数据库信息 3.配置oralce驱动程序: Oracle 11g需要配置驱动过程如下: 请使用root用户

切换到oracle目录下 $cd/home/db/oracle/app/product/11g_64/lib 为oracle驱动建立软连接: $cd ORACLE_HOME/lib $ln -s /IBM/InformationServer/Server/StagingArea/Installed/OracleConnector/Server/linux/li bccora11g.so licccora11g.so $ln –s /IBM/InformationServer/Server/StagingArea/Installed/OracleConnector/Server/linux/li bccora10g.so licccora10g.so 4.安装软连接库文件 export APT_ORCHHOME=/IBM/InformationServer/Server/PXEngine export DSHOME=/IBM/InformationServer/Server/DSEngine $cd /IBMInformationServer/Server/StagingArea/Installed/PxOracle/install/ $vi install.liborchoracle 找到 install_driver() { case $version in 9 ) VER='9i';; 10 ) VER='10g';; 0 ) return;; esac

DB2常用SQL语句集

DB2常用SQL语句集 1、查看表结构: describe table tablename describe select * from tablename 2、列出系统数据库目录的内容: list database directory 3、查看数据库配置文件的内容: get database configuration for DBNAME 4、启动数据库: restart database DBNAME 5、关闭表的日志 alter table TBLNAME active not logged inially 6、重命名表 rename TBLNAME1 to TBLNAME2 7、取当前时间 select current time stamp from sysibm.sysdummy1 8、创建别名 create alias ALIASNAME for PRONAME(table、view、alias、nickname) 9、查询前几条记录 select * from TBLNAME fetch first N rows 10、联接数据库 db2 connect to DB user db2 using PWD 11、绑定存储过程命令 db2 bind BND.bnd 12、整理优化表 db2 reorgchk on table TBLNAME db2 reorg table TBLNAME db2 runstats on table TBNAME with distribution and indexes all 13、导出表 db2 export to TBL.txt of del select * from TBLNAME db2 export to TBL.ixf of ixf select * from TBLNAME 以指定分隔符‘|’下载数据: db2 "export to cmmcode.txt of del modified by coldel| select * from cmmcode”14、导入表 db2 import from TBL.txt of del insert into TBLNAME db2 import from TBL.txt of del commitcount 5000 insert into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 insert into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 insert_update into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 replace into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 create into TBLNAME (仅IXF) db2 import from TBL.ixf of ixf commitcount 5000 replace_create into TBLNAME (仅 IXF) 以指定分隔符“|”加载:

在db2上建立数据库分区的步骤和命令

本文简单介绍了在DB2上建立数据库分区的步骤和涉及到的命令等,供大家参考! AD:创建database partition 1、创建需要建立数据库分区的db instance 可使用命令建立db instance: db2icrt -s ESE -u db2admin,aaa123456 -h ANWENHAO DBINSTANCENAME 创建完成对应的instance 后需要重启DB2。 2、将新建的db instance加入到DB2中: CATALOG LOCAL NODE DB2INST1 INSTANCE DB2INST1 SYSTEM ANWENHAO OSTYPE NT; 3、在命令行中设置当前需要操作的dbInstance。 set db2instance=db2inst1 db2 get instance

db2 attach to db2inst1 4、创建DBPartition db2start dbpartitionnum 1 ADD DBPARTITIONNUM HOSTNAME ANWENHAO PORT 1 COMPUTER ANWENHAO USER db2admin PASSWORD aaa123456 WITHOUT TABLESPACES 5、创建完成后需要重新启动db2。DB2在此时会增加一个database partition并进行redistribution。 以上操作即完成database partition。 创建database partition group CREATE DATABASE PARTITION GROUP "NODE1" ON DBPARTITIONNUMS (1); COMMENT ON DATABASE PARTITION GROUP "NODE1" IS 'ANWENHAO _1';

Linux使用命令行安装DB2【详解】

DB2 ESE V9.7文本方式安装主要流程: (1)解压安装包,检查安装先决条件 (2)执行安装程序 (3)注册license(Express-C版无需注册) (4)创建3个用户组和3个用户,分别是实例用户、受限用户、管理用户 (5)创建一个管理服务器 (6)创建一个实例 (7)配置DB2访问协议 (8)配置DB2实例默认端口号 一、安装前准备工作 1、将下载的安装文件上传到待安装的LINUX 机器,解压缩v9.7_linuxx64_server.tar.gz 文件到某个目录 [root@redflag11012601 app]# ll v*gz -rw-r--r-- 1 root root 810576392 05-03 19:44 v9.7_linuxx64_server.tar.gz [root@redflag11012601 app]# tar xzf v9.7_linuxx64_server.tar.gz 2、解压产生两个目录server和db2 [root@redflag11012601 app]# cd server [root@redflag11012601 server]# ll

总计 64 drwxr-xr-x 6 bin bin 4096 2009-11-16 db2 -r-xr-xr-x 1 bin bin 5340 2009-11-16 db2ckupgrade -r-xr-xr-x 1 bin bin 5293 2009-11-16 db2_deinstall -r-xr-xr-x 1 bin bin 5163 2009-11-16 db2_install -r-xr-xr-x 1 bin bin 5127 2009-11-16 db2ls -r-xr-xr-x 1 bin bin 5145 2009-11-16 db2prereqcheck -r-xr-xr-x 1 bin bin 5145 2009-11-16 db2setup drwxr-xr-x 15 bin bin 4096 2009-11-16 doc -r-xr-xr-x 1 bin bin 5181 2009-11-16 installFixPack server 的子目录有多个可执行的脚本,其中db2prereqcheck是先决条件检查,db2setup 是图形界面安装程序,db2_install是命令行方式安装。还有一个db2目录,保存了需要安装的二迚制文件。 3、执行db2prereqcheck查看是否缺少先决条件 [root@redflag11012601 server]# ./db2prereqcheck 如果没有返回任何结果,表明系统符合DB2 安装的先决条件,可以进入下一步安装。如果返回信息,请按信息提示修改配置,然后再次运行,直到没有错误提示。 二、安装DB2数据库软件

DB2数据库备份与恢复详解

DB2数据库备份与恢复 1.备份 1.1离线备份(必须在数据库所在PC机进行操作) STEP 1 连接到要备份的数据库(数据库名:ncc) C:\Documents and Settings\Administrator>db2 connect to ncc user nccwykpi using nccwykpi STEP 2 显示数据库应用状态 C:\Documents and Settings\Administrator>db2 list applications

STEP 3 停掉数据库应用 C:\Documents and Settings\Administrator>db2 force applications all 注意:由于该命令是异步的,所以在进行备份的时候会出现以下错误信息。此时可以再次执行db2 force applications all 命令。 STEP 4 对数据库进行离线状态下的备份 C:\Documents and Settings\Administrator>db2 backup database ncc to d:\db2\backup

注意:指定的备份文件的输出目录必须是已创建的,否则会报错。 STEP 5 查看备份历史记录 C:\Documents and Settings\Administrator>db2 list history backup all for ncc

1.2在线备份 注意:如果要做在线的备份,要对两个参数作修改:USEREXIT和LOGRETAIN,将其修改为on,默认是off的,默认使用日志模式,修改完参数后,可以变为归档日志模式,启用了userexit做数据库日志的归档。 STEP 1 查看数据库当前的属性 C:\Documents and Settings\Administrator>db2 get db cfg STEP 2 设置userexit、logretain参数的状态为on C:\Documents and Settings\Administrator>db2 update db cfg for ncc using userexit on C:\Documents and Settings\Administrator>db2 update db cfg for ncc using logretain on

db2数据库复制

DB2 与DB2 之间的远程SQL 复制 白玉媛 (baiyy@https://www.360docs.net/doc/8115889627.html,), 软件工程师,IBM 中国软件开发中心,IBM 肖振春 (xiaozc@https://www.360docs.net/doc/8115889627.html,), 软件工程师, IBM 中国软件开发中心 简介:本文介绍了基于SQL 的DB2 与DB2 之间的远程复制,力求为初学者掌握DB2 复制提供一个参考步骤。 标记本文! 发布日期: 2006 年12 月21 日 级别:中级 访问情况 2363 次浏览 建议: 0 (添加评论) 平均分(共3 个评分) 本文介绍了基于“SQL复制”的DB2 与DB2 之间的远程复制。很多读者反映,对于初学者,由于对DB2 的复制概念不是很清楚,在实践中或多或少遇到了入手难的问题。本文通过对远程DB2 之间的复制的介绍,力求为初学者对DB2 的掌握提供一个参考步骤。 背景 “SQL”复制又称为“DB2 复制”,是为DB2 开发的两种数据复制类型中的一种,它是通过SQL 进行的复制。在这里简单提一下,DB2 复制中的另一种”Q 复制”是通过WebSphere MQ 队列进行的。在进行SQL 复制时,Capture 程序读取DB2 恢复日志以获取对指定源表的更改。该程序将更改保存到分级表中,Apply 程序并行读取更改并应用于目标事务。见图1。 图 1. SQL复制的结构 动机 商业上用复制出于很多原因,可以归纳为: ?分散,把数据分散到各个地方 ?整合,把其他地方的数据联合起来

?交换,与其他地方进行双向的数据交换 ?灵活应用,对上面提到的进行一些改变或者结合 在企业的生产环境中,常常会遇到把分公司的数据汇总到总公司的情况。这些数据可能分别建立在不同的数据库系统之中,也可能只使用DB2 数据库。无论哪种情况,都可以通过IBM 的DB2 ESE 和Webshpere II 产品进行操作。如果产品只是DB2 之间的SQL 复制,那么生产环境中只需安装DB2 ESE 即可。 假设用户有两台服务器都在使用DB2 V8。用户想把其中一台DB2 V8 中的数据复制到另外一台的DB2 系统中。这种情况下,可以选定任意一台服务器中的DB2 作为控制平台,为了方便,本例中直接使用了所要复制到的目标所在的DB2 V8 为控制平台。如图二所示: 图 2. 数据复制目标图 回页首实现的步骤 首先需要确定本地计算机安装了:DB2 ESE(DB2 Enterprise Server Edition)。 本文把复制的过程分为五步介绍,分别为: ?DB2 数据库环境及配置 ?编目(Catalog)DB2 数据库 ?密码配置 ?建立DB2 与DB2 之间的复制过程及错误分析 DB2 数据库环境及配置 在本例中采用了Windows 2000 运行环境,具体配置见表1: 表 1. 操作系统环境与DB2 版本 描述Server A Server B 主机名WSII155 db2repl 主机IP 9.181.139.155 9.181.138.233 操作系统Windows 2000 Server SP4 (Eng) Windows 2000 Server SP4 (Eng)

db2 load 命令

当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

DB 2 常用命令

DB 2 常用命令 一、加载数据: 1、以默认分隔符加载,默认为“,”号 db2 "import from btpoper.txt of del insert into btpoper" 2、以指定分隔符“|”加载 db2 "import from btpoper.txt of del modified by coldel| insert into btpoper" 二、卸载数据: 1、卸载一个表中全部数据 db2 "export to btpoper.txt of del select * from btpoper" db2 "export to btpoper.txt of del modified by coldel| select * from btpoper" 2、带条件卸载一个表中数据 db2 "export to btpoper.txt of del select * from btpoper where brhid='907020000'" db2 "export to cmmcode.txt of del select * from cmmcode where codtp='01'" db2 "export to cmmcode.txt of del modified by coldel| select * from cmmcode where codtp='01'" 三、查询数据结构及数据: db2 "select * from btpoper" db2 "select * from btpoper where brhid='907020000' and oprid='0001'" db2 "select oprid,oprnm,brhid,passwd from btpoper" 四、删除表中数据: db2 "delete from btpoper" db2 "delete from btpoper where brhid='907020000' or brhid='907010000'" 五、修改表中数据: db2 "update svmmst set prtlines=0 where brhid='907010000' and jobtp='02'" db2 "update svmmst set prtlines=0 where jobtp='02' or jobtp='03'" 六、联接数据库 db2 connect to btpdbs 七、清除数据库联接 db2 connect reset 断开数据库连接 db2 terminate 断开数据库连接 db2 force applications all 断开所有数据库连接 八、备份数据库 1、db2 backup db btpdbs 2、db2move btpdbs export db2look -d btpdbs -e -x [-a] -o crttbl.sql

db2 实战常用命令

db2 force application all –断开所有链接数据库的应用 db2 list application-查看连接数据库的应用 db2 bakup db ksdbs 备份数据库 db2start db2stop启停数据库 db2 connect reset断开所有链接 scp get trans.ini -r back@10.10.9.160/home/back/bccbin \ scp local_file remote_username@remote_ip:remote_folder 或者 scp local_file remote_username@remote_ip:remote_file scp -r ip:/db/dbhome/dbguard 【1】 db2top –d ksdbs db2pd -d ksdbs -stat >stat.log 查看数据库状态(数据超大超详细) 【1】find -type f | xargs dos2unix 遍历格式转换 【1】 find . -name [A-Z]* -print 查找当前目录下以大写字母命名的文件 【1】 >db2ckbkp 检查数据库的完整性 >tee 命令 用途--显示程序的输出并将其复制到一个文件中。 【1】db2 connect reset db2 list directory db2 list active databases db2 get db cfg db2 get db cfg 【1】归档日志 db2 update db cfg for db_name using LOGRETAIN ON 更改归档目录: db2 update db cfg for db_name using LOGARCHMETH1 "disk:/archive/db_name_db_log" 在我重新连接数据库的时候提示: db2 connect to t_1 to mydb SQL1116N A connection to or activation of database "T_1" cannot be made because of BACKUP PENDING. SQLSTATE=57019 网上找了n多最后才知道 若修改数据库LOGRETAIN参数,从循环日志模式改为归档日志模式,则会导致数据库backup pending状态。

DB2数据库参数详解配置

DB2数据库参数配置 数据库配置发行版级别= 0x0c00 数据库发行版级别= 0x0c00 数据库地域= CN 数据库代码页= 1208 数据库代码集= UTF-8 数据库国家/地区代码= 86 数据库整理顺序= IDENTITY 备用整理顺序(ALT_COLLATE) = 数字兼容性= OFF Varchar2 兼容性= OFF 数据库页大小= 4096 动态SQL查询管理(DYN_QUERY_MGMT) = DISABLE 对此数据库的发现支持(DISCOVER_DB) = ENABLE 限制访问= NO 缺省查询优化类(DFT_QUERYOPT) = 5 并行度(DFT_DEGREE) = 1 在算术异常时继续(DFT_SQLMATHWARN) = NO 缺省刷新有效期(DFT_REFRESH_AGE) = 0 缺省维护的选项(DFT_MTTB_TYPES)的表类型= SYSTEM 保留的高频值的数目(NUM_FREQVALUES) = 10 保留的分位点数目(NUM_QUANTILES) = 20 十进制浮点舍入方式(DECFLT_ROUNDING) = ROUND_HALF_EVEN 备份暂挂= NO

数据库是一致的= NO 前滚暂挂= NO 复原暂挂= NO 启用的多页文件分配= YES 恢复状态的日志保留= NO 日志记录状态的用户出口= NO 自调整内存(SELF_TUNING_MEM) = ON 数据库共享内存大小(4KB)(DATABASE_MEMORY) = AUTOMATIC 数据库内存阈值(DB_MEM_THRESH) = 10 锁定列表的最大存储量(4KB)(LOCKLIST) = AUTOMATIC 每个应用程序的锁定百分比列表(MAXLOCKS) = AUTOMATIC 程序包高速缓存大小(4KB)(PCKCACHESZ) = AUTOMATIC 共享排序的排序堆域值(4KB)(SHEAPTHRES_SHR) = AUTOMATIC 排序列表堆(4KB)(SORTHEAP) = AUTOMATIC 数据库堆(4KB)(DBHEAP) = AUTOMATIC 目录高速缓存大小(4KB)(CATALOGCACHE_SZ) = 260 日志缓冲区大小(4KB)(LOGBUFSZ) = 98 实用程序堆大小(4KB)(UTIL_HEAP_SZ) = 23665 缓冲池大小(页)(BUFFPAGE) = 250 SQL 语句堆(4KB)(STMTHEAP) = AUTOMATIC 缺省应用程序堆(4KB)(APPLHEAPSZ) = AUTOMATIC 应用程序内存大小(4KB)(APPL_MEMORY) = AUTOMATIC 统计信息堆大小(4KB)(STAT_HEAP_SZ) = AUTOMATIC 检查死锁的时间间隔(毫秒)(DLCHKTIME) = 10000 锁定超时(秒)(LOCKTIMEOUT) = -1

DB2常用命令小结

1、打开命令行窗口 #db2cmd 2、打开控制中心 # db2cmd db2cc 3、打开命令编辑器 db2cmd db2ce =====操作数据库命令===== 4、启动数据库实例 #db2start 5、停止数据库实例 #db2stop 如果你不能停止数据库由于激活的连接,在运行db2stop前执行db2 force application all 就可以了/db2stop force 6、创建数据库 #db2 create db [dbname] 7、连接到数据库 #db2 connect to [dbname] user [username] using [password]

8、断开数据库连接 #db2 connect reset 9、列出所有数据库 #db2 list db directory 10、列出所有激活的数据库 #db2 list active databases 11、列出所有数据库配置 #db2 get dbcfg 12、删除数据库 #db2 drop database [dbname] (执行此操作要小心) 如果不能删除,断开所有数据库连接或者重启db2 =========操作数据表命令========== 13、列出所有用户表 #db2 list tables 14、列出所有系统表 #db2 list tables for system

15、列出所有表 #db2 list tables for all 16、列出系统表 #db2 list tables for system 17、列出用户表 #db2 list tables for user 18、列出特定用户表 #db2 list tables for schema [user] 19、创建一个与数据库中某个表(t2)结构相同的新表(t1) #db2 create table t1 like t2 20、将一个表t1的数据导入到另一个表t2 #db2 "insert into t1 select * from t2" 21、查询表 #db2 "select * from table name where ..." 22、显示表结构 #db2 describe table tablename 23、修改列

DB2数据库安装

建用户 # groupadd db2iadm1 # useradd -m -g db2iadm1 -d /home/db2inst1 db2inst1 # groupadd db2fadm1 # useradd -m -g db2fadm1 -d /home/db2fenc1 db2fenc1 # groupadd dasadm1 # useradd -m -g dasadm1 -d /home/dasusr1 dasusr1 一、下载安装DB2 到IBM网站下载免费的DB2 Express-C 9.5,网址https://www.360docs.net/doc/8115889627.html,/developerworks/cn/downloads/im/udbexp/ 下载db2exc_952_LNX_x86.tar.gz到/home/hz 使用 tar -xvf db2exc_952_LNX_x86.tar.gz命令解压, 解压到/home/hz/expc/目录下, X/home/hz/expc/db2setup,命令行终端使用/home/hz/expc/db2_install来进行DB2的安装。 安装时若提示找不到libaio.so.1及libstdc++.so.5,则先下载安装相应的软件包。 libaio.so.1 -> libaio1 # aptitude install libaio1 libstdc++.so.5 -> libstdc++5 # aptitude install libstdc++5 二、配置DB2 #创建用户组及用户 #与实例名同名? groupadd -g 2000 db2iadm1 useradd -m -g db2iadm1 -d /home/db2inst1 db2inst1

DB2数据库基础入门

IBM DB2数据库基础 基本命令集合 1. 建立数据库DB2_GCB CREATE DATABASE DB2_GCB ON G: ALIAS DB2_GCB USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM DFT_EXTENT_SZ 32 2. 连接数据库 connect to sample1 user db2admin using 8301206 3. 建立别名 create alias db2admin.tables for sysstat.tables; CREATE ALIAS DB2ADMIN.VIEWS FOR SYSCAT.VIEWS create alias db2admin.columns for syscat.columns; create alias guest.columns for syscat.columns; 4. 建立表 create table zjt_tables as (select * from tables) definition only; create table zjt_views as (select * from views) definition only; 5. 插入记录 insert into zjt_tables select * from tables; insert into zjt_views select * from views;

6. 建立视图 create view V_zjt_tables as select tabschema,tabname from zjt_tables; 7. 建立触发器 CREATE TRIGGER zjt_tables_del AFTER DELETE ON zjt_tables REFERENCING OLD AS O FOR EACH ROW MODE DB2SQL Insert into zjt_tables1 values(substr(o.tabschema,1,8),substr(o.tabname,1,10)) 8. 建立唯一性索引 CREATE UNIQUE INDEX I_ztables_tabname ON zjt_tables(tabname); 9. 查看表 select tabname from tables where tabname='ZJT_TABLES'; 10. 查看列 select SUBSTR(COLNAME,1,20) as 列名,TYPENAME as 类型,LENGTH as 长度 from columns where tabname='ZJT_TABLES'; 11. 查看表结构 db2 describe table user1.department db2 describe select * from user.tables

DB2数据库SQL语法参考手册

DB2数据库SQL语法参考手册 DB2提供了关连式资料库的查询语言SQL (Structured Query Language),是一种非常口语化、既易学又易懂的语法。此一语言几乎是每个资料库系统都必须提供的,用以表示关连式的操作,包含了资料的定义(DDL)以及资料的处理(DML)。SQL原来拼成SEQUEL,这语言的原型以"系统R"的名字在IBM 圣荷西实验室完成,经过IBM内部及其他的许多使用性及效率测试,其结果相当令人满意,并决定在系统R 的技术基础发展出来IBM 的产品。而且美国国家标准学会(ANSI)及国际标准化组织(ISO)在1987遵循一个几乎是以IBM SQL 为基础的标准关连式资料语言定义。 一、资料定义DDL(Data Definition Language) 资料定义语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系、表格内的有什麽栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的。 1.建表格: CREATE TABLE table_name( column1 DATATYPE [NOT NULL] [NOT NULL PRIMARY KEY], column2 DATATYPE [NOT NULL], ...) 说明: DATATYPE是资料的格式,详见表。 NUT NULL可不可以允许资料有空的(尚未有资料填入)。 PRIMARY KEY是本表的主键。 2.更改表格 ALTER TABLE table_name ADD COLUMN column_name DATATYPE 说明:增加一个栏位(没有删除某个栏位的语法。 ALTER TABLE table_name ADD PRIMARY KEY (column_name) 说明:更改表得的定义把某个栏位设为主键。 ALTER TABLE table_name DROP PRIMARY KEY (column_name)

相关文档
最新文档