db2数据库常用操作命令总结

64次阅读
没有评论

共计 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 小编将为大家输出更多高质量的实用文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-04发表,共计9785字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)