常用的DB2命令

================================= 常用的DB2命令: ================================= db2cmd, db2cee, db2cc, 实例与数据库的概念。(与oracle比较) Db2一个实例可以对应多个数据库,一个数据库只能对应一个实例。Oracle 一个实例只能对应一个数据库。但是一个数据库可以对应多个实例。 1.查看db2 version: select * from sysibmadm.env_inst_info db2level select * from sysibm.sysversions db2pd -version 2.执行sql脚本: db2 -tvf c:/1.sql db2 -td/ -vf F:/db2-sql/stored-procedure/db2universal.sql 以/作为statement terminator character 3.db2服务 允许远程连接ControlCenter: db2admin start 关闭远程连接ControlCenter: db2admin stop 4.查询license是否过期 db2licm -l 5.有哪些db2 instance: db2 get instance db2ilist 6.对instance的管理 db2 get instance db2ilist db2icrt db2idrop 启动DB2 instance服务:db2start 关闭DB2 instance 服务: db2stop 强制db2 instance stop: db2stop force automatically start instance: db2iauto -on 设置实例系统启动时是否自动启动。 $ db2iauto -on 自动启动 $ db2iauto -off 不自动启动 7.编目维护: 本地连接本地数据库: 为数据库建立编目 $ db2 catalog db btpdbs on /db2catalog 取消已编目的数据库btpdbs $ db2 uncatalog db btpdbs 本地连接远程数据库: 建立编目 db2 catalog tcpip node mynode1 remote 9.186.116.171 server 50000 db2 catalog db adapter as adapter at node mynode1 db2 terminate db2 connect to adapter user db2admin using wbiadmin 取消编目 db2 uncatalog node mynode1 db2 uncatelog db adapter 8.查看有哪些functions和stored procedure: syscat.functions被syscat.routines所取代。 db2 select * from sysibm.sysfunctions where schema='DB2ADMIN' >>C:/TEMP/1.TXT db2 select funcname from syscat.functions where funcschema='DB2ADMIN' >>C:/TEMP/1.TXT ---- STORED PROCEDURES: SELECT ROUTINESCHEMA,ROUTINENAME FROM SYSCAT.ROUTINES WHERE ROUTINETYPE ='P' AND ROUTINESCHEMA = 'DB2ADMIN' ---FUNCTIONS SELECT ROUTINESCHEMA,ROUTINENAME FROM SYSCAT.ROUTINES WHERE ROUTINETYPE ='F' AND ORIGIN != 'S' AND ROUTINESCHEMA = 'DB2ADMIN' 9. schema的操作: db2 set schema btp 修改当前模式为"btp" db2 SELECT NAME FROM SYSIBM.SYSSCHEMATA 列出所有SCHEMA or db2 select schemaname from syscat.schemata db2 describe table syscat.schemata db2 list tables for all 列出当前数据库下所有的表 db2 list tables for user db2 list tables for system db2 list tables for schema btp 列出当前数据库中schema为btp的表 DB2 LIST TABLES [FOR {USER | ALL | SYSTEM | SCHEMA schema-name}] [SHOW DETAIL] 删除schema: DROP SCHEMA RPW RESTRICT; 创建Schema: CREATE SCHEMA RPW; 10.如何查看一些内存中的信息(dbm和database) db2pd -dynamic -db adapter -file c:/temp.txt 查看内存中的sql语句 Returns information the execution of dynamic SQL in "adapter" db. db2pd -db adapter -dynamic 查看内存中的sql statements ---------非常有用 db2 get snapshot for dynamic sql on adapter >c:/temp/stmt.txt ---------非常有用 db2 SELECT * FROM TABLE( SNAPSHOT_DYN_SQL( 'SAMPLE', -1 )) as SNAPSHOT_DYN_SQL ---------非常有用 db2pd -static -db adapter Returns information about the execution of static SQL and packages in "adapter" db. db2 SELECT * FROM TABLE( SNAPSHOT_STATEMENT( 'SAMPLE', -1 )) as SNAPSHOT_STATEMENT db2 select * from syscat.statements db2pd -activestatements -db adapter db2pd -catalogcache -db adapter db2pd -reopt -db adapter db2pd -transaction -db adapter 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 packages for all 11.查看application: db2 list applications 显示所有的session db2 Force application all; 强行使用户断开 与数据库的连接 db2 force application(hangle_id) 杀掉一个session db2 connect to user using 连接数据库 db2 connect reset 退出数据库 db2 disconnect db2 terminate 断开数据库连接 12.查看执行计划 db2expln –d 数据库名 –q "sql语句" -t for example: db2expln -d adapter -q "select * from customer" -t db2expln建议你把执行路径和索引情况分析分析 db2expln -d dbname -u db2inst1 password -t -g -f select.sql > explain.out 13.tablespace: create tablespace userspace1 managed by system using('f:/test/user') bufferpool test_bp create system temporary tablespace managed by system using('f:/test/systmp') bufferpool test_bp create user temporary tablespace managed by system using('f:/test/usertmp') bufferpool test_bp create bufferpool test_bp size 250 pagesize 32k not EXTENDED STORAGE create bufferpool pool_test size 250 pagesize 32k not EXTENDED STORAGE create bufferpool size [pagesize 4096] {[not] EXTENDED STORAGE} drop tablespace userspace1 13.数据库管理: db2 create database test drop database test db2 create database jhtest catalog tablespace managed by system using('d:/db2/jhtest/catalog') system temporary tablespace managed by system using('d:/db2/jhtest/systmp') 14.隔离级的更改 1)语句级别: db2 "select * from table WITH UR" 2)session级别:db2 set current isolation level = UR 3)永久:需要rebind package,具体请查询相关语法 4)CLI: TxnIsolation = 1 | 2 | 4 | 8 | 32 5) : db2 change isolation to ur 15.Runstats runstats on table table_name for detailed indexes all 16. 主题:db2的where条件执行顺序问题 前几天有个老师给讲sql语句的优化问题,提到oracle在处理where条件的时候是先处理最右边的比如select * from table where a>'**' and b<'**',数据库在执行的时候是先筛选b<'**'的条件,之后再筛选前面的条件 现在在用db2,请问, db2里面是怎么样的执行顺序呢? db2与ORACLE的机制不同,在ORACLE中可以在SQL指定很多优化器提示什么的,也有执行谓词的顺序。在db2中根据RUNSTAT的统计信息自己确定优化的,可能会重写,所以不一定是固定顺序。所以db2是基于统计信息的优化,不可以像ORACLE那样可以基于成本或性能等等灵活。 ============================ 帮助信息: ============================ db2set -h db2 ? db2 ? options db2 ? help db2 ? list tables db2 ? SQL0104N db2 ? DB21004E db2 ? list applications db2 list command options ------------------------------------- db2 [option ...] [db2-command | sql-statement |[? [phrase | message | sqlstate | class-code]]] option:-a、-c、-d、-e{c|s}、-finfile、-i、-lhistfile、-o、-m、-n、-p、-q、-rreport、-s、-t、-td;、-v、-w、-x 和 -zoutputfile。 db2-command: ACTIVATE DATABASE GET CONTACTS RECOVER ADD CONTACT GET/UPDATE DB CFG REDISTRIBUTE DB PARTITION ADD CONTACTGROUP GET/UPDATE DBM CFG REFRESH LDAP ADD DATALINKS MANAGER GET DBM MONITOR SWITCHES REGISTER LDAP ============================ 查看process或者thread情况: ============================ AIX,HP-UX,Linux: ps -fu or db2_local_ps Solaris: db2ptree General: db2pd -edus -allpartitionnums ========================= 查看内存分布情况: ========================= db2mtrk -i -v 查看instance memory db2mtrk -d -v 查看database memory db2mtrk -a -v 查看application memory db2 select * from syscat.bufferpools 查看tablespace上的bufferpool db2 get dbm cfg show detail ----INSTANCE_MEMORY db2 get db for adapter show detail ---DATABASE_MEMORY OR APP_MEMORY db2 "select * from table (sysproc.admin_get_dbp_mem_usage(-1)) as t" query overall memory consumption 一、加载数据: 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 -tvf c:/1.sql 七、清除数据库联接 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 "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 数据库优化命令: reorg、runstats 当数据库经过一段时间使用,数据空间会变得越来越庞大。一些delete掉的数据仍存放在数据库中,占用数据空间,影响系统性能。因此需要定期 运行reorg、runstats命令,清除已delete的数据,优化数据结构。 db2 reorg table 表名 db2 runstats on table 表名 with distribution and indexes all 因为要优化的表比较多,所以在/btp/bin目录下提供了一个sh程序runsall, 可在当天业务结束后,运行runsall,对数据库进行优化 ================================================ 快速参考: DB2命令行处理器(CLP)中的常用命令 ================================================ 这篇文章的读者是那些参与项目的人员,他们用 DB2 Everyplace 进行计划、设置和执行一个机动项目。计划要描述用 DB2 Everyplace 的机动项目的生命周期,进而减少开发强度和降低项目成本。我们的提示和建议都以参与用 DB2 Everyplace 版本 7.2 和 版本 7.2.1 的各种机动项目的现场人员的经验为依据。 简介 以下是最常用的 DB2 CLP 命令的快速参考。虽然不是一份完整的参考,但这篇文档对于任何刚接触 DB2 的用户来说,可以证明是案边有价值的参考材料。 方括号中的参数是可选参数,尖括号中的内容表示变量。例如,CONNECT 的语法是: connect to [ [user ] using ] 这意味着,通过 CONNECT 命令以 user1 身份使用密码 mypass 与数据库 sample 连接可以有下列形式: Connect to sample Connect to sample user user1 Connect to sample user user1 using mypass 根据命令的作用域来组织所有命令。对于任何 CLP 命令,您都可以输入加上前缀问号(“?”)的关键字,以查看其完整的语法。 实例 CLP 命令 描述 db2start 启动数据库管理器实例。 db2stop 停止数据库管理器实例。 get dbm cfg 返回数据库管理器配置设置。 get dbm cfg show detail 显示数据库管理器参数的当前值和延迟值(从 V8 起)。 update dbm cfg using

将数据库管理器配置参数

更新为值 。 get instance 返回 DB2INSTANCE 环境变量的值。 list active databases 列出活动的数据库和连接数。 list application [show detail] 返回关于当前连接的应用程序的信息。 force application (h1 [,h2,..,hn]) 根据句柄号与特定应用程序断开连接。 force application all 断开所有应用程序与数据库的连接。 attach to user using 以用户 通过使用密码 与标识为 的远程实例连接。 list database directory 数据库 create database 创建名为 的数据库。 activate database 显式地激活数据库。 deactivate database 显式地使数据库失效。 connect to [ [user ] using ] 根据需要,显式地以用户 和密码 与数据库 连接。 update dbm cfg using

将数据库管理器配置参数

更新为值 。 connect reset 断开与当前数据库的连接。 get db cfg show detail 显示数据库配置参数的当前值和延迟值(仅适用于 V8)。 get db cfg for 返回数据库 的数据库配置设置。 update db cfg for using

将数据库 的数据库配置参数

更新为值 。 list tables[for {user | all | system | schema }][show detail] 列出数据库中的表。如果没有指定任何参数,则缺省情况是列出当前用户的表。 describe table 显示一个表或视图的列信息。 list tablespaces [show detail] 显示表空间的标识、名称、类型、内容和状态。 list tablespace containers for [show detail] 显示用 指定的表空间的容器信息。 quiesce tablespaces for table reset 将表空间的状态复位成正常(normal)。 连接性 catalog [admin] node … 为协议 在节点目录中创建一项。 list [admin] node directory 返回节点目录的内容。 catalog database … 为数据库 在数据库目录中创建一项。 list database directory [on ] 返回数据库目录的内容。 db2 catalog tcpip node mynode1 remote 9.186.116.171 server 50000 db2 catalog db adapter as adapter at node mynode1 db2 terminate db2 connect to adapter user db2admin using wbiadmin drop: db2 uncatalog node mynode1 db2 uncatelog db adapter 性能 get monitor switches 返回会话监控开关的状态。 update monitor switches using 为 设置会话监控开关的状态。 reset monitor all 复位性能监控程序值。 get snapshot for dbm 返回实例级别的性能信息。 get snapshot for all on 为数据库 在数据库级别返回所有性能信息。 get snapshot for dynamic sql on 返回动态 SQL 高速缓存的内容。 runstats on table . 收集表 的统计信息。表名必须是用 全限定的。 reorgchk on table all 确定是否需要对表进行重组。这对于对所有表自动执行 runstats 很有用。 reorg table 通过重构行来消除“碎片”数据并压缩信息,对表进行重组。 管理 export 将数据库数据抽取到一个平面文件中。 import 通过使用 IMPORT 实用程序,将数据导入到数据库。 load query table [to local-message-file][nosummary | summaryonly] [showdelta] 返回 LOAD 实用程序的进度。 backup database [to ] 执行数据库备份。 restore database [from ] 执行数据库恢复。 get health snapshot for dbm 返回实例的正常快照信息(仅适用于 V8)。 get health snapshot for all on 返回数据库 的所有正常快照(仅适用于 V8)。 管理服务器 get admin cfg 返回管理服务器的配置设置。 update admin cfg using

将管理服务器配置参数

更新为值 。 应用程序开发 get routine into from [specific] procedure [hide body] 将 SQL 过程抽取成二进制文件。 put routine from [owner [use registers]] 从二进制文件部署 SQL 过程。 连接数据库: connect to [数据库名] user [操作用户名] using [密码] 创建缓冲池(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; 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; 注意db2不同于Oracle,user和schema是不同的概念。 1. 启动实例(db2inst1): db2start 2. 停止实例(db2inst1): db2stop 3. 列出所有实例(db2inst1) db2ilist 5.列出当前实例: db2 get instance 4. 察看示例配置文件: db2 get dbm cfg|more 5. 更新数据库管理器参数信息: db2 update dbm cfg using para_name para_value 6. 创建数据库: db2 create db test 7. 察看数据库配置参数信息 db2 get db cfg for test|more 8. 更新数据库参数配置信息 db2 update db cfg for test using para_name para_value 10.删除数据库: db2 drop db test 11.连接数据库 db2 connect to test 12.列出所有表空间的详细信息。 db2 list tablespaces show detail 13.查询数据: db2 select * from tb1 14.删除数据: db2 delete from tb1 where id=1 15.创建索引: db2 create index idx1 on tb1(id); 16.创建视图: db2 create view view1 as select id from tb1 17.查询视图: db2 select * from view1 18.节点编目 db2 catalog tcp node node_name remote server_ip server server_port 19.察看端口号 db2 get dbm cfg|grep SVCENAME 20.测试节点的附接 db2 attach to node_name 21.察看本地节点 db2 list node direcotry 22.节点反编目 db2 uncatalog node node_name 23.数据库编目 db2 catalog db db_name as db_alias at node node_name 24.察看数据库的编目 db2 list db directory 25.连接数据库 db2 connect to db_alias user user_name using user_password 26.数据库反编目 db2 uncatalog db db_alias 27.导出数据 db2 export to myfile of ixf messages msg select * from tb1 28.导入数据 db2 import from myfile of ixf messages msg replace into tb1 29.导出数据库的所有表数据 db2move test export 30.生成数据库的定义 db2look -d db_alias -a -e -m -l -x -f -o db2look.sql 31.创建数据库 db2 create db test1 32.生成定义 db2 -tvf db2look.sql 33.导入数据库所有的数据 db2move db_alias import 34.重组检查 db2 reorgchk 35.重组表tb1 db2 reorg table tb1 36.更新统计信息 db2 runstats on table tb1 37.备份数据库test db2 backup db test 38.恢复数据库test db2 restore db test 399/.列出容器的信息 db2 list tablespace containers for tbs_id show detail 40.创建表: db2 ceate table tb1(id integer not null,name char(10)) 41.列出所有表 db2 list tables 42.插入数据: db2 insert into tb1 values(1,’sam’); db2 insert into tb2 values(2,’smitty’); 一、常用命令 1. 建立数据库DB2_GCB CREATE DATABASE DB2_GCB ON G: ALIAS DB2_GCB USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM DFT_EXTENT_SZ 32 2. 连接数据库 connect to sample1 user db2admin using 8301206 3. 建立别名 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; 4. 建立表 create table zjt_tables as (select * from tables) definition only; create table zjt_views as (select * from views) definition only; 5. 插入记录 insert into zjt_tables select * from tables; insert into zjt_views select * from views; 6. 建立视图 create view V_zjt_tables as select tabschema,tabname from zjt_tables; 7. 建立触发器 CREATE TRIGGER zjt_tables_del AFTER DELETE ON zjt_tables REFERENCING OLD AS O FOR EACH ROW MODE DB2SQL Insert into zjt_tables1 values(substr(o.tabschema,1,8),substr(o.tabname,1,10)) 8. 建立唯一性索引 CREATE UNIQUE INDEX I_ztables_tabname [size=3]ON zjt_tables(tabname); 9. 查看表 select tabname from tables where tabname='ZJT_TABLES'; 10. 查看列 select SUBSTR(COLNAME,1,20) as 列名,TYPENAME as 类型,LENGTH as 长度 from columns where tabname='ZJT_TABLES'; 11. 查看表结构 db2 describe table user1.department db2 describe select * from user.tables 12. 查看表的索引 db2 describe indexes for table user1.department 13. 查看视图 select viewname from views where viewname='V_ZJT_TABLES'; 14. 查看索引 select indname from indexes where indname='I_ZTABLES_TABNAME'; 15. 查看存贮过程 SELECT SUBSTR(PROCSCHEMA,1,15),SUBSTR(PROCNAME,1,15) FROM SYSCAT.PROCEDURES; 16. 类型转换(cast) ip datatype:varchar select cast(ip as integer)+50 from log_comm_failed 17. 重新连接 connect reset 18. 中断数据库连接 disconnect db2_gcb 19. view application LIST APPLICATION; 20. kill application FORCE APPLICATION(0); db2 force applications all (强迫所有应用程序从数据库断开) 21. lock table lock table test in exclusive mode 22. 共享 lock table test in share mode 23. 显示当前用户所有表 list tables 24. 列出所有的系统表 SELECT NAME FROM SYSIBM.SYSSCHEMATA 列出所有SCHEMA list tables for system 25. 显示当前活动数据库 list active databases 26. 查看命令选项 list command options 27. 系统数据库目录 LIST DATABASE DIRECTORY 28. 表空间 list tablespaces 29. 表空间容器 LIST TABLESPACE CONTAINERS FOR Example: LIST TABLESPACE CONTAINERS FOR 1 30. 显示用户数据库的存取权限 GET AUTHORIZATIONS 31. 启动实例 DB2START 32. 停止实例 db2stop 33. 表或视图特权 grant select,delete,insert,update on tables to user grant all on tables to user WITH GRANT OPTION 34. 程序包特权 GRANT EXECUTE ON PACKAGE PACKAGE-name TO PUBLIC 35. 模式特权 GRANT CREATEIN ON SCHEMA SCHEMA-name TO USER 36. 数据库特权 grant connect,createtab,dbadm on database to user 37. 索引特权 grant control on index index-name to user 38. 信息帮助 (? XXXnnnnn ) 例:? SQL30081 39. SQL 帮助(说明 SQL 语句的语法) help statement 例如,help SELECT 40. SQLSTATE 帮助(说明 SQL 的状态和类别代码) ? sqlstate 或 ? class-code 41. 更改与"管理服务器"相关的口令 db2admin setid username password 42. 创建 SAMPLE 数据库 db2sampl db2sampl F:(指定安装盘) 43. 使用操作系统命令 ! dir 44. 转换数据类型 (cast) SELECT EMPNO, CAST(RESUME AS VARCHAR(370)) FROM EMP_RESUME WHERE RESUME_FORMAT = 'ascii' 45. UDF 要运行DB2 Java存储过程或 UDF,还需要更新服务器上的 DB2 数据库管理程序配置,以包括在该机器上安装 JDK 的路径 db2 update dbm cfg using JDK11_PATH d:sqllibjavajdk TERMINATE update dbm cfg using SPM_NAME sample 46. 检查 DB2 数据库管理程序配置 db2 get dbm cfg 47. 检索具有特权的所有授权名 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 create table yhdab (id varchar(10), password varchar(10), ywlx varchar(10), kh varchar(10)); create table ywlbb (ywlbbh varchar(8), ywmc varchar(60)) 48. 修改表结构 alter table yhdab alter kh set DATA TYPE varchar(13); alter table yhdab alter ID set DATA TYPE varchar(13); alter table lst_bsi alter bsi_money set data type int; insert into yhdab values ('20000300001','123456','user01','20000300001'), ('20000300002','123456','user02','20000300002'); 49. 业务类型说明 insert into ywlbb values ('user01','业务申请'), ('user02','业务撤消'), ('user03','费用查询'), ('user04','费用自缴'), ('user05','费用预存'), ('user06','密码修改'), ('user07','发票打印'), ('gl01','改用户基本信息'), ('gl02','更改支付信息'), ('gl03','日统计功能'), ('gl04','冲帐功能'), ('gl05','对帐功能'), ('gl06','计费功能'), ('gl07','综合统计') 二. 目录视图说明 说明 目录视图 检查约束 SYSCAT.CHECKS 列 SYSCAT.COLUMNS 检查约束引用的列 SYSCAT.COLCHECKS 关键字中使用的列 SYSCAT.KEYCOLUSE 数据类型 SYSCAT.DATATYPES 函数参数或函数结果 SYSCAT.FUNCPARMS 参考约束 SYSCAT.REFERENCES 模式 SYSCAT.SCHEMATA 表约束 SYSCAT.TABCONST 表 SYSCAT.TABLES 触发器 SYSCAT.TRIGGERS 用户定义函数 SYSCAT.FUNCTIONS 视图 SYSCAT.VIEWS 三. 字符串类型 二进制大对象 (BLOB) 字符串。 字符大对象 (CLOB) 字符串,它的字符序列可以是单字节字符或多字节字符, 或这两者的组合。 双字节字符大对象 (DBCLOB) 字符串,它的字符序列是双字节字符。 四. 数据库范式 第一种规范形式:表中的每一行和每一列均有一个值,永远不会是一组值。 第二种规范形式:不在关键字中的每一列提供取决于整个关键字的事实。 第三种规范形式:每个非关键字列提供与其他非关键字列无关并只取决于该关键字的事实。 第四种规范形式:没有行包含有关一个实体的两个或更多个独立的多值事实。 五. 数据类型 数据类型 类型 特性 示例或范围 CHAR(15) 定长字符串 最大长度为 254 'Sunny day ' VARCHAR(15) 变长字符 最大长度为 4000 'Sunny day' SMALLINT 数字 长度为 2 字节精度为 5 位范围为-32768 至 32767 INTEGER 数字 长度为 4 字节精度为 10 位范围为-2147483648 至 2147483647 REAL 数字 单精度浮点32 位近似值 范围为-3.402E+38至-1.175E-37或 1.175E-37 至-3.402E+38或零 DOUBLE 数字 双精度浮点64 位近似值 范围为-1.79769E+308 至-2.225E-307或 2.225E-307 至 1.79769E+308或零 DECIMAL(5,2) 数字 精度为 5小数位为 2 范围为 -10**31+1 至 10**31-1 DATE 日期时间 三部分值 1991-10-27 TIME 日期时间 三部分值 13.30.05 TIMESTAMP 日期时间 七部分值 1991-10-27-13.30.05.000000 六. 列函数 列函数对列中的一组值进行运算以得到单个结果值。下列就是一些列函数的示例。 AVG 返回某一组中的值除以该组中值的个数的和 COUNT 返回一组行或值中行或值的个数 MAX 返回一组值中的最大值 MIN 返回一组值中的最小值 七. 标量函数 标量函数对值进行某个运算以返回另一个值。 下列就是一些由DB2 通用数据库提供的标量函数的示例。 ABS 返回数的绝对值 HEX 返回值的十六进制表示 LENGTH 返回自变量中的字节数(对于图形字符串则返回双字节字符数。) YEAR 抽取日期时间值的年份部分 备份数据库: 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; 以下是小弟在使用db2move中的一些经验,希望对大家有所帮助。 db2 connect to YOURDB 连接数据库 db2look -d YOURDB -a -e -x -o creatab.sql 导出建库表的SQL db2move YOURDB export 用db2move将数据备份出来 vi creatab.sql 如要导入的数据库名与原数据库不同,要修改creatab.sql中CONNECT 项 如相同则不用更改 db2move NEWDB load 将数据导入新库中 在导入中可能因为种种原因发生中断,会使数据库暂挂 db2 list tablespaces show detail 如: 详细说明: 装入暂挂 总页数 = 1652 可用页数 = 1652 已用页数 = 1652 空闲页数 = 不适用 高水位标记(页) = 不适用 页大小(字节) = 4096 盘区大小(页) = 32 预读取大小(页) = 32 容器数 = 1 状态更改表空间标识 = 2 状态更改对象标识 = 59 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表 数据库会恢复正常,可再用db2 list tablespaces show detail查看 30.不能通过GRANT授权的权限有哪种? SYSAM SYSCTRL SYSMAINT 要更该述权限必须修改数据库管理器配置参数 31.表的类型有哪些? 永久表(基表) 临时表(说明表) 临时表(派生表) 32.如何知道一个用户有多少表? SELECT* FROM SYSIBM.SYSTABLESWHERECREATOR='USER' 33.如何知道用户下的函数? select * from IWH.USERFUNCTION select * from sysibm.SYSFUNCTIONS 34.如何知道用户下的VIEW数? select * from sysibm.sysviews WHERECREATOR='USER' 35.如何知道当前DB2的版本? select * from sysibm.sysversions 36.如何知道用户下的TRIGGER数? select * from sysibm.SYSTRIGGERS WHERE SCHEMA='USER' 37.如何知道TABLESPACE的状况? select * from sysibm.SYSTABLESPACES 38.如何知道SEQUENCE的状况? select * from sysibm.SYSSEQUENCES 39.如何知道SCHEMA的状况? select * from sysibm.SYSSCHEMATA 40.如何知道INDEX的状况? select * from sysibm.SYSINDEXES 41.如何知道表的字段的状况? select * from sysibm.SYSCOLUMNS WHERE TBNAME='AAAA' 42.如何知道DB2的数据类型? select * from sysibm.SYSDATATYPES 43.如何知道BUFFERPOOLS状况? select * from sysibm.SYSBUFFERPOOLS 44.DB2表的字段的修改限制? 只能修改VARCHAR2类型的并且只能增加不能减少. 45.如何查看表的结构? DESCRIBE TABLE TABLE_NAME OR DESCRIBE SELECT * FROM SCHEMA.TABLE_NAME ===================== db2所有命令: ===================== ACTIVATE DATABASE GET CONTACTS RECOVER ADD CONTACT GET/UPDATE DB CFG REDISTRIBUTE DB PARTITION ADD CONTACTGROUP GET/UPDATE DBM CFG REFRESH LDAP ADD DATALINKS MANAGER GET DBM MONITOR SWITCHES REGISTER LDAP ADD DBPARTITIONNUM GET DESCRIPTION FOR HEALTH REGISTER XMLSCHEMA ADD XMLSCHEMA GET NOTIFICATION LIST REGISTER XSROBJECT ARCHIVE LOG GET HEALTH SNAPSHOT REORG INDEXES/TABLE ATTACH GET INSTANCE REORGCHK AUTOCONFIGURE GET MONITOR SWITCHES RESET ADMIN CFG BACKUP DATABASE GET RECOMMENDATIONS RESET ALERT CFG BIND GET ROUTINE RESET DB CFG CATALOG APPC NODE GET SNAPSHOT RESET DBM CFG CATALOG APPN NODE HELP RESET MONITOR CATALOG DATABASE HISTORY RESTART DATABASE CATALOG DCS DATABASE IMPORT RESTORE DATABASE CATALOG LDAP DATABASE INITIALIZE TAPE REWIND TAPE CATALOG LDAP NODE INSPECT ROLLFORWARD DATABASE CATALOG LOCAL NODE LIST ACTIVE DATABASES RUNCMD CATALOG NPIPE NODE LIST APPLICATIONS RUNSTATS CATALOG NETBIOS NODE LIST COMMAND OPTIONS SET CLIENT CATALOG ODBC DATA SOURCE LIST DATABASE DIRECTORY SET RUNTIME DEGREE CATALOG TCPIP NODE LIST DB PARTITION GROUPS SET TABLESPACE CONTAINERS CHANGE DATABASE COMMENT LIST DATALINKS MANAGERS SET TAPE POSITION CHANGE ISOLATION LEVEL LIST DBPARTITIONNUMS SET UTIL_IMPACT_PRIORITY COMPLETE XMLSCHEMA LIST DCS APPLICATIONS SET WRITE CREATE DATABASE LIST DCS DIRECTORY START DATABASE MANAGER CREATE TOOLS CATALOG LIST DRDA INDOUBT START HADR DEACTIVATE DATABASE LIST HISTORY STOP DATABASE MANAGER DECOMPOSE XML DOCUMENT LIST INDOUBT TRANSACTIONS STOP HADR DEREGISTER LIST NODE DIRECTORY TAKEOVER HADR DESCRIBE LIST ODBC DATA SOURCES TERMINATE DETACH LIST PACKAGES/TABLES UNCATALOG DATABASE DROP CONTACT LIST TABLESPACE CONTAINERS UNCATALOG DCS DATABASE DROP CONTACTGROUP LIST TABLESPACES UNCATALOG LDAP DATABASE DROP DATABASE LIST UTILITIES UNCATALOG LDAP NODE DROP DATALINKS MANAGER LOAD UNCATALOG NODE DROP DBPARTITIONNUM LOAD QUERY UNCATALOG ODBC DATA DROP TOOLS CATALOG MIGRATE DATABASE UNQUIESCE DATABASE ECHO PING UNQUIESCE INSTANCE EDIT PREP/PRECOMPILE UPDATE ALERT CFG EXPORT PRUNE HISTORY/LOGFILE UPDATE COMMAND OPTIONS FORCE APPLICATION PUT ROUTINE UPDATE CONTACT GET/UPDATE ADMIN CFG QUERY CLIENT UPDATE CONTACTGROUP GET ALERT CFG QUIESCE DATABASE UPDATE NOTIFICATION LIST GET AUTHORIZATIONS QUIESCE INSTANCE UPDATE HISTORY GET/UPDATE CLI CFG QUIESCE TABLESPACES UPDATE LDAP NODE GET CONNECTION STATE QUIT UPDATE MONITOR SWITCHES GET CONTACTGROUP REBIND XQUERY GET CONTACTGROUPS RECONCILE Note: Some commands are operating system specific and may not be available. For further help: ? db2-command - help for specified command ? OPTIONS - help for all command options ? HELP - help for reading help screens The preceding three options can be run as db2 from an OS prompt. !db2ic - DB2 Information Center (Windows only) This command can also be run as db2ic from an OS prompt.

你可能感兴趣的:(数据库)