您的位置:首页 > 移动开发

DB2应用 常用命令2

2007-08-17 16:52 393 查看
1. create database
create db testdb on /cardpro/dbdir
2. create tablespace
create tablespace tbs2 managed by database using (device '/dev/rapplv2' 4640M, device '/dev/rapplv8' 4640M )
create tablespace tbs2 managed by database using  (file '/home/db2inst1/buff4000.dat' 25000)
3. connect database
connect to testdb user <userid> using <pwd>
4. create table
CREATE TABLE ACL_FUNCTION(
    FUNCTION_ID     CHAR(10)    NOT NULL,
    FUNCTION_DES    CHAR(80),
    MODULE_ID       CHAR(10)    NOT NULL,
    BATRUN_STA      CHAR(1),
    MODIFY_TIME     CHAR(30),
    MODIFY_BY       CHAR(10),
    CONSTRAINT PKACL_FUNCTION PRIMARY KEY (FUNCTION_ID)
) IN TBS1
INDEX IN TBS6
5. create index
create index cb_finacc_acctno on cp_indacc(cb_fin_acctno)
6. select, delete, insert, update
1)  select * from acl_user where user_id='test'
   选择前3条记录:  select * from acl_user fetch first 3 rows only
   查询从第m条到第n条记录:
select * from  (select  ROW_NUMBER() over() as  a, acl_user.* from  acl_user) as  acl_user  where  a >=5  and  a<=30
2 )
insert into acl_screen_fun_map value('CCPM1900C','0',null,'CPM1900',null)
insert into acl_screen_fun_map (sceen_id, button_def) value ('CCPM1900C' , '0' )
3) delete from acl_user
    delete from acl_user where user_id='test'
4)update acl_user set user_id='newtest' where user_id='test'
7. 显示相关信息
显示当前活动数据库
db2 list active databases
显示命令选项
db2 list command options
显示系统数据库目录
db2 list db directory
显示表空间
db2 list tablespaces
db2 list tablespaces show detail
显示表空间容器
db2 list tablespace containers for tablespace-id
Example: db2 list tablespace containers for 1
显示表
db2 list tables for schema cardpro 显示用户为cardpro的所有表
db2 list tables     显示当前用户所有表
db2 list tables for system    显示所有系统表
显示当前用户数据库的存取权限
db2 get authorizations
显示当前数据库的活动进程
db2 list applications
db2 list application for db <dbname>
db2 force application all : 关闭所有db2 的进程
显示数据库配置信息
db2 get db cfg for <db name>
显示db2 数据库管理程序配置
db2 get dbm cfg
显示表结构
db2 describe table <tablename>
显示表索引
db2 describe indexes for table <tablename>
8. 重新连接
connect reset
9. 中断数据库连接
disconnect <dbname>
10.  lock table
lock table <tablename> in exclusive mode
lock table <tablename> in share mode
11. 修改数据库参数
1) 数据库配置参数
db2 update db cfg for <dbname> using <parameter> <value>
eg: db2 update db cfg for testdb using LOGRETAIN on
2) 数据库管理器配置参数
db2 update dbm cfg using <parameter> <value>
db2 update dbm cfg using MON_HEAP_SZ 512
12. 启动实例
db2start
13. 停止实例
db2stop
db2stop force
14. 授权
ADD USER:
grant  createtab,connect on database to user cardpro
SCHEMA :
grant  createin,dropin,alterin on schema cardpro to user cardpro with grant option
TABLE :
grant  control on table cp_fintbl to user cardpro
grant  select,insert,update,delete,alter,index,references on table cp_fintbl to user cardpro with grant option
VIEW :
grant  control on v_syscolumns to user cardpro
grant  select,insert,delete,update on v_syscolumns to user cardpro with grant option
INDEX :
grant control on index wb_start_card_no to user cardpro
TABLESPACE :
grant use of tablespace userspace1 to user cardpro with grant option
15. 系统表说明
检查约束 syscat.checks
列 syscat.columns
检查约束引用的列 syscat.colchecks
关键字中使用的列 syscat.keycoluse
数据类型syscat.datatype
函数参数或函数结果 syscat.funcparms
参考约束 syscat.references
模式 syscat.schemata
表约束 syscat.tabconst
表 syscat.tables
触发器 syscat.triggers
用户定义函数 syscat.functions
视图 syscat.views
16. 多数据库联合查询(FEDERATED)
首先确认实例配置参数中FEDERATED值设为YES。
然后通过以下步骤达到在mbank库中访问cards24库cardpro.cp_banknm表的目的。
1) connect to mbank user cardpro using cardpro
2)  create wrapper drda
3)  create server db2sam type db2/nt version 7.2 wrapper drda authorization db2inst1 password cardpro4bos options(node 'p610', dbname 's24db')
注意,要将数据库cards24编目在本地节点上,node对于节点名,dbname对于数据库别名
例如:
catalog tcpip node p610 remote 10.168.4.18 server 50000
catalog db cards24 as s24db at node p610
4)  create user mapping for db2inst1 server db2sam options(remote_authid 'db2inst1', remote_password 'cardpro4bos')
5)  create nickname cardpro.cp_banknm for db2sam.cardpro.cp_banknm
之后,就可以在mbank数据库中用select语句查询,如select * from cardpro.cp_banknm。
17. 利用已有表生成表结构脚本
在命令窗口中利用db2look工具,可以生成表结构。
db2look -d <dbname> -a -e -o <filename>
其中,-d 后跟数据库名,-a 是指针对所有用户,-o 后跟要输出的文件名。
如果希望输出某个用户创建的表,可以用 -u 参数。指定需要输出表结构的表名,可以用 -t 参数。
例如,数据库cards24中,对于db2inst1用户创建的cp_crdtbl表,可以用下面的语句生产表结构:
db2look -d cards24 -t cp_crdtbl -u db2inst1 -e -o cp_crdtbl.sql
生成的脚本文件可以用 db2 -svtf 文件名 来执行。
18. 在命令行下执行DB2脚本(script)
在命令窗口中运行DB2脚本,可用 db2 -svtf 脚本文件名 来实现。
例如,脚本文件名为sample.sql,运行:db2 -svtf sample.sql参数中:
s 代表遇到错误时中止运行脚本
v 代表输出结果到屏幕
t 指以;号作为每行的分隔符
f 指后面需跟脚本文件名
如果希望即使遇到错误也不要中止运行脚本可以去掉参数s。
如果脚本中没有分隔符,应去掉参数t。
如果脚步中分隔符为其他字符,请用-td后接所使用的分隔符,例如如果使用的分隔符为@,可以用db2 -td@ -svf 脚本文件名 来执行脚本。
19. Quit 与 Terminate
Quit和Terminate都可以退出DB2 CLP。但是Terminate同时终止了后台的进程并清空了所分配的内存。
20. 如何判断应用程序是否出现死锁现象
在一次会话(SESSION)中,首先用
UPDATE MONITOR SWITCHES USING LOCK ON
命令打开开关,然后用
GET SNAPSHOT FOR LOCKS ON <dbname>
得到当前加在该数据库上的锁的情况。
下面是一个应用程序死锁后快照的情况:
Database Lock Snapshot  
Database name = SAMPLE
...  
Application handle = SAMPLE
Application ID = *LOCAL.DB2.011226074903
...  
Application status  = Lock-wait
...  
Application ID holding lock = *LOCAL.DB2.011226074931
...      
Application handle = 9
Application ID  = *LOCAL.DB2.011226074931
...  
Application status = Lock-wait
...  
Application ID holding lock  = *LOCAL.DB2.011226074903
...  
可以看出句柄为8和9的程序分别处于Lock-wait状态,而它们所需要的所又分别被对方拿住,造成死锁状态的形成。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息