db2SQL命令

来源:互联网 发布:粒子群算法c代码 编辑:程序博客网 时间:2024/06/10 14:34

db2SQL命令

export to tempfile of del select * from TABLENAME where not 清理条件;

load from tempfile of del modified by delprioritychar replace into TABLENAME nonrecoverable

 

调整数据库参数。
%db2 connect to wisg
%db2 UPDATE DB CFG FOR wisg USING LOGBUFSZ        512  
日志缓冲区大小(4KB

%db2 UPDATE DB CFG FOR wisg USING LOCKLIST        512   
锁定列表的最大存储量(4KB

%db2 UPDATE DB CFG FOR wisg USING APP_CTL_HEAP_SZ 512   
最大应用程序控制堆大小(4KB

%db2 UPDATE DB CFG FOR wisg USING SORTHEAP        25000 
排序列表堆(4KB

%db2 UPDATE DB CFG FOR wisg USING MAXLOCKS        60  
每个应用程序的锁定百分比列表

%db2 UPDATE DB CFG FOR wisg USING NUM_IOCLEANERS  4 
异步页清除程序的数目

%db2 UPDATE DB CFG FOR wisg USING NUM_IOSERVERS   6  I/O
服务器的数目

%db2 UPDATE DB CFG FOR wisg USING logfilsiz       160000   
日志文件大小(4KB

%db2 UPDATE DB CFG FOR wisg USING LOGPRIMARY      3  
主日志文件的数目

%db2 UPDATE DB CFG FOR wisg USING LOCKTIMEOUT      60  
锁的超时时间

%db2 UPDATE DBM CFG USING HEALTH_MON off   
关闭健康监控中心

%db2 UPDATE DBM CFG USING START_STOP_TIME 3 
启动停止超时时间

%db2 terminate

79. db2
创建用户

1.
在系统中创建一个用户

2.
db2inst1链接数据
:db2 connect to das
3.
给新用户赋权限
:db2 grant connect on database to user XXX

80.
启动数据库监听

db2set DB2COMM=tcpip
db2stop force
db2start

db2优化:

db2inst1用户登录,调整实例参数,并测试启动是否成功。


#su - db2inst1
%db2start
%db2 UPDATE DBM CFG USING SHEAPTHRES 125000   
共享排序的排序堆域值(4KB

%db2set DB2_PARALLEL_IO=* 
所有表空间将使用每个容器主轴数等于 6 的缺省值。预取大小比启用并行 I/O 时大 6 倍。 所有表空间均会启用并行 I/O。预取请求分解成多个较小请求,每个请求等于预取大小除以扩展数据块大小后的值(或等于容器数乘以主轴数)。

%db2set DB2_SKIPINSERTED=on
%db2set DB2_EVALUNCOMMITTED=on
为了提高并发性,DB2(R) 现在允许在某些情况下对 CS RS 隔离扫描延迟行锁定,直到知道一条记录满足查询的谓词为止。 缺省情况下,当在表扫描或索引扫描期间执行行锁定时,DB2 会先锁定已扫描的每一行然后再确定该行是否符合查询要求。 为了提高扫描的并发性,可以延迟行锁定,直到确定某行符合查询要求为止。


要利用此功能,应启用 DB2_EVALUNCOMMITTED 注册表变量。


%db2set DB2_SKIPDELETED=on
如果启用了 DB2_SKIPDELETED 注册表变量,则 DB2 在类型 2 索引扫描中将跳过已删除的键。

%db2stop

77. 数据库调优
db2untag -f /dev/raw/raw1
db2untag -f /dev/raw/raw2
db2untag -f /dev/raw/raw3
db2untag -f /dev/raw/raw4
db2 update db cfg using newlogpath /dev/raw/raw4
db2 update db cfg using logfilsiz 20480
db2 update db cfg using logprimary 15
db2 update db cfg using logsecond 5
db2 update db cfg using PCKCACHESZ 51200
堆中没有足够的存储器可用来处理语句
:db2 update db cfg using APP_CTL_HEAP_SZ 1000
statement is too long or too complex:db2 update db cfg using STMTHEAP 4096
db2 alter bufferpool ibmdefaultbp size 102400

78.
创建裸设备

#fdisk –l
#fdisk /dev/sdb
其中/dev/sdb为阵列的一个盘

输入“n”创建新分区

输入“p”创建主分区。

输入“1”,指定分区号为
1
选择默认值1,按键盘上的“Enter”

选择默认值51200,按键盘上的“Enter”

输入“p”查看分区信息

输入“t”改变分区
ID
输入“1”指定分区号为1。输入“8e”指定ID8e8eLVM类型分区

输入“p”查看分区信息

输入“w”,上述设置生效并退出

创建物理卷
#pvcreate -ff /dev/sdb1
创建逻辑卷组
#vgcreate -s 64M -v db2dg /dev/sdb1
创建逻辑卷
#lvcreate -l 160 –n  db2vol01 db2dg
#lvcreate -L 5120M -n db2vol02 db2dg
#lvcreate -L 5120M -n db2vol03 db2dg
查看创建的卷组和逻辑卷。
#vgdisplay –v
创建文件系统。
#mkfs -t ext3 /dev/db2dg/db2vol01
挂载文件系统。
#mkdir /db2vol01
#mount /dev/db2dg/db2vol01 /db2vol01
#chown –R db2inst1:db2grp1 /db2vol01
挂载文件系统。

#mkdir /db2vol01
#mount /dev/db2dg/db2vol01 /db2vol01
#chown –R db2inst1:db2grp1 /db2vol01
关于目录/home/db2inst1,具体的操作如下:

#cd /home/db2inst1
#tar cvf /home/db2.tar .*
#cd /opt/IBM/db2/V8.1/instance
#./db2idrop db2inst1
#mount /dev/db2dg/db2vol10 /home/db2inst1
#cd /home/db2inst1
#tar xvf /home/db2.tar
#chown –R db2inst1:db2grp1 /home/db2inst1
把逻辑卷链接到裸设备上。

#raw /dev/raw/raw1 /dev/db2dg/db2vol02
#raw /dev/raw/raw2 /dev/db2dg/db2vol03
#raw /dev/raw/raw3 /dev/db2dg/db2vol04
#raw /dev/raw/raw4 /dev/db2dg/db2vol05
改变裸设备的属组。

#chown -R db2inst1:db2grp1 /dev/raw/raw1
#chown -R db2inst1:db2grp1 /dev/raw/raw2
#chown -R db2inst1:db2grp1 /dev/raw/raw3
#chown -R db2inst1:db2grp1 /dev/raw/raw4

73. 检索具有特权的所有授权名
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'DATABASE' FROM SYSCAT.DBAUTH UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'TABLE ' FROM SYSCAT.TABAUTH UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'PACKAGE ' FROM SYSCAT.PACKAGEAUTH UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'INDEX ' FROM SYSCAT.INDEXAUTH UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'COLUMN ' FROM SYSCAT.COLAUTH UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'SCHEMA ' FROM SYSCAT.SCHEMAAUTH UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'SERVER ' FROM SYSCAT.PASSTHRUAUTH
ORDER BY GRANTEE, GRANTEETYPE, 3
74.
修改表结构

alter table yhdab ALTER kh SET DATA TYPE varchar(13);
alter table lst_bsi alter bsi_money set data type int;
75.
备份数据库:

CONNECT TO EXOA;
QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS;
CONNECT RESET;
BACKUP DATABASE EXOA TO "/home/exoa2/db2bak/" WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 WITHOUT PROMPTING;
CONNECT TO EXOA;
UNQUIESCE DATABASE;
CONNECT RESET;
76.
查看是哪张表挂起
:db2 select tabname,tableid from syscat.tables where tableid=59
表名知道后到db2move.lst(db2move  YOURDB  export的目录中)中找到相应的.ixf文件

db2 load from tab11.ixf of ixf terminate into db2admin.xxxxxxxxx
tab11.ixf
对应的是xxxxxxxxx

51. view applicationLIST APPLICATION;
52. kill application
FORCE APPLICATION(0);
db2 force applications all (
强迫所有应用程序从数据库断开
)
53. lock table
lock table test in exclusive mode
54.
共享:
lock table test in share mode
55.
列出所有的系统表:
list tables for system
56.
显示当前活动数据库:
list active databases
57.
查看命令选项
list command options
58.
表空间:
list tablespaces
59.
表空间容器:LIST TABLESPACE CONTAINERS FOR
Example: LIST TABLESPACE CONTAINERS FOR 1
60.
显示用户数据库的存取权限:
GET AUTHORIZATIONS
61.
表或视图特权
:grant select,delete,insert,update on tables to user
grant all on tables to user WITH GRANT OPTION
62.
程序包特权
:GRANT EXECUTE ON PACKAGE PACKAGE-name TO PUBLIC
63.
模式特权
:GRANT CREATEIN ON SCHEMA SCHEMA-name TO USER
64.
数据库特权
:grant connect,createtab,dbadm on database to user
65.
索引特权
:grant control on index index-name to user
66.
信息帮助 (? XXXnnnnn):
:? SQL30081
67. SQL
帮助(说明 SQL 语句的语法
):help statement
68. SQLSTATE
帮助(说明 SQL 的状态和类别代码):? sqlstate
? class-code
69.
更改与"管理服务器"相关的口令
:db2admin setid username password
70.
使用操作系统命令
:! dir
71.
转换数据类型
(cast)
SELECT EMPNO, CAST(RESUME AS VARCHAR(370)) FROM EMP_RESUME WHERE RESUME_FORMAT = 'ascii'
72. UDF:
要运行 DB2 Java 存储过程或 UDF,还需要更新服务器上的 DB2 数据库管理程序配置,以包括在该机器上安装 JDK 的路径

db2 update dbm cfg using JDK11_PATH d:sqllibjavajdk
TERMINATE
update dbm cfg using SPM_NAME sample

31. 重组检查:db2 reorgchk
32.
重组表tb1
db2 reorg table tb1
33.
更新统计信息:
db2 runstats on table tb1
34.
备份数据库test
db2 backup db test
35.
恢复数据库test
db2 restore db test
36.
列出容器的信息:
db2 list tablespace containers for tbs_id show detail
37.
列出所有表:
db2 list tables
38.
建立别名

create alias db2admin.tables for sysstat.tables;
CREATE ALIAS DB2ADMIN.VIEWS FOR SYSCAT.VIEWS
create alias db2admin.columns for syscat.columns;
create alias guest.columns for syscat.columns;
39.
建立触发器

CREATE TRIGGER zjt_tables_del
AFTER DELETE ON zjt_tables
REFERENCING OLD AS O
FOR EACH ROW MODE DB2SQL
40.
建立唯一性索引:
CREATE UNIQUE INDEX I_ztables_tabname ON zjt_tables(tabname);
41.
查看表:
select tabname from tables where tabname='ZJT_TABLES';
42.
查看列 select SUBSTR(COLNAME,1,20) as 列名,TYPENAME as 类型,LENGTH as 长度
from columns where tabname='ZJT_TABLES';
43.
查看表结构 db2 describe table user1.department

db2 describe select * from user.tables
44.
查看表的索引:
db2 describe indexes for table user1.department
45.
查看视图:
select viewname from views where viewname='V_ZJT_TABLES';
46.
查看索引:
select indname from indexes where indname='I_ZTABLES_TABNAME';
47.
查看存贮过程:
SELECT SUBSTR(PROCSCHEMA,1,15),SUBSTR(PROCNAME,1,15) FROM SYSCAT.PROCEDURES;
48.
类型转换
(cast)
ip datatype:varchar
select cast(ip as integer)+50 from log_comm_failed
49.
重新连接:
connect reset
50.
中断数据库连接:disconnect db2_gcb


1.
启动实例(db2inst1):db2start
2.
停止实例
(db2inst1):db2stop
3.
列出所有实例(db2inst1)
db2ilist
4.
列出当前实例
:db2 get instance
5.
察看示例配置文件
:db2 get dbm cfg|more
6.
更新数据库管理器参数信息
:db2 update dbm cfg using para_name para_value
7.
察看数据库配置参数信息:
db2 get db cfg for test|more
8.
更新数据库参数配置信息:
db2 update db cfg for test using para_name para_value
9.
删除数据库
:db2 drop db test
10.
连接数据库:
db2 connect to test
11.
列出所有表空间的详细信息:
db2 list tablespaces show detail
12.
创建索引
:db2 create index idx1 on tb1(id);
13.
创建视图
:db2 create view view1 as select id from tb1
14.
查询视图
:db2 select * from view1
15.
节点编目:
db2 catalog tcp node node_name remote server_ip server server_port
16.
察看端口号:
db2 get dbm cfg|grep SVCENAME
17.
测试节点的附接:
db2 attach to node_name
18.
察看本地节点:
db2 list node direcotry
19.
节点反编目:
db2 uncatalog node node_name
20.
数据库编目:
db2 catalog db db_name as db_alias at node node_name
21.
察看数据库的编目:
db2 list db directory
22.
连接数据库:
db2 connect to db_alias user user_name using user_password
23.
数据库反编目:
db2 uncatalog db db_alias
24.
导出数据:
db2 export to myfile of ixf messages msg select * from tb1
25.
导入数据:
db2 import from myfile of ixf messages msg replace into tb1
26.
导出数据库的所有表数据:
db2move test export
27.
生成数据库的定义:
db2look -d db_alias -a -e -m -l -x -f -o db2look.sql
28.
生成定义:
db2 -tvf db2look.sql
29.
加载脚本: db2 –td@ -vf filename,其中@为命令行的分隔符

30.
导入数据库所有的数据:db2move db_alias import


创建数据库
在文件上创建数据库:

CREATE DATABASE das USING CODESET 'UTF-8' TERRITORY 'CN' CATALOG TABLESPACE MANAGED BY DATABASE USING (file 'd:/db2data/dascat.dat' 102400) EXTENTSIZE 16 PREFETCHSIZE 32 USER TABLESPACE MANAGED BY DATABASE USING (file 'd:/db2data/dasusr.dat' 102400) EXTENTSIZE 256 PREFETCHSIZE 64 TEMPORARY TABLESPACE MANAGED BY DATABASE USING (file 'd:/db2data/dastmp.dat' 102400) EXTENTSIZE 256 WITH "DAS DB"

在裸设备上创建数据库

CREATE DATABASE das212 CATALOG TABLESPACE MANAGED BY DATABASE USING (device '/dev/db2dg/lv_dat01' 10240000) EXTENTSIZE 16 PREFETCHSIZE 32 USER TABLESPACE MANAGED BY DATABASE USING (device '/dev/db2dg/lv_dat02' 10240000) EXTENTSIZE 256 PREFETCHSIZE 64 TEMPORARY TABLESPACE MANAGED BY DATABASE USING (device '/dev/db2dg/lv_dat03' 10240000) EXTENTSIZE 256 WITH "DAS DB"


GRANT USE OF TABLESPACE exoatbs TO PUBLIC;
GRANT USE OF TABLESPACE exoatbs16k TO PUBLIC;
GRANT USE OF TABLESPACE exoatbs32k TO PUBLIC;

创建系统表空间:
  CREATE TEMPORARY TABLESPACE exoasystmp IN DATABASE PARTITION GROUP IBMTEMPGROUP PAGESIZE 8K  MANAGED BY SYSTEM USING ('/home/exoa2/exoasystmp'   ) EXTENTSIZE 32 PREFETCHSIZE 16 BUFFERPOOL IBMDEFAULT8K  OVERHEAD 24.10 TRANSFERRATE 0.90  DROPPED TABLE RECOVERY OFF;

  CREATE TEMPORARY TABLESPACE exoasystmp16k IN DATABASE PARTITION GROUP IBMTEMPGROUP PAGESIZE 16K MANAGED BY SYSTEM USING ('/home/exoa2/exoasystmp16k'  ) EXTENTSIZE 32 PREFETCHSIZE 16 BUFFERPOOL IBMDEFAULT16K OVERHEAD 24.10 TRANSFERRATE 0.90  DROPPED TABLE RECOVERY OFF;
CREATE TEMPORARY TABLESPACE exoasystmp32k IN DATABASE PARTITION GROUP IBMTEMPGROUP PAGESIZE 32K MANAGED BY SYSTEM USING ('/home/exoa2/exoasystmp32k') EXTENTSIZE 32 PREFETCHSIZE 16 BUFFERPOOL IBMDEFAULT32K OVERHEAD 24.10 TRANSFERRATE 0.90  DROPPED TABLE RECOVERY OFF;

创建缓冲池(8K)
  create bufferpool ibmdefault8k IMMEDIATE  SIZE 5000 PAGESIZE 8 K ;
创建缓冲池(16K)(OA_DIVERTASKRECORD)

  create bufferpool ibmdefault16k IMMEDIATE  SIZE 5000 PAGESIZE 16 K ;
创建缓冲池(32K)(OA_TASK)

  create bufferpool ibmdefault32k IMMEDIATE  SIZE 5000 PAGESIZE 32 K ;

创建表空间:

  CREATE TABLESPACE exoatbs IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 8K MANAGED BY SYSTEM USING ('/home/exoa2/exoacontainer') EXTENTSIZE 32 PREFETCHSIZE 16  BUFFERPOOL IBMDEFAULT8K  OVERHEAD 24.10 TRANSFERRATE 0.90  DROPPED TABLE RECOVERY OFF;
  CREATE TABLESPACE exoatbs16k  IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 16K MANAGED BY SYSTEM USING ('/home/exoa2/exoacontainer16k'   ) EXTENTSIZE 32  PREFETCHSIZE 16  BUFFERPOOL IBMDEFAULT16K  OVERHEAD 24.1 TRANSFERRATE 0.90  DROPPED TABLE RECOVERY OFF;
  CREATE TABLESPACE exoatbs32k  IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 32K MANAGED BY SYSTEM USING ('/home/exoa2/exoacontainer32k'   ) EXTENTSIZE 32  PREFETCHSIZE 16  BUFFERPOOL IBMDEFAULT32K  OVERHEAD 24.1 TRANSFERRATE 0.90  DROPPED TABLE RECOVERY OFF;

说明:
在不相关的数据表export数据时,可以采取并发的形式,以提高效率;

TABLENAME
指待清理table的名称;

modified by delprioritychar
防止数据库记录中存在换行符,导致数据无法装入的情况
;
replace into
对现数据库中的内容进行替换,即将现行的数据记录清理,替换为数据文件内容;

nonrecoverable
无日志方式装入;

  connect to [
数据库名] user [操作用户名] using [密码]