博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DB2 应用
阅读量:6761 次
发布时间:2019-06-26

本文共 8276 字,大约阅读时间需要 27 分钟。

一.常用命令1.   create databasecreate db cardprod on /cardpro/dbdir create db cardprod on d 2.   create tablespacecreate 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 databaseconnect to cardprod user 
using
4. create tableCREATE 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 TBS1INDEX IN TBS6 5. create indexcreate index cb_finacc_acctno on cp_indacc(cb_fin_acctno) 6. select, delete, insert, update1) 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 tablespacesdb2 list tablespaces show detail显示表空间容器db2 list tablespace containers for tablespace-idExample: 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 applicationsdb2 list application for db
db2 force application all : 关闭所有db2 的进程显示数据库配置信息db2 get db cfg for
显示db2 数据库管理程序配置db2 get dbm cfg显示表结构db2 describe table
显示表索引db2 describe indexes for table
8. 重新连接connect reset9. 中断数据库连接disconnect
10. lock tablelock table
in exclusive modelock table
in share mode 11. 修改数据库参数1) 数据库配置参数db2 update db cfg for
using
eg: db2 update db cfg for cardprod using LOGRETAIN on2) 数据库管理器配置参数db2 update dbm cfg using
db2 update dbm cfg using MON_HEAP_SZ 512 12. 启动实例db2start 13. 停止实例db2stopdb2stop force 14. 授权ADD USER:grant createtab,connect on database to user cardproSCHEMA :grant createin,dropin,alterin on schema cardpro to user cardpro with grant optionTABLE :grant control on table cp_fintbl to user cardprogrant select,insert,update,delete,alter,index,references on table cp_fintbl to user cardpro with grant optionVIEW :grant control on v_syscolumns to user cardprogrant select,insert,delete,update on v_syscolumns to user cardpro with grant optionINDEX :grant control on index wb_start_card_no to user cardproTABLESPACE :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. 利用已有表生成表结构脚本在命令窗口中利用db2look工具,可以生成表结构。db2look -d
-a -e -o
其中,-d 后跟数据库名,-a 是指针对所有用户,-o 后跟要输出的文件名。如果希望输出某个用户创建的表,可以用 -u 参数。指定需要输出表结构的表名,可以用 -t 参数。例如,数据库cards24中,对于db2inst1用户创建的cp_crdtbl表,可以用下面的语句生产表结构:db2look -d cards24 -t cp_crdtbl -u db2inst1 -e -o cp_crdtbl.sql生成的脚本文件可以用 db2 -svtf 文件名 来执行。17. 在命令行下执行DB2脚本(script)在命令窗口中运行DB2脚本,可用 db2 -svtf 脚本文件名来实现。例如,脚本文件名为sample.sql,运行:db2 -svtf sample.sql参数中:s 代表遇到错误时中止运行脚本v 代表输出结果到屏幕t 指以;号作为每行的分隔符f 指后面需跟脚本文件名如果希望即使遇到错误也不要中止运行脚本可以去掉参数s。如果脚本中没有分隔符,应去掉参数t。如果脚步中分隔符为其他字符,请用-td后接所使用的分隔符,例如如果使用的分隔符为@,可以用db2 -td@ -svf 脚本文件名 来执行脚本。 18. Quit 与 TerminateQuit和Terminate都可以退出DB2 CLP。但是Terminate同时终止了后台的进程并清空了所分配的内存。 19. 如何判断应用程序是否出现死锁现象在一次会话(SESSION)中,首先用UPDATE MONITOR SWITCHES USING LOCK ON命令打开开关,然后用GET SNAPSHOT FOR LOCKS ON
得到当前加在该数据库上的锁的情况。下面是一个应用程序死锁后快照的情况:Database Lock Snapshot Database name = SAMPLE... Application handle = SAMPLEApplication ID = *LOCAL.DB2.011226074903... Application status = Lock-wait... Application ID holding lock = *LOCAL.DB2.011226074931... Application handle = 9Application ID = *LOCAL.DB2.011226074931... Application status = Lock-wait... Application ID holding lock = *LOCAL.DB2.011226074903... 可以看出句柄为8和9的程序分别处于Lock-wait状态,而它们所需要的所又分别被对方拿住,造成死锁状态的形成。 20.数据库代码页不匹配login as db2inst1,运行db2set db2codepage=819db2 terminatedb2stopdb2start然后在客户端重新连接数据库。 21. 归档日志模式下哪些日志文件可以移走归档日志模式下,日志归档后数据库会生成新的活动日志,日志的生成从SQL0000000开始,直至SQL9999999,然后再从SQL0000000(如果SQL0000000存在将被覆盖)开始,重新生产日志。 考虑到日志目录空间大小的问题,可以将归档了的日志移走,如果确认归档了的日志没有用处,也可以用PRUNE命令删除,例如: PRUNE LOGFILE PRIOR TO S0000100.LOG或者用 GET DB CFG FOR
命令查看日志文件目录(Path to log files)参数确定数据库当前使用的日志文件目录。然后,从控制中心或着用 GET DB CFG FOR dbname 命令查看第一活动日志文件(First active log file)参数,该参数对应的日志文件之前的日志文件是可以移走的。安全起见,建议使用用户出口程序(userexit)导出归档日志。 22. Schema模式是一个标识符,它帮助分组表和其他数据库对象。模式可以归个人拥有,拥有者可以控制对数据以及其中的对象的存取。1) 模式是数据库中的对象。Create schema cardproSet schema cardpro2) 模式名用作两部分对象名的第一部分。创建一个对象时,可将其分配给特定模式。若不指定模式,则它被分配给缺省模式,缺省模式通常是创建该对象的人员的用户 ID。名称的第二部分是对象名。例如,cardpro.cp_sysprm。 23. 计算DB2 UDB的日志文件空间日志文件所需的空间量(以字节数计),其范围可以为: ( logprimary * (logfilsiz + 2 ) * 4096 ) + 8192 至 ( (logprimary + logsecond) * (logfilsiz + 2 ) * 4096 ) + 8192其中:logprimary 是在数据库配置文件中定义的主日志文件数 (logprimary=20)logsecond 是在数据库配置文件中定义的辅助日志文件数 (logsecond =60)logfilsiz 是在数据库配置文件中定义的每个日志文件中的页数 (logfilsiz=10000)2 是每个日志文件所需的标题页的数目* 4096 是一页中的字节数* 8192 是日志控制文件的大小(以字节计)。对于DB2 UDB V7.2而言,总的活动日志空间不能超过 32 GB。 例如:生产环境日志文件空间(20*(10000+2)*4096)+8192 ~ (20+60)*(10000+2)*4096)+8192 即781M ~ 3126M 每个日志文件的大小:10000*4096=39M 24. 如何将表空间的状态置为正常当使用load工具时,会使用一种持续状态的锁,它属于一个连接,当该连接所属的进程意外中止时,有时quiesce状态依然存在,其他客户端无法查询该表空间里的数据库的表。1) 连接到数据库2) List tablespaces 判断哪个tablespace处于quiesce状态,并取得object ID & tablesapce ID3) 判断object ID 对应的表4) db2 quiesce tablespaces for table
reset 26. backup and restorelog file: circular log & archival logbackup: offline & online1) db2 update db cfg for
using LOGRETAIN on2) db2 restart db
3) db2 backup db
to
Example1 :backup db online and restore to an existed databasedb2 “backup db
online to . without prompting”db2 “restore db
from . taken at
”db2 “rollforward db
to the end of logs and stop”or:db2 “rollforward db
to
and stop” Example2:backup tablespace online and restore to an new databasedb2 “backup db
online to . without prompting”db2 “restore db
from . taken at
into
”db2 “rollforward db
to the end of logs and stop” 25. Sequence1) create sequencedb2 "create sequence cardpro.autseq as integer start with 1 increment by 1 minvalue 1 maxvalue 999999999 cycle cache 10"2) alter sequencedb2 "alter sequence cardpro.indaccseq restart with 1 "3) drop sequencedb2 drop sequence cardpro.autseq restrict4) query sequencedb2 "select char(seqname,20),decimal(start,7) from sysibm.syssequences" 26. Database optimization db2 "reorg table
use tempspace1"db2 "runstats on table
and indexes all"db2 rebind
db2 “reorgchk update statistics on table
”ordb2 “reorgchk current statistics on table
” 27. Data managementImport, export, load, db2movedb2 "load from afintbl.txt of del modified by coldel^ decpt. implieddecimal keepblanks savecount 10000 messages loadfintbl.msg insert into cardpro.cp_fintbl"db2move
export –tn
-u
-p
db2move
import –u
-p
28. 修改表结构,属性db2 "ALTER TABLE
DATA CAPTURE NONE VOLATILE "db2 "ALTER TABLE
APPEND ON" 29. 修改bufferpool size大小login as db2inst1db2 "alter bufferpool ibmdefaultbp size 300000" 30. 表空间重定向恢复恢复数据库时,如果数据库表空间使用的容器(container)被别的数据库占用,那么在恢复时须要做表空间重定向。下面是一个表空间重定向的例子,数据库的别名为cardprod:1). 使用 restore database 加 redirect 参数:db2 "restore db cardprod from . taken at $TIMESTAMP to /cardpro/dbdir newlogpath /cardpro/prod/db2logs redirect without prompting"在第一步后,第三步前,数据库恢复可以用下面命令取消:db2 restore db cardprod abort2). 用 set tablespace containers 命令重定义容器db2 "set tablespace containers for 0 using (path "/cardpro/dbdir/db2inst1/NODE0000/SQL00001/SQLT0000.0")"db2 "set tablespace containers for 1 using (device '/dev/rapplv2' 589824, device '/dev/rapplv8' 589824 )"db2 "set tablespace containers for 3 using (file “/home/db2inst1/buff.dat 25000 )" 第二步中须要重定义所以需要做表空间重定向的容器。3). 成功运行第一步和第二步后,使用:db2 restore db mydb continue 完成恢复。如果第三步失败,重定向须要从第一步做起。

 

转载地址:http://ipfeo.baihongyu.com/

你可能感兴趣的文章
php socket编程入门
查看>>
总结一些常见的国际标准化组织
查看>>
Nmon命令行:Linux系统性能的监测利器
查看>>
Java连接Elasticsearch集群
查看>>
android 时间滚动控件 底部弹出
查看>>
HDU 5289 Assignment rmq
查看>>
Sublime-text markdown with Vim mode and auto preview
查看>>
CentOS6.5安装HBase集群及多HMaster配置
查看>>
Spring MVC 拦截 js,css,png 等资源
查看>>
Windows 7 共享文件夹 给 VirtualBox 中的 Ubuntu 14
查看>>
iOS开发UI篇—字典转模型
查看>>
Web接口测试工具--Jmeter
查看>>
[LeetCode] Remove K Digits 去掉K位数字
查看>>
spring profile 多环境配置管理
查看>>
iOS开发 iOS10推送必看
查看>>
C#设计模式——抽象工厂模式(Abstract Factory Pattern)
查看>>
软件测试--关键字
查看>>
nginx知识点
查看>>
字符串操作(字符数统计及字符串反转)
查看>>
递归写法参考
查看>>