DB2

Get Started. It's Free
or sign up with your email address
Rocket clouds
DB2 by Mind Map: DB2

1. 数据库管理

1.1. 命令行窗口CW

1.1.1. db2cmd

1.1.2. 设置不自动提交

1.1.2.1. 会话级别

1.1.2.1.1. db2 +c

1.1.2.2. 全局

1.1.2.2.1. db2set DB2OPTIONS='+c'

1.2. 命令行处理器CLP

1.2.1. db2cmd->db2

1.2.2. 执行SQL脚本

1.2.2.1. db2 connect to macao; db2 [email protected] -vf <File>;

1.2.3. OPTIONS

1.2.3.1. 显示

1.2.3.1.1. LIST COMMAND OPTIONS

1.2.3.1.2. 含义

1.3. 实例

1.3.1. 建实例

1.3.1.1. db2icrt instance_name

1.3.1.1.1. 生成实例目录

1.3.2. 所有实例

1.3.2.1. db2ilist

1.3.3. 删除实例

1.3.3.1. db2idrop instance_name

1.3.3.1.1. 实例目录被删除

1.3.4. 关闭实例

1.3.4.1. db2stop

1.3.4.2. db2stop force

1.3.5. 切换数据库实例

1.3.5.1. 当前实例

1.3.5.1.1. db2 get instance

1.3.5.2. 切换实例

1.3.5.2.1. set DB2INSTANCE=DB2CTLSV

1.3.6. 实例与数据库的关系

1.3.7. 实例日志

1.3.7.1. 实例目录\db2diag.log

1.3.7.1.1. 记录起停、出错警告信息

1.3.8. 实例的数据库版本

1.3.8.1. db2level

1.4. Database Administrator Server[DAS]

1.4.1. 作用

1.4.1.1. 如果某个DB2实例希望被远程管理,那么数据库本地必须配置DAS,才能被远端的Control Center进行注册,类似于Oracle 9i enterprise console中的agent (oracle 9i之后就淘汰了)

1.4.2. 名称

1.4.2.1. db2set -all

1.4.2.1.1. DB2ADMINSERVER

1.4.3. 一台数据库服务器只能启动一个DAS

1.4.4. 启停

1.4.4.1. db2admin start

1.4.4.2. db2admin stop

1.4.5. 创建删除

1.4.5.1. db2admin create

1.4.5.2. db2admin drop/dasdrop

1.4.6. 当前配置信息

1.4.6.1. db2 get admin cfg

1.4.7. 修改DAS当前配置

1.4.7.1. db2 update admin cfg using xxx xx

1.4.8. reset当前配置

1.4.8.1. db2 reset admin cfg

1.5. DBM

1.5.1. 查看当前配置

1.5.1.1. db2 get dbm cfg/db2 get database configuration

1.6. 数据库

1.6.1. 建库

1.6.1.1. create database you

1.6.1.1.1. 日志文件

1.6.1.1.2. 配置信息

1.6.1.1.3. 历史文件

1.6.1.1.4. 3个默认表空间

1.6.2. 删库

1.6.2.1. drop database you

1.6.3. 命令行连接/断开

1.6.3.1. connect to you

1.6.3.2. connect reset

1.6.3.3. quit

1.6.4. 当前实例的所有数据库

1.6.4.1. list db directory

1.6.5. 列出激活的数据库

1.6.5.1. list active databases

1.6.6. 列出当前数据库的所有配置

1.6.6.1. get db cfg

1.6.7. 强制断开应用的数据库连接

1.6.7.1. db2 force applications all

1.6.7.1.1. 一般用于db2stop无法停止数据库的时候

1.6.7.2. 指定数据库

1.6.7.2.1. Linux/Unix

1.6.8. 列出连接数据库的所有应用

1.6.8.1. db2 list application for database fxorder show detail

1.6.9. 启动/停止(单个数据库)

1.6.9.1. db2 terminate db2 deactivate database fxorder db2 activate database

1.7. 表空间

1.7.1. 新建

1.7.1.1. CREATE TABLESPACE TBSPFXORDER01 IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 8K MANAGED BY SYSTEM USING ('D:\dev\db2\tbs\TBSPFXORDER01' ) EXTENTSIZE 32 PREFETCHSIZE 16 BUFFERPOOL IBMDEFAULT8K OVERHEAD 24.10 TRANSFERRATE 0.90 DROPPED TABLE RECOVERY [email protected] GRANT USE OF TABLESPACE TBSPFXORDER01 TO [email protected]

1.7.2. 删除

1.7.2.1. DROP TABLESPACE <tablespace_name>

1.7.3. 表空间类型

1.7.3.1. SMS

1.7.3.2. DMS

1.7.3.2.1. 容器可为文件系统或者裸设备

1.7.3.3. DMS自动存储

1.7.3.4. 三种表空间类型对比

1.7.3.5. 自动和非自动DMS对比

1.7.4. 当前数据库的所有表空间

1.7.4.1. list tablespaces show detail

1.7.5. 查看表空间对应的容器

1.7.5.1. list tablespace containers for 0

1.7.5.2. 对应Oracle的数据文件

1.7.6. 两个不同的数据库可以有具有相同名称的表空间

1.8. 缓冲池

1.8.1. 创建

1.8.2. 删除

1.8.2.1. drop bufferpool <buffer pool name>

1.8.3. 修改

1.8.3.1. 大小

1.8.3.1.1. alter bufferpool <buffer pool name> size number of pages

1.8.4. 查询表空间使用的缓冲池

1.8.4.1. select a.tbspace,a.bufferpoolid,b.bpname from syscat.tablespaces a,syscat.bufferpools b where a.bufferpoolid=b.bu fferpoolid

1.8.5. 缓冲池与表空间关系

1.8.5.1. 一个表空间只能与一个缓冲池相关联 一个缓冲池则可用于多个表空间

1.9. Schema

1.9.1. 系统模式

1.9.1.1. SYSIBM\SYSFUN\SYSPROC

1.9.2. 当前schema

1.9.2.1. select current schema from sysibm.sysdummy1

1.9.3. 所有schema

1.9.3.1. select * from sysibm.sysschemata

1.9.4. 创建

1.9.4.1. 显示

1.9.4.1.1. create schema xxx

1.9.4.2. 隐式

1.9.4.2.1. create table xxx.xxx(id int)

1.9.5. 切换

1.9.5.1. set current schema testss

1.9.6. 删除

1.9.6.1. 删除schema需要使用restrict关键字,而且该schema中无对象存在

1.9.6.1.1. drop table xff.t_xifenfei drop schema xff

1.9.7. 与Oracle用户的区别

1.9.7.1. 在DB2中的schema的概念和ORACLE中的概念有着本质的区别: 在ORACLE中schema和用户是同一个; 在DB2中schema不一定是用户,因为db2内部没有用户的概念,连接用户必须是操作系统用户; 连接DB2的用户即为当前操作系统的登陆用户

1.10. 乱码

1.10.1. 代码页

1.10.1.1. 操作系统

1.10.1.1.1. windows

1.10.1.1.2. linux

1.10.1.2. db2codepage

1.10.1.2.1. get db cfg

1.10.1.2.2. db2set db2codepage=??

1.10.1.3. database codepage

1.10.1.3.1. 必须在建库时进行设置, 无法修改。

1.11. 导入导出

1.11.1. export

1.11.1.1. export to "c:\myfile.del" of del messages "c:\msg.out" select * from test where id=1

1.11.2. import

1.11.2.1. import from "c:\myfile.del" of del messages "c:\msg.out" insert into test

1.12. 查看错误帮助

1.12.1. db2 ? sql1025

1.13. 性能优化

1.13.1. 统计信息

1.13.1.1. 手工收集

1.13.1.1.1. db2 runstats on table fxorder.contract and index all

1.13.1.2. 自动收集

1.13.1.3. 查看

1.13.2. 性能测试

1.13.2.1. db2batch -d you -f db2batch.sql

1.13.3. 锁与并发

1.13.3.1. 事务

2. 数据库对象管理

2.1. 表格

2.1.1. 新建

2.1.1.1. CREATE TABLE test.BASBANK( BankID VARCHAR(20) NOT NULL PRIMARY KEY, RoleID VARCHAR(200), DispName VARCHAR(60), BankLevel CHAR(1), BankCode VARCHAR(20), Head VARCHAR(20), ChsName VARCHAR(60), EngName VARCHAR(60), Remark VARCHAR(80) )IN TBSPFXORDER01

2.1.2. 删除

2.1.2.1. drop table xxx.xxx

2.1.3. 清空

2.1.3.1. delete from xxx.xxx[较慢]

2.1.3.2. alter table xxx.xxx activate not logged initially with empty table[较快]

2.1.3.3. truncate xxx.xxx drop storage immediate;--v9.7之后

2.1.4. 复制表

2.1.4.1. 复制表结构

2.1.4.1.1. create table testlike like test

2.1.4.2. 复制表结构和内容

2.1.4.2.1. CONNECT TO YOU; EXPORT TO "D:\dev\db2\WEBCPTAB.IXF" OF IXF MESSAGES "D:\dev\db2\WEBCPTAB.EXM" SELECT * FROM TEST.TEST WHERE ID=1; IMPORT FROM "D:\dev\db2\WEBCPTAB.IXF" OF IXF MESSAGES "D:\dev\db2\WEBCPTAB.IMM" CREATE INTO MZH.ASDFADFADF; CONNECT RESET;

2.1.4.3. 复制表内容

2.1.4.3.1. insert into testlike select * from test

2.1.5. 列出用户表

2.1.5.1. list tables

2.1.6. 列出系统表

2.1.6.1. list tables for system

2.1.7. 列出所有表

2.1.7.1. list tables for all

2.1.8. 列出表结构

2.1.8.1. describe table syscat.schemata

2.1.9. 分区表

2.1.9.1. 创建

2.1.9.1.1. CREATE TABLE PART_MAIN( P_ID VARCHAR(10), P_DATE DATE ) PARTITION BY RANGE(P_DATE) ( PARTITION OTHERS STARTING MINVALUE ENDING '2012-03-31', PARTITION P201204 STARTING '2012-04-01' ENDING '2012-04-30', PARTITION P201205 STARTING '2012-05-01' ENDING '2012-05-31', PARTITION P201206 STARTING '2012-06-01' ENDING '2012-06-30', PARTITION P201212 STARTING '2012-12-01' ENDING '2012-12-31' )

2.1.9.2. 增加分区

2.1.9.2.1. ALTER TABLE PART_MAIN ADD PARTITION P201212 STARTING '2012-12-01' ENDING '2012-12-31'

2.1.10. 表连接

2.1.10.1. 交叉连接

2.1.10.1.1. select * from testcopy a,testtarget b where a.test1=b.test2

2.1.10.2. 左连接

2.1.10.2.1. select * from testcopy a left join testtarget b on a.test1=b.test2 where a.test1=1

2.1.10.3. 右连接

2.1.10.3.1. select * from testcopy a right join testtarget b on a.test1=b.test2 where a.test1=1

2.1.11. 字段

2.1.11.1. 字段类型

2.1.11.1.1. 时间

2.1.11.1.2. 数值

2.1.11.1.3. 字符型

2.1.11.2. 自增

2.1.11.2.1. 序列

2.1.11.3. 字段注释

2.1.11.3.1. select t.Remarks as 注释,t.* from syscat.COLUMNS t where tabschema='FXORDER' and tabname=upper('contract')

2.2. 索引

2.2.1. 创建

2.2.1.1. create index idxtest on mzh.test(id)

2.2.1.2. 指定表空间只能在建表的时候指定

2.2.1.2.1. create table mzh.testidxtbs(id int) in TBSPFXORDER01 index in tbsindex

2.2.2. 查询某个表上的索引

2.2.2.1. select NAME,CREATOR,COLNAMES ,UNIQUERULE,COLCOUNT,NLEVELS from sysibm.sysindexes where TBNAME ='TEST'

2.2.3. 删除

2.2.3.1. drop index idxtest

2.3. 视图

2.3.1. 创建

2.3.1.1. create view mzh.testview as select * from mzh.test

2.3.2. 删除

2.3.2.1. drop view mzh.testview

2.4. 触发器

2.5. 存储过程

2.5.1. 创建

2.5.1.1. create procedure mzh.testinsert() begin DECLARE I INT default 0; while i<100000 do insert into mzh.testcopy values(1,1,1,'test',2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2); SET I=I+1; end while; commit; end @

2.5.2. 删除

2.5.2.1. drop procedure mzh.testinsert

3. 其他

3.1. 下载DB2 10.5

3.2. 官方文档位置

3.2.1. http://www-01.ibm.com/support/docview.wss?rs=71&uid=swg27038856#cn_main

4. 连接

4.1. JDBC连接

4.1.1. dataSource.url=jdbc:db2://127.0.0.1:50000/fxorder dataSource.username=administrator [email protected]

4.1.2. com.ibm.db2.jcc.DB2Driver

4.2. 编目[catalog]

4.2.1. 对应的物理文件

4.2.1.1. 实例目录\SQLNODIR

4.2.1.2. 实例目录\SQLDBDIR

5. 安装

5.1. http://wenku.baidu.com/view/903a9cd3195f312b3169a529.html