DB2数据库命令简介
LoadAllIEPlugin=1
1.启动数据库
db2start
2.停止数据库
db2stop
3.连接数据库
db2 connect to o_yd user db2 using pwd
4.读数据库管理程序配置
db2 get dbm cfg
5.写数据库管理程序配置
db2 update dbm cfg using 参数名 参数值
6.读数据库的配置
db2 connect to o_yd user db2 using pwd
db2 get db cfg for o_yd
7.写数据库的配置
db2 connect to o_yd user db2 using pwd
db2 update db cfg for o_yd using 参数名 参数值
8.关闭所有应用连接
db2 force application all
db2 force application ID1,ID2,,,Idn MODE ASYNC
(db2 list application for db o_yd show detail)
9.备份数据库
db2 force application all
db2 backup db o_yd to d:
(db2 initialize tape on //./tape0)
(db2 rewind tape on //./tape0)
db2 backup db o_yd to //./tape0
10.恢复数据库
db2 restore db o_yd from d: to d:
db2 restore db o_yd from //./tape0 to d:
11.绑定存储过程
db2 connect to o_yd user db2 using pwd
db2 bind c:/dfplus.bnd
拷贝存储过程到服务器上的C:/sqllib/function目录中
12.整理表
db2 connect to o_yd user db2 using pwd
db2 reorg table ydd
db2 runstats on table ydd with distribution and indexes all
13.导出表数据
db2 export to c:/dftz.txt of del select * from dftz
db2 export to c:/dftz.ixf of ixf select * from dftz
14.导入表数据
import from c:/123.txt of del insert into ylbx.czyxx
db2 import to c:/dftz.txt of del commitcount 5000 messages c:/dftz.msg insert into dftz
db2 import to c:/dftz.ixf of ixf commitcount 5000 messages c:/dftz.msg insert into dftz
db2 import to c:/dftz.ixf of ixf commitcount 5000 insert into dftz
db2 import to c:/dftz.ixf of ixf commitcount 5000 insert_update into dftz
db2 import to c:/dftz.ixf of ixf commitcount 5000 replace into dftz
db2 import to c:/dftz.ixf of ixf commitcount 5000 create into dftz (仅IXF)
db2 import to c:/dftz.ixf of ixf commitcount 5000 replace_create into dftz (仅IXF)
15.执行一个批处理文件
db2 -tf 批处理文件名
(文件中每一条命令用 ;结束)
16.自动生成批处理文件
建文本文件:temp.sql
select 'runstats on table DB2.' || tabname || '
with distribution and detailed indexes all;'
from syscat.tables where tabschema='DB2' and type='T';
db2 -tf temp.sql>runstats.sql
17.自动生成建表(视图)语句
在服务器上:C:/sqllib/misc目录中
db2 connect to o_yd user db2 using pwd
db2look -d o_yd -u db2 -e -p -c c:/o_yd.txt
18.其他命令
grant dbadm on database to user bb
19select * from czyxx fetch first 1 rows only
20db2look -d ylbx -u db2admin -w -asd -a -e -o a.txt21. 显示当前用户所有表
list tables
22.列出所有的系统表
list tables for system
23.查看表结构
db2 describe select * from user.tables
DB2 实用操作指令总结
db2 force application all : 强制停止所有数据库链接
db2stop force : 停止DB2
db2start : 启动数据库
SET INTEGRITY FOR [ MView Table Name ] IMMEDIATE CHECKED :
REFRESH TABLE [ MView Table Name ] 对建立的MView物化视图进行refresh操作。
1. 查看本地节点目录
命令窗口中输入:db2 list node directory
2. 编目一个TCP/IP节点
命令窗口:db2 catalog tcpip node <node_name> remote
<hostname|ip_address> server <svcname|port_number> ostype
<OS2|AIX|WIN95|NT|HPUX|SUN|MVS|OS400|VM|VSE|SCO|SGI|LINUX|DYNIX>
3. 取消节点编目
db2 uncatalog node <node_name>
1. 查看本地节点目录
命令窗口中输入:db2 list node directory
2. 编目一个TCP/IP节点
命令窗口:db2 catalog tcpip node <node_name> remote
<hostname|ip_address> server <svcname|port_number> ostype
<OS2|AIX|WIN95|NT|HPUX|SUN|MVS|OS400|VM|VSE|SCO|SGI|LINUX|DYNIX>
3. 取消节点编目
db2 uncatalog node <node_name>
4. 查看系统数据库目录
db2 list database directory
5. 查看本地数据库目录
db2 list database directory on <盘符>
在本地数据库目录中有而系统数据库目录中没有的数据库不能访问,可以在控制中心中选中<数据库>右键单击选择添加,然后输入需要添加的数据库名称或者点击刷新按钮选择数据库,加入数据库后即可以访问。
6. 编目数据库
db2 catalog database <db_name> as <db_alias> at node <node_name>
7. 取消数据库编目
db2 uncatalog database <db_name>
8. 测试远程数据库的连接
db2 connect to <db_alias> user <user_id> using <password>
9. 任何用户均可通过设置Current Schema专用寄存器为特定的数据库连接设置默认模式,初始默认值为当前会话用户的权限ID。
set schema = <schema name>
可以由用户交互式的使用,也可在应用程序中使用,如果用Dynamicrules
Bind选项绑定包,这个语句就没有作用。此语句不在事务控制之下。
10. 代码页的设置
在创建数据库时设置字符集
create database <db_name> using codeset <codeset> territory
<territiry>
例:
create database dbtest using codeset IBM-437 territory US
也可以设置整个数据库的代码页,在win2000/NT/xp中,在我的电脑-->属性-->高级-->环境变量中添加变量DB2CODEPAGE
= <codepage>,例:DB2CODEPAGE = 437 或 DB2CODEPAGE = 1386。或者在IBM
DB2命令窗口输入 db2set DB2CODEPAGE=1386,设置后需要重新启动DB2生效。
11. DB2低版本数据到高版本的迁移
先将低版本数据备份使用恢复功能导入高版本数据库,然后在命令窗口输入 db2 migrate database <db_name>。
12. 表名或模式中含有引号时访问表
命令窗口:db2 select * from /"tabschema/"./"tabname/"
命令行处理器:db2=> select * from "tabschema"."tabname"
13. 导出数据库的表结构生成DDL文件
命令窗口:db2look -d <db_name> -e -c -o <file_name>
14. 执行脚本文件
命令窗口:db2 -tvf <file_name>
15. 代码页的转换
16. 获取当前DB2的版本
select * from sysibm.sysversions
17. DB2表的字段的修改限制?
只能修改VARCHAR2类型的并且只能增加不能减少
alter table <tb_name> alter column <col_name> set data type
varchar(SIZE)
18. 如何查看表的结构?
describe table <tb_name>
or
describe select * from <schema>.<tb_name>
19. 如何快速清除一个大表?
ALTER TABLE TABLE_NAME ACTIVE NOT LOGGED INITALLY WITH EMPTY TABLE
20. 如何查看数据库的存储过程?
SELECT * FROM SYSCAT.PROCEDURES
21. 如何查看表的约束?
SELECT * FROM SYSCAT.CHECKS WHERE TABNAME = <tb_name>
22. 如何查看表的引用完整约束?
SELECT * FROM SYSCAT.REFERENCES WHERE TABNAME = <tb_name>
23. 如何知道BUFFERPOOLS状况?
select * from SYSCAT.BUFFERPOOLS
24. 如何在命令行下查看修改实例和数据库配置参数?
查看实例配置参数: db2 get dbm cfg
修改实例配置参数: db2 update dbm cfg using 参数名 新值
查看数据库配置参数: db2 get db cfg for <db_name>
修改数据库配置参数: db2 update db cfg for <db_name> using 参数名 新值
25. 如何修改缓冲区?
增加缓冲区: create bufferpool <buf_name> size <number of pages>
[pagesize 4096] {[not] EXTENDED STORAGE}
修改缓冲区: alter bufferpool <buf_name> size <number of pages> {[not]
EXTENDED STORAGE}
删除缓冲区: drop bufferpool <buf_name>
如果缓冲区大小设置为 -1 表示缓冲池的页面数目由数据库配置参数buffpage决定。
注意: 数据库配置参数buffpage仅对缓冲区大小设置为 -1 的缓冲池起作用。
26. 多个字段时如何不通过使用select子句使用in/not in
select * from tabschema.tabname where (colA, colB, colC) [not] in
(values (valueA1, valueB1, valueC1), (valueA2, valueB2, valueC2),
...(valueAn, valueBn, valueCn))
27. 查看当前连接到数据库的应用
db2 list application [show detail]
28. 如何确认DB2数据库的一致性
db2dart <db_name> /DB
/DB表示检查整个数据库的一致性
29. 测试SQL语句的性能
db2batch -d <db_name> -f <file_name> [-a userid/passwd] [-r
<outfile_name>]
-r 选项表示将查询结果输出到一个文件中。
30. 导出某个表的数据
export to <Derectry><filme>
如:导出用户表
export to c:/user.ixf of ixf select * from user
31. 导入数据
import from
如:导入用户表。导入时可以直接建立新表。如果有该表存在也可以用INSERT 插入,或者用UPDATE更新
import from c:/user.ixf of ixf [Create/Insert into / update]
tablename
第七部分 DB2使用命令编目远程数据库至本地
本文测试环境:Windows 32位平台
DB2 V7 DB2 V8 版本
1 编目远程节点:
db2 catalog tcpip node db2cdb2 remote 10.81.XX.XX server 50000
成功以后显示:
DB20000I CATALOG TCPIP NODE 命令成功完成。
DB21056W 只有在刷新目录高速缓存以后,目录更改才会生效。
2 设置编目的节点为当前节点:
db2 attach to db2cdb2 user user_name using password
成功以后显示:
实例连接信息
实例服务器 = DB2/NT 8.2.0
授权标识 = user_name
本地实例别名 = db2cdb2
3 编目数据库:
db2 catalog db DB_NAME AS ALIAS_NAME AT NODE DB2CDB2
成功以后显示:
DB20000I CATALOG DATABASE 命令成功完成。
DB21056W 只有在刷新目录高速缓存以后,目录更改才会生效。
4 测试数据库连接:
db2 connect to ALIAS_NAME user user_name USING password
成功显示:
数据库连接信息
数据库服务器 = DB2/NT 8.2.0
SQL 授权标识 = user_name
本地数据库别名 = ALIAS_NAME