共计 9785 个字符,预计需要花费 25 分钟才能阅读完成。
本篇内容介绍了“db2 数据库常用操作命令总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
本文详细汇总了 DB2 的常用操作命令,分享给大家。对于使用 db2 的朋友可以参考下。
DB2 数据库管理客户端从 v9.7 版本之后就不再带有控制中心了,而是使用 Data Studio Client。安装 DB2 数据库产品期间不会应用许可证密钥。但是,下列产品没有激活 CD,因此会在安装这些产品的过程中自动应用其许可证:DB2 Express-C 和 DB2 Connect 个人版。此外,DB2 个人版也是一个特殊案例。虽然 DB2 个人版具有激活 CD,但是会在安装该产品的过程中自动应用其许可证。
注意: 执行命令前需要进入 DB2 的账户下:su db2inst1
修改密码:更改相应的操作系统密码即可,windows 上可以更改 db2admin 的密码,linux 上更改 db2inst1 的密码即可,db2 的数据库密码是和操作系统绑定的,就像大家说的只需要修改操作系统上用户的密码就可以了。你想改那个用户的密码你就在操作系统上改那个用户的密码。
1、打开命令行窗口
复制代码 代码如下:
#db2cmd
2、打开控制中心
复制代码 代码如下:
# db2cmd db2cc
3、打开命令编辑器
复制代码 代码如下:
db2cmd db2ce
一、加载数据:
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
九、恢复数据库
1、db2 restore db btpdbs without rolling forward
2、db2 -tvf crtdb.sql
crtdb.sql 文件内容:
复制代码 代码如下:
create db btpdbs on /db2catalog
db2 -stvf crttbl.sql
db2move btpdbs import
十、DB2 帮助命令:
db2 ?
db2 ? restroe
db2 ? sqlcode (例:db2 ? sql0803) 注:code 必须为 4 位数,不够 4 位,前面补 0
十一、bind 命令:将应用程序与数据库作一捆绑, 每次恢复数据库后,建议都要做一次 bind
(1) db2 bind br8200.bnd
(2) /btp/bin/bndall /btp/bnd
/btp/bin/bndall /btp/tran/bnd
十二、查看数据库参数:
复制代码 代码如下:
db2 get dbm cfg
db2 get db cfg for btpdbs
十三、修改数据库参数:
复制代码 代码如下:
db2 update db cfg for btpdbs using LOGBUFSZ 20
db2 update db cfg for btpdbs using LOGFILSIZ 5120
改完后,应执行以下命令使其生效:
复制代码 代码如下:
db2 stop
db2 start
补充:
db2 set schema btp 修改当前模式为 btp
db2 list tablespaces show detail 查看当前数据库表空间分配状况
db2 list tablespace containers for 2 show detail 查看 tablespace id= 2 使用容器所在目录
db2 list application
db2 list db directory 列出所有数据库
db2 list active databases 列出所有活动的数据库
db2 list tables for all 列出当前数据库下所有的表
db2 list tables for schema btp 列出当前数据库中 schema 为 btp 的表
db2 list tablespaces show detail 显示数据库空间使用情况
db2 list packages for all
db2 import from tab76.ixf of ixf commitcount 5000 insert into achact
db2 create table achact_t like achact
db2 rename table achact_t to achact
db2 insert into achact_t select * from achact where txndt =(select lstpgdt from
acmact where actno=achact.actno)
db2 get snapshot for dynaimic sql on jining
删除一个实例:
复制代码 代码如下:
# cd /usr/lpp/db2_07_01/instance
# ./db2idrop InstName
列出所有 DB2 实例:
复制代码 代码如下:
# cd /usr/lpp/db2_07_01/bin
# ./db2ilist
为数据库建立编目
复制代码 代码如下:
$ db2 catalog db btpdbs on /db2catalog
取消已编目的数据库 btpdbs
复制代码 代码如下:
$ db2 uncatalog db btpdbs
查看版本
复制代码 代码如下:
# db2level
显示当前数据库管理实例
复制代码 代码如下:
$ db2 get instance
设置实例系统启动时是否自动启动。
$ db2iauto -on 自动启动
$ db2iauto -off 不自动启动
数据库优化命令:
reorg、runstats
当数据库经过一段时间使用,数据空间会变得越来越庞大。一些 delete 掉
的数据仍存放在数据库中,占用数据空间,影响系统性能。因此需要定期
运行 reorg、runstats 命令,清除已 delete 的数据,优化数据结构。
db2 reorg table 表名
db2 runstats on table 表名 with distribution and indexes all
因为要优化的表比较多,所以在 /btp/bin 目录下提供了一个 sh 程序 runsall,
可在当天业务结束后,运行 runsall,对数据库进行优化
在 DB2 的开发过程中,贯穿整个开发过程还有很重要的一部分工作就是数据库的维护;对于维护一个庞大信息系统来说是非常必要的;留一份简易的维护手册,以备不时之需;以下收集到的部分维护命令,以飨我们的维护工程师和项目经理。
DB2 常用命令总结
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
19
复制代码 代码如下:
select * from czyxx fetch first 1 rows only
20
复制代码 代码如下:
db2look –d ylbx –u db2admin –w –asd –a –e –o a.txt
21. 显示当前用户所有表
复制代码 代码如下:
list tables
22. 列出所有的系统表
复制代码 代码如下:
list tables for system
23. 查看表结构
复制代码 代码如下:
db2 describe select * from user.tables
24. 查看死锁明细
复制代码 代码如下:
db2 get snapshot for locks on yourdatdabasename
用 df -k 命令看看是否有些文件系统没有空间.
26、备份数据库
#db2 backup db db name
备注:执行以上命令之前需要断开数据库连接
27、在线备份数据库
复制代码 代码如下:
#db2 -v BACKUP DATABASE database name ONLINE TO path WITH 2 BUFFERS BUFFER 1024 INCLUDE LOGS WITHOUT PROMPTING
28、恢复数据库
复制代码 代码如下:
#db2 restore db source db name
29、在线恢复数据库
复制代码 代码如下:
#db2 RESTORE DB database name TO db path LOGTARGET logpath WITHOUT PROMPTING
#db2 ROLLFORWARD DB database name TO END OF LOGS AND STOP …
30、导出数据文件
复制代码 代码如下:
#db2move db name export
[-sn 模式名称,一般为 db2admin]
[-tn 表名,多个之间用逗号分隔]
31、导入数据文件
复制代码 代码如下:
#db2move db name import
32、获取 db2 数据库管理配置环境信息
复制代码 代码如下:
#db2 get dbm cfg
33、. 获取 db2 某个数据库数据库管理配置环境信息
复制代码 代码如下:
#db2 get db cfg for db name
或者:连接至某个数据库以后执行 db2 get db cfg
34、更改 db2 日志空间的大小
备注:以下命令为了防止 db2 数据库过份使用硬盘空间而设,仅用于开发者自己机器上的 db2,如果是服务器,则参数需要修改。
复制代码 代码如下:
#db2 UPDATE DB CFG FOR db name USING logretain OFF logprimary 3 logsecond 2 logfilsiz 25600;
如果页大小是 4KB,则以上命令创建 3 个 100M 的日志文件,占用 300MB 硬盘空间。25600*4KB=102400KB。
35、创建临时表空间
复制代码 代码如下:
#DB2 CREATE USER TEMPORARY TABLESPACE STMASPACE PAGESIZE 32 K MANAGED BY DATABASE USING (FILE D:\DB2_TAB\STMASPACE.F1 10000)
EXTENTSIZE 256
36、获取数据库管理器的快照数据
复制代码 代码如下:
#db2 –v get snapshot for dbm
37、显示进行程号
复制代码 代码如下:
#db2 list applications show detail
38、更改 db2 日志空间的大小
备注:以下命令为了防止 db2 数据库过份使用硬盘空间而设,仅用于开发者自己机器上的 db2,如果是服务器,则参数需要修改。
# db2 UPDATE DB CFG FOR db name USING logretain OFF logprimary 3 logsecond 2 logfilsiz 25600;
如果页大小是 4KB,则以上命令创建 3 个 100M 的日志文件,占用 300MB 硬盘空间。25600*4KB=102400KB。
39、创建临时表空间
复制代码 代码如下:
#DB2 CREATE USER TEMPORARY TABLESPACE STMASPACE PAGESIZE 32 K MANAGED BY DATABASE USING (FILE D:\DB2_TAB\STMASPACE.F1 10000) EXTENTSIZE 256
40、创建表空间
rem 创建缓冲池空间 8K
复制代码 代码如下:
#db2 connect to gather
#db2 CREATE BUFFERPOOL STMABMP IMMEDIATE SIZE 25000 PAGESIZE 8K
rem 创建表空间:STMA
rem 必须确认路径正确
rem D:\DB2Container\Stma
#db2 drop tablespace stma
#db2 CREATE REGULAR TABLESPACE STMA PAGESIZE 8 K MANAGED BY SYSTEM USING (D:\DB2Container\Stma) EXTENTSIZE 8 OVERHEAD 10.5 PREFETCHSIZE 8 TRANSFERRATE 0.14 BUFFERPOOL STMABMP DROPPED TABLE recovery OFF
#db2 connect reset
41、将暂挂的数据恢复到前滚状态
复制代码 代码如下:
#db2 ROLLFORWARD DATABASE TESTDB TO END OF LOGS AND COMPLETE NORETRIEVE
42、备份表空间
复制代码 代码如下:
#BACKUP DATABASE YNDC TABLESPACE (USERSPACE1) TO D:\temp WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 WITHOUT PROMPTING
43、创建 db2 工具数据库
复制代码 代码如下:
#db2 create tools catalog systools create new database toolsdb
44、如何进行增量 / 差量备份
增量:上一次完整备份至本次备份之间增加的数据部分;
差量(delta):上次备份以来(可能是完整备份、增量备份或者差量备份)至本次备份之间增加的数据部分;
45、更新所有表的统计信息
复制代码 代码如下:
#db2 -v connect to DB_NAME
#db2 -v select tbname, nleaf, nlevels, stats_timefrom sysibm.sysindexes
#db2 -v reorgchkupdate statistics on table all
#db2 -v select tbname, nleaf, nlevels, stats_timefrom sysibm.sysindexes
#db2 -v terminate
46、对一张表运行统计信息
复制代码 代码如下:
#db2 -v runstatson table TAB_NAMEand indexes all
47、查看是否对数据库执行了 RUNSTATS
复制代码 代码如下:
#db2 -v select tbname, nleaf, nlevels,stats_timefrom sysibm.sysindexes
48、更改缓冲池的大小
缓冲池中,当 syscat.bufferpools 的 npages 是 - 1 时,由数据库的配置参数 bufferpage 控制缓冲池的大小。
将 npages 的值更改为 - 1 的命令:
#db2 -v connect to DB_NAME
#db2 -v select * from syscat.bufferpools
#db2 -v alter bufferpoolIBMDEFAULTBP size -1
#db2 -v connect reset
#db2 -v terminate
更改数据库配置参数 BufferPages 的命令如下:
#db2 -v update db cfgfor dbnameusing BUFFPAGE bigger_value
#db2 -v terminate
49、看数据库监视内容列表
复制代码 代码如下:
#db2 -v get monitor switches
50、打开某个数据库监视内容
复制代码 代码如下:
#db2 -v update monitor switches using bufferpoolon
51、获取数据库快照
复制代码 代码如下:
#db2 -v get snapshot for all databases snap.out
#db2 -v get snapshot for dbm snap.out
#db2 -v get snapshot for all bufferpools snap.out
#db2 -v terminate
52、重置数据库快照
复制代码 代码如下:
#db2 -v reset monitor all
53、计算缓冲池命中率
理想情况下缓冲池命中率在 95% 以上,计算公式如下:
(1 -((buffer pool data physical reads + buffer pool index physical reads)
/(buffer pool data logical reads + pool index logical reads))) *100%
54、创建 db2 实例
#db2icrt 实例名称
55、删除 db2 实例
#db2idrop 实例名称
56、设置当前 db2 实例
#set db2intance=db2
57、显示 db2 拥有的实例
#db2ilist
58、恢复离线增量备份数据库的命令
复制代码 代码如下:
#DB2 RESTORE DATABASE YNDC INCREMENTAL AUTOMATIC FROM D:\backup\autobak\db2 TAKEN AT 20060314232015
59、创建样本数据库
在 unix 平台,使用:
#sqllib/bin/db2sampl path
在 windows,os/ 2 平台,使用:db2sampl e,e 是可选参数,指定将创建数据库的驱动器
60、设置联合数据库为可用(默认联合数据库不可用)
复制代码 代码如下:
#db2 update dbm cfg using federated yes
61、列出数据库中所有的表
#db2 list tables
62、数据迁移方法 1
export 脚本示例
复制代码 代码如下:
#db2 connect to testdb user test password test
#db2 export to aa1.ixf of ixf select * from table1
#db2 export to aa2.ixf of ixf select * from table2
#db2 connect reset
import 脚本示例
复制代码 代码如下:
#db2 connect to testdb user test password test
#db2 load from aa1.ixf of ixf replace into table1 COPY NO without prompting
#db2 load from aa2.ixf of ixf replace into table2 COPY NO without prompting
“db2 数据库常用操作命令总结”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!