1。创建数据库 例如:db2 create database [数据库名称]using codeset GBK territory zh_CN
2。数据库参数
db2 update database cfg for db_name using applheapsz 256 指定每一单个代理程序可用的应用程序堆的大小(以页为单位)。
UPDATE DATABASE CONFIGURATION FOR DBNAME USING APP_CTL_HEAP_SZ 256;确定应用程序堆的最大大小(以 4 KB 页为单位)。为在代表 MPP 或 SMP 系统中节点上相同应用程序的运行的代理程序间共享信息时需要使用堆。如果应用程序复杂将运行或者 MPP 配置有大量节点,则应增加此堆的大小。
UPDATE DATABASE CONFIGURATION FOR DBNAME USING APPGROUP_MEM_SZ 11595;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING CATALOGCACHE_SZ 260;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING CHNGPGS_THRESH 60;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING DBHEAP 600;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING LOCKLIST 50;指定分配给锁列表的存储器空间数量。锁列表包括并行连接到数据库的所有应用程序保留的锁
UPDATE DATABASE CONFIGURATION FOR DBNAME USING LOGBUFSZ 98;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING LOGFILSIZ 2500;指定分配给用于数据恢复的日志文件的磁盘存储空间的数量(以页为单位)。该参数定义每一主日志文件和辅助日志文件的大小。
UPDATE DATABASE CONFIGURATION FOR DBNAME USING LOGPRIMARY 3;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING LOGSECOND 4;指定可用于数据库恢复的辅助日志文件的数量。
UPDATE DATABASE CONFIGURATION FOR DBNAME USING MAXAPPLS 250;指定可在同一时间连接到数据库的应用程序(本地和远程)的最大数量。
UPDATE DATABASE CONFIGURATION FOR DBNAME USING MAXLOCKS 57;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING MINCOMMIT 1;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING NUM_IOCLEANERS 1;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING NUM_IOSERVERS 2;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING PCKCACHESZ 915;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING SOFTMAX 120;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING SORTHEAP 214;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING STMTHEAP 2048;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING DFT_DEGREE 1;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING DFT_PREFETCH_SZ 32;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING UTIL_HEAP_SZ 78735;
UPDATE DATABASE MANAGER CONFIGURATION USING SHEAPTHRES 25797;
UPDATE DATABASE MANAGER CONFIGURATION USING INTRA_PARALLEL OFF;
UPDATE DATABASE MANAGER CONFIGURATION USING MAX_QUERYDEGREE 1;
UPDATE DATABASE MANAGER CONFIGURATION USING MAXAGENTS 400;
UPDATE DATABASE MANAGER CONFIGURATION USING NUM_POOLAGENTS 400;
UPDATE DATABASE MANAGER CONFIGURATION USING NUM_INITAGENTS 0;
UPDATE DATABASE MANAGER CONFIGURATION USING FCM_NUM_BUFFERS 4096;
UPDATE DATABASE MANAGER CONFIGURATION USING PRIV_MEM_THRESH 32767;
3.可以使用db2set -all 察看系统中设置的所有配置文件注册表变量。
4。db2 -tvf *.sql -z view.txt 可以执行脚本文件,即输出到view.txt察看。
5. db2 管理方面的命令
list db directory 列出系统数据库目录
二。数据库操作的常用技巧
1. 查看本地节点目录
命令窗口中输入:db2 list node directory
2. 编目一个TCP/IP节点
命令窗口:db2 catalog tcpip node <node_name> remote <hostname|ip_address> server <svcname|port_number> ostype <OS2|AIX|WIN95|NT|HPUX|SUN|MVS|OS400|VM|VSE|SCO|SGI|LINUX|DYNIX> 3. 取消节点编目
db2 uncatalog node <node_name> 4. 查看系统数据库目录
db2 list database directory 5. 查看本地数据库目录
db2 list database directory on <盘符>
在本地数据库目录中有而系统数据库目录中没有的数据库不能访问,可以在控制中心中选中<数据库>右键单击选择添加,然后输入需要添加的数据库名称或者点击刷新按钮选择数据库,加入数据库后即可以访问。 6. 编目数据库
db2 catalog database <db_name> as <db_alias> at node <node_name> 7. 取消数据库编目
db2 uncatalog database <db_name> 8. 测试远程数据库的连接
db2 connect to <db_alias> user <user_id> using <password> 9. 任何用户均可通过设置Current Schema专用寄存器为特定的数据库连接设置默认模式,初始默认值为当前会话用户的权限ID。
set schema = <schema name>
可以由用户交互式的使用,也可在应用程序中使用,如果用Dynamicrules Bind选项绑定包,这个语句就没有作用。此语句不在事务控制之下。 10. 代码页的设置
在创建数据库时设置字符集
create database <db_name> using codeset <codeset> territory <territiry>
例:
create database dbtest using codeset IBM-437 territory US
也可以设置整个数据库的代码页,在win2000/NT/xp中,在我的电脑-->属性-->高级-->环境变量中添加变量DB2CODEPAGE = <codepage>,例:DB2CODEPAGE = 437 或 DB2CODEPAGE = 1386。或者在IBM DB2命令窗口输入 db2set DB2CODEPAGE=1386,设置后需要重新启动DB2生效。 11. DB2低版本数据到高版本的迁移
先将低版本数据备份使用恢复功能导入高版本数据库,然后在命令窗口输入 db2 migrate database <db_name>。 12. 表名或模式中含有引号时访问表
命令窗口:db2 select * from "tabschema"."tabname"
命令行处理器:db2=> select * from "tabschema"."tabname" 13. 导出数据库的表结构生成DDL文件
命令窗口:db2look -d <db_name> -e -c -o <file_name> 14. 执行脚本文件
命令窗口:db2 -tvf <file_name> 15. 代码页的转换
16. 获取当前DB2的版本
select * from sysibm.sysversions 17. DB2表的字段的修改限制?
只能修改VARCHAR2类型的并且只能增加不能减少
alter table <tb_name> alter column <col_name> set data type varchar(SIZE) 18. 如何查看表的结构?
describe table <tb_name>
or
describe select * from <schema>.<tb_name> 19. 如何快速清除一个大表?
ALTER TABLE TABLE_NAME ACTIVE NOT LOGGED INITALLY WITH EMPTY TABLE 20. 如何查看数据库的存储过程?
SELECT * FROM SYSCAT.PROCEDURES 21. 如何查看表的约束?
SELECT * FROM SYSCAT.CHECKS WHERE TABNAME = <tb_name> 22. 如何查看表的引用完整约束?
SELECT * FROM SYSCAT.REFERENCES WHERE TABNAME = <tb_name> 23. 如何知道BUFFERPOOLS状况?
select * from SYSCAT.BUFFERPOOLS 24. 如何在命令行下查看修改实例和数据库配置参数?
查看实例配置参数: db2 get dbm cfg
修改实例配置参数: db2 update dbm cfg using 参数名 新值 查看数据库配置参数: db2 get db cfg for <db_name>
修改数据库配置参数: db2 update db cfg for <db_name> using 参数名 新值 25. 如何修改缓冲区?
增加缓冲区: create bufferpool <buf_name> size <number of pages> [pagesize 4096] {[not] EXTENDED STORAGE}
修改缓冲区: alter bufferpool <buf_name> size <number of pages> {[not] EXTENDED STORAGE}
删除缓冲区: drop bufferpool <buf_name> 如果缓冲区大小设置为 -1 表示缓冲池的页面数目由数据库配置参数buffpage决定。
注意: 数据库配置参数buffpage仅对缓冲区大小设置为 -1 的缓冲池起作用。 26. 多个字段时如何不通过使用select子句使用in/not in
select * from tabschema.tabname where (colA, colB, colC) [not] in (values (valueA1, valueB1, valueC1), (valueA2, valueB2, valueC2), ...(valueAn, valueBn, valueCn)) 27. 查看当前连接到数据库的应用
db2 list application [show detail] 28. 如何确认DB2数据库的一致性
db2dart <db_name> /DB
/DB表示检查整个数据库的一致性 29. 测试SQL语句的性能
db2batch -d <db_name> -f <file_name> [-a userid/passwd] [-r <outfile_name>]
-r 选项表示将查询结果输出到一个文件中。
30. 导出某个表的数据
export to <Derectry><filme>
如:导出用户表
export to c:user.ixf of ixf select * from user 31. 导入数据
import from
如:导入用户表。导入时可以直接建立新表。如果有该表存在也可以用INSERT 插入,或者用UPDATE更新
import from c:user.ixf of ixf [Create/Insert into / update] tablename