DB2如何创建表空间 如何创建数据库 如何创建缓冲池
标签: db2数据库system脚本linuxwindows
2012-06-13 19:16 8411人阅读 评论(0) 收藏 举报
版权声明:本文为博主原创文章,未经博主允许不得转载。
如果你是在一个项目的角度,要建立表空间、建立缓冲池、建立数据库,到最终完成项目连接DB2成功的话,请看完这篇文章
对于开发近三年左右的程序员,我们总会碰到DB2数据库的项目(做银行、政府、国企等项目尤其如此),我是搞java的,我相信大部分3年左右java开发经验的程序员在第一次单独面对一个DB2的开发项目都会有点痛苦(这个痛苦和公司有直接原因,如果公司事先对你做了DB2的培训,那这个文章你完全不用理会看了)
在我们拿到一个项目的源码,当项目经理让你把它在DB2上跑起来的时候,我们首先做的就是的DB2软件安装上,然后创建数据库和表空间还有缓冲池(要建缓冲池的原因是因为大的项目你不建的话,导致项目运行起来后总是会报表空间不足的错误)。既然心里的估算好了,我们就会去网上搜索怎么去创建的文章了,但是网上我搜索了N多都是些零零碎碎的,说的很单一。 这经过好几天的痛苦挣扎整理后,我把我项目中建立DB2相关数据库对象的脚本全部贴出来
操作系统环境: windows(linux的方法我下面也会贴出来)
1、首先在windows安装完DB2以后,打开DB2的命令行,然后依次执行下面代码.(下面有一句话脚本会提示你一个类似异常的信息,不予以理会,继续执行下面别的代码)
[sql] view plain copy
db2 "CREATE DB TestDB using codeset UTF-8 territory us"
db2 "UPDATE DB CFG FOR TestDB USING applheapsz 4096"
db2 "UPDATE DB CFG FOR TestDB USING app_ctl_heap_sz 1024"
db2 "UPDATE DB CFG FOR TestDB USING stmtheap 8192"
db2 "UPDATE DB CFG FOR TestDB USING dbheap 2400"
db2 "UPDATE DB CFG FOR TestDB USING locklist 1000"
db2 "UPDATE DB CFG FOR TestDB USING logfilsiz 1000"
db2 "UPDATE DB CFG FOR TestDB USING logprimary 12"
db2 "UPDATE DB CFG FOR TestDB USING logsecond 20"
db2 "UPDATE DB CFG FOR TestDB USING logbufsz 32"
db2 "UPDATE DB CFG FOR TestDB USING avg_appls 5"
db2 "UPDATE DB CFG FOR TestDB USING locktimeout 30"
db2 CONNECT TO TestDB
db2 "CREATE BUFFERPOOL icmsbuffer SIZE 1000 PAGESIZE 32K"
db2 "CREATE TABLESPACE icmsspace PAGESIZE 32K MANAGED BY SYSTEM USING ('D:db2adminsqlt0003.0') BUFFERPOOL icmsbuffer"(根据实际情况确定是否是D盘下的db2adminsqlt0003.0目录,如果没有,请先创建)
db2 "CREATE SYSTEM TEMPORARY TABLESPACE ICMSBUF PAGESIZE 32 K MANAGED BY SYSTEM USING ('D:db2adminsqlt0004.0') BUFFERPOOL ICMSBUFFER"(根据实际情况确定是否是D盘下的db2admin sqlt0004.0目录,如果没有,请先创建)
db2 "DISCONNECT icms"
db2 "TERMINATE"
2、建立完成之后数据库这一块你就完全搞定了,下面就是你项目总如何去连接的问题了 。 (如果你项目连接DB2不成功,你可以google,或者给我留言)
下面说在linux下的创建方法:其实脚本一样
数据库是从 DB2 命令界面创建的。在启动命令界面之前,必须符合以下条件:
1、DB2必须是活动的。
2、对于 AIX、Linux和 Solaris, DB2 实例拥有者标识(例如 db2inst1)必须是 db2admin组的一部分。db2admin组是在 DB2通用数据库安装过程中创建的。
3、修改修改环境变量,能够正确执行db2的命令
4、根据实际环境修改标红色的路径,比如:/home/icms/。
5、因在执行的过程中脚本出错,后续回滚将会非常非常,建议一个个脚本执行。
[sql] view plain copy
db2 "CREATE DB icms using codeset UTF-8 territory us"
db2 "UPDATE DB CFG FOR icms USING applheapsz 4096"
db2 "UPDATE DB CFG FOR icms USING app_ctl_heap_sz 1024"
db2 "UPDATE DB CFG FOR icms USING stmtheap 8192"
db2 "UPDATE DB CFG FOR icms USING dbheap 2400"
db2 "UPDATE DB CFG FOR icms USING locklist 1000"
db2 "UPDATE DB CFG FOR icms USING logfilsiz 1000"
db2 "UPDATE DB CFG FOR icms USING logprimary 12"
db2 "UPDATE DB CFG FOR icms USING logsecond 20"
db2 "UPDATE DB CFG FOR icms USING logbufsz 32"
db2 "UPDATE DB CFG FOR icms USING avg_appls 5"
db2 "UPDATE DB CFG FOR icms USING locktimeout 30"
db2 CONNECT TO icms
db2 "CREATE BUFFERPOOL icmsbuffer SIZE 1000 PAGESIZE 32K"
db2 "CREATE TABLESPACE icmsspace PAGESIZE 32K MANAGED BY SYSTEM USING ('/home/icms/sqlt0003.0') BUFFERPOOL icmsbuffer"
db2 "CREATE SYSTEM TEMPORARY TABLESPACE ICMSBUF PAGESIZE 32 K MANAGED BY SYSTEM USING ('/home/icms/sqlt0004') BUFFERPOOL ICMSBUFFER"
db2 "DISCONNECT icms"
db2 "TERMINATE"