您的位置:首页 > Web前端

DB2相关知识

2009-10-10 10:33 148 查看

1.1 启动DB2服务

db2start

1.2 关闭DB2服务

db2stop

1.3 连接数据库

db2 connect to databasename

1.4 查询数据数据

db2 “select * from tablename”

1.5 查询数据结构

db2 describe table tablename

1.6 删除表中数据

db “delete from tablename”

1.7 修改表中数据

db2 “updete tablename set ….”

1.8 清除数据库连接

db2 connect reset 
db2 terminate 
db2 force applications all
db2 force application [句柄号]

1.9 DB2帮助命令

db2 ?

1.10 查看数据库参数

db2 get dbm cfg 
db2 get db cfg for databasename

1.11 修改数据库参数

db2 update db cfg for databasename using LOGBUFSZ 20

1.12 查看当前数据库表空间分配状况

db2 list tablespaces show detail

1.13 修改当前模式

db2 set schema 模式

1.14 查看tablespace id = 2使用容器所在目录

db2 list tablespace containers for 2 show detail

1.15 查看与数据库连接的程序

db2 list application

1.16 列出所有活动的数据库

db2 list active databases

1.17 列出当前数据库下所有的表

db2 list tables for all

1.18 列出当前数据库中schema为btp的表

db2 list tables for schema btp

1.19 显示数据库空间使用情况

db2 list tablespaces show detail

1.20 查看数据库版本

db2level

1.21 显示当前数据库管理实例

db2 get instance

1.22 设置实例系统启动时是否自动启动

db2iauto -on
db2iauto –off

1.23 把远程数据库映射到本地接点一般为50000

db2 catalog tcpip node databasename remote remotebaseip server portnum

1.24 远程数据库名称到本地接点

db2 catalog db databasename as nodename at node PUB11

1.25 连接本地接点访问远程数据库

db2 connect to database user username using pwd

1.26 导出数据库的表结构

db2look –d databasename –u username –e –o 1.sql

1.27 导出数据库中的表

db2look –d databasename –u username –t tablename –e –o 1.sql

1.28 导出数据库数据

db2move databasename export

1.29 导出数据库中表和表数据

db2move databasename export –tn tablename

1.30 导入表结构

db2 –tvf 2.sql

1.31 导出的数据导入到数据库中并把相同的数据替换

db2move hac load –lo replace

1.32 修改页编码

db2set db2codepage=1208

1.33 查看表结构

db2 describe table tablename

1.34 查看数据库中所有表结构

db2 list tables
db2 list tables for system

1.35 列出表空间

db2 list tablespaces 

1.36 lock table 

db2 lock table tablename in exclusive mode

1.37 share table

db2 lock table tablename in share mode

1.38 数据库卸载

db2inst1 :
db2 force applications all
db2stop

root :
cd /opt/ibm/db2/V9.5/instance
./dasdrop //除去db2管理服务器
./db2idrop db2inst1 //删除db2实例

cd /exp
./db2_deinstall -a         //卸载数据库
中间出现提示:
输入db2安装的目录,如/opt/ibm/db2/V9.5

userdel db2inst1 
userdel dasusr1
userdel db2fenc1
rm -rf /opt/ibm/db2 
rm -rf /home/db2inst1
rm -rf /home/ dasusr1
rm -rf /home/db2fenc1

2 DB2备份、恢复

2.1 离线全备份 

a) 首先确保没有用户使用DB2: 
db2 list applications for db sample 
b) 停掉数据库并重新启动,以便断掉所有连接: 
db2stop force 
db2start 
c) 执行备份命令:(使用TSM作为备份的介质) 
db2 backup db sample use tsm 
db2 backup db sample to /home
d) 备份成功,将会返回一个时间戳。 
e) 检查备份成功。
f) 查看备份的纪录。
db2 list history backup all for sample  
g) 看到返回值。 
db2adutl query
备注: 
首先对主节点(catalog表空间在的节点)执行备份命令,再对另外的节点也做这个操作。 

2.2 在线备份 

1)、首先打开一下支持在线备份的数据库配置参数: 
db2 update db cfg for sample using userexit on 启用用户出口 
db2 update db cfg for sample using logretain on 启用归档日志 
db2 update db cfg for sample using trackmod on 启用增量备份功能 
(需要各个Node都分别做设置) 
开启这些参数后,数据库处于backup pending状态,要求做数据库的离线全备份。做一下离线全备份,参考上面的命令。 
2)、在线备份命令如下: 
db2 backup db sample online use tsm 
备份成功,返回一个时间戳。 
3)、同样可以用db2adutl 和db2 list history察看备份纪录。 
4)、备注: 
同样,对每个节点都做这个操作。 

2.3 在线增量备份 

1)、在开启了必须的三个参数的情况下,做增量备份: 
db2 backup db sample online incremental use tsm 
备份成功,返回一个时间戳。 
2)、同样可以用db2adutl 和db2 list history察看备份纪录。 
3)、还有一种delta的备份: 
db2 backup db sample online incremental delta use tsm 
这两种备份的区别,类似Oracle Exports的Incremental和Cumulative方式,db2的incremental对应oracle的cumulative方式,而db2的delta方式则对应oracle的incremental方式。 
4)、备注: 
同样,对每个节点都做这个操作。 

2.4 恢复数据库 

1)、手工drop数据库,模拟灾难恢复的情况,执行如下操作: 
db2 drop db sample 
2)、恢复备份历史纪录(每次backup,不论类型,都会备份历史纪录文件)。这里的时间戳应该是最新的: 
db2 restore db sample history file use tsm taken at 20030102223107 buffer 100 
3)、使用db2的恢复帮助工具: 
db2ckrst -d sample -t 20030101224424 -r database 
命令返回建议的必需的恢复操作命令。 
4)、按照帮助工具的提示,先做版本恢复,恢复命令如下: 
db2 restore db sample incremental use tsm taken at 20030101224424 buffer 100 
同样先做主节点的恢复,再做其他节点的恢复操作。 
5)、这时数据库处于rollforward-pending state的状态,需要做roll forward 操作: 
db2 rollforward db sample to 2003-01-12-13.27.25.000000 on all nodes and stop 
前滚到同一个时间点。这个操作要在主节点来做。 

2.5 有关说明 

1)、恢复操作也有online和offline的,区别如同backup的操作。 
2)、按照表空间的备份和恢复类似,加子句TABLESPACE ( tablespace-name )即可。表空间级别的备份/恢复操作要求数据库处于归档日志和启用增量备份模式下。 
3)、恢复的例子中只做了版本恢复。若还有更新的全备份和增量备份的image,可以依次做恢复(注意使用db2ckrst的建议恢复次序和次数)后,再做roll forward. 

3 DB2数据库类型 

3.1 内置数据类型 

DB2内置数据类型可以分成数值型(numeric)、字符串型(character string)、图形字符串(graphic string)、二进制字符串型(binary string)或日期时间型(datetime)。还有一种叫做 DATALINK 的特殊数据类型。DATALINK 值包含了对存储在数据库以外的文件的逻辑引用。

3.2 数值型数据类型 

数值型数据类型包括 SMALLINT、INTEGER、BIGINT、DECIMAL(p,s)、REAL 和 DOUBLE。所有数值都有符号和精度。精度是指除符号以外的二进制或十进制的位数。如果数字的值大于等于零,就认为符号为正。

3.2.1 小整型

SMALLINT:小整型是两个字节的整数,精度为 5 位。小整型的范围从 -32,768 到 32,767。

3.2.2 大整型

INTEGER 或 INT:大整型是四个字节的整数,精度为 10 位。大整型的范围从 -2,147,483,648 到 2,147,483,647。

3.2.3 巨整型

BIGINT:巨整型是八个字节的整数,精度为 19 位。巨整型的范围从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。

3.2.4 小数型

DECIMAL(p,s)、DEC(p,s)、NUMERIC(p,s) 或 NUM(p,s):小数型的值是一种压缩十进制数,它有一个隐含的小数点。压缩十进制数将以二-十进制编码(binary-coded decimal,BCD)记数法的变体来存储。小数点的位置取决于数字的精度(p)和小数位(s)。小数位是指数字的小数部分的位数,它不可以是负数,也不能大于精度。最大精度是 31 位。小数型的范围从 -10**31+1 到 10**31-1。
单精度浮点数(Single-precision floating-point),REAL:单精度浮点数是实数的 32 位近似值。数字可以为零,或者在从 -3.402E+38 到 -1.175E-37 或从 1.175E-37 到 3.402E+38 的范围内。

3.2.5 双精度浮点数(Double-precision floating-point)

DOUBLE,DOUBLE PRECISION 或 FLOAT:双精度浮点数是实数的 64 位近似值。数字可以为零,或者在从 -1.79769E+308 到 -2.225E-307 或从 2.225E-307 到 1.79769E+308 的范围内。

3.3 字符串型数据类型 

字符串是字节序列。字符串包括 CHAR(n) 类型的定长字符串和 VARCHAR(n)、LONG VARCHAR 或 CLOB(n) 类型的变长字符串。字符串的长度就是序列中的字节数。

3.3.1 定长字符串

CHARACTER(n) 或 CHAR(n):定长字符串的长度介于 1 到 254 字节之间。如果没有指定长度,那么就认为是 1 个字节。

3.3.2 变长字符串

VARCHAR(n)、CHARACTER VARYING(n) 或 CHAR VARYING(n):VARCHAR(n) 类型的字符串是变长字符串,最长可达 32,672 字节。

3.3.3 LONG VARCHAR

LONG VARCHAR 类型的字符串是变长字符串,最长可达 32,700 字节。

3.3.4 字符大对象字符串(Character Large Object String)

CLOB(n[K|M|G]):CLOB 是变长字符串,最长可以达到 2,147,483,647 字节。如果只指定了 n,那么 n 的值就是最大长度。如果指定了 nK,那么最大长度就是 n*1,024(n 的最大值为 2,097,152)。如果指定了 nM,那么最大长度就是 n*1,048,576(n 的最大值为 2,048)。如果指定了 nG,那么最大长度就是 n*1,073,741,824(n 的最大值是 2)。CLOB 用于存储基于大单字节字符集(single-byte character set,SBCS)字符的数据或基于混合(多字节字符集(MBCS)和 SBCS)字符的数据。图形字符串是表示双字节字符数据的字节序列。图形字符串包括类型为 GRAPHIC(n) 的定长图形字符串和类型为 VARGRAPHIC(n)、LONG VARGRAPHIC 和 DBCLOB(n) 的变长图形字符串。字符串的长度就是序列中双字节字符的数目。

3.4 字符串型数据类型 

3.4.1 定长图形字符串

GRAPHIC(n)定长图形字符串的长度介于 1 到 127 个双字节字符之间。如果没有指定长度,就认为是 1 个双字节字符。

3.4.2 变长图形字符串

VARGRAPHIC(n):VARGRAPHIC(n) 类型的字符串是变长图形字符串,最大长度可达 16,336 个双字节字符。

3.4.3 LONG VARGRAPHIC

LONG VARGRAPHIC 类型的字符串是变长图形字符串,最大长度可达 16,350 个双字节字符
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息