db2数据库创建的完整过程
二、windows下面创建的完整过程
db2set db2codepage=819
db2 create database test03
db2 connect to test03 user db2amdin using 1
db2 CREATE Bufferpool USER8 SIZE 100000 PAGESIZE 8K
db2 CREATE Bufferpool USER16 SIZE 1000 PAGESIZE 16 K
db2 CREATE Bufferpool USER32 SIZE 1000 PAGESIZE 32 K
db2stop force
db2start
db2 connect to test03 user easymis using easymis
db2 "CREATE REGULAR TABLESPACE TS_USER8 PAGESIZE 8K MANAGED BY SYSTEM USING ('FSMS_8K_1') BUFFERPOOL USER8"
db2 "CREATE REGULAR TABLESPACE TS_USER16 PAGESIZE 16K MANAGED BY SYSTEM USING ('FSMS_16K_1') BUFFERPOOL USER16"
db2 "CREATE REGULAR TABLESPACE TS_USER32 PAGESIZE 32K MANAGED BY SYSTEM USING ('FSMS_32K_1') BUFFERPOOL USER32"
db2 GRANT DBADM,CREATETAB,BINDADD,CONNECT ON DATABASE TO USER EASYMIS
db2 GRANT DBADM,CREATETAB,BINDADD,CONNECT,LOAD ON DATABASE TO USER EASYMIS
db2 connect to test03 user easymis using easymis
db2 -f dbstruct.sql >kk.log
用配置助手增加odbc和cli的命令,并且将用户密码配置进去
用odbctool将数据一次性加载到数据库中。
配置jdbc连接
直接使用jcc方式能够使用。
<property name="dialect">org.hibernate.dialect.DB2Dialect</property>
<property name="connection.driver_class">com.ibm.db2.jcc.DB2Driver</property>
<property name="connection.username">easymis</property>
<property name="connection.password">1</property>
<property name="connection.url">jdbc:db2://192.168.20.249:50000/test03</property>
如果采用app方式,需要将db2java.zip修改成db2java.jar
db2jdbcbind -url jdbc:db2://192.168.20.249:50000/test03 -user easymis -password 1
<property name="dialect">net.sf.hibernate.dialect.DB2Dialect</property>
<property name="connection.driver_class">COM.ibm.db2.jdbc.app.DB2Driver</property>
<property name="connection.username">easymis</property>
<property name="connection.password">1</property>
<property name="connection.url">jdbc:db2:test03</property>
--------------------------------------------------------------------------------------
三、aix下面创建过程
aix下面创建完整的过程
db2set db2codepage=819
db2 create database easytest on /home/db2inst1
db2 connect to test04 user db2inst1 using db2
db2 CREATE Bufferpool USER8 SIZE 100000 PAGESIZE 8K
db2 CREATE Bufferpool USER16 SIZE 1000 PAGESIZE 16 K
db2 CREATE Bufferpool USER32 SIZE 1000 PAGESIZE 32 K
db2stop force
db2start
db2 connect to test04 user db2inst1 using db2
db2 "CREATE REGULAR TABLESPACE TS_USER8 PAGESIZE 8K MANAGED BY SYSTEM USING ('FSMS_8K_1') BUFFERPOOL USER8"
db2 "CREATE REGULAR TABLESPACE TS_USER16 PAGESIZE 16K MANAGED BY SYSTEM USING ('FSMS_16K_1') BUFFERPOOL USER16"
db2 "CREATE REGULAR TABLESPACE TS_USER32 PAGESIZE 32K MANAGED BY SYSTEM USING ('FSMS_32K_1') BUFFERPOOL USER32"
db2 CREATE Bufferpool TMPBUF8 SIZE 10000 PAGESIZE 8K
db2 "CREATE TEMPORARY TABLESPACE TempTS_USER8 PAGESIZE 8K MANAGED BY SYSTEM USING ('/home/db2inst1/db2inst1/TEMPNODE0004' ) EXTENTSIZE 16 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL "TMPBUF8" DROPPED TABLE RECOVERY OFF"
db2 GRANT DBADM,CREATETAB,BINDADD,CONNECT,LOAD ON DATABASE TO USER EASYMIS
db2 GRANT USE OF TABLESPACE TS_USER8 TO easymis
db2 GRANT USE OF TABLESPACE TS_USER16 TO easymis
db2 GRANT USE OF TABLESPACE TS_USER32 TO easymis
db2 connect to test04 user easymis using easymis
db2 -f dbstruct.sql >kk.log
设置堆空间大小
DB2 UPDATE DB CFG FOR DBNAME USING APPLHEAPSZ 512
1、首先,查看需要使用的实例数据库有哪些:
db2ilist 查看实例
db2 list database directory | pg 查看实例上面的所有数据库
2、drop数据库的命令
db2 drop database 数据库名
3、在aix环境上创建空数据库(数据库名不能够超过8个字符)
查看环境变量 db2set
如果发现db2set中db2codepage不是819,执行 db2set db2codepage=819
db2 create database test05 on /home/db2inst1
db2 connect to test05 user db2inst1 using db2
#创建对应pagesize大小的缓冲池和表空间
db2 CREATE Bufferpool USER8 SIZE 1000 PAGESIZE 8K
db2 CREATE Bufferpool USER16 SIZE 1000 PAGESIZE 16 K
db2 CREATE Bufferpool USER32 SIZE 1000 PAGESIZE 32 K
db2stop force ( 可以先用:db2stop 、db2 terminate进行停止)
db2start
db2 connect to test05 user db2inst1 using db2
db2 "CREATE REGULAR TABLESPACE TS_USER8 PAGESIZE 8K MANAGED BY SYSTEM USING ('FSMS_8K_1') BUFFERPOOL USER8"
db2 "CREATE REGULAR TABLESPACE TS_USER16 PAGESIZE 16K MANAGED BY SYSTEM USING ('FSMS_16K_1') BUFFERPOOL USER16"
db2 "CREATE REGULAR TABLESPACE TS_USER32 PAGESIZE 32K MANAGED BY SYSTEM USING ('FSMS_32K_1') BUFFERPOOL USER32"
#创建临时表空间(用于缓冲查询结果或者临时表)
db2 CREATE Bufferpool TMPBUF8 SIZE 10000 PAGESIZE 8K
db2 "CREATE TEMPORARY TABLESPACE TempTS_USER8 PAGESIZE 8K MANAGED BY SYSTEM USING ('/home/db2inst1/db2inst1/TEMPNODE0005' ) EXTENTSIZE 16 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL "TMPBUF8" DROPPED TABLE RECOVERY OFF"
#给相关用户付权限
db2 GRANT DBADM,CREATETAB,BINDADD,CONNECT,LOAD ON DATABASE TO USER EASYMIS
db2 GRANT USE OF TABLESPACE TS_USER8 TO easymis
db2 GRANT USE OF TABLESPACE TS_USER16 TO easymis
db2 GRANT USE OF TABLESPACE TS_USER32 TO easymis
#开始创建表、创建(这种方式是直接创建表、视图的方式,如果采用db2move的方式,那么则不需要)
db2 connect to test05 user easymis using easymis
db2 -f dbstruct.sql >crttab.log
db2 -f view.sql >crtviw.log
#恢复db2move备份的数据库(备份的过程参见后面的db2move的说明)
db2move test05 import -l /home/db2inst1/wk/test04
db2 -tvf view.sql >crtview.log #如果脚本是db2look,命令结束符为分号,行结束无特殊符号
db2 UPDATE DB CFG FOR easytest USING APPLHEAPSZ 1024
4、对阳江数据库做一个备份,便于恢复。
一、informix和db2的区别
从informix到db2
1、视图的修改:DATE函数不能够使用,可以拿来做比较
2、NVL函数不能够使用,COALESCE
3、TODAY 对应 CURRENT DATE
4、DATE函数的用法相同
5、数据类型不同不能够相等。v_tjfx_gxck, 总帐的科目好为整型, 用char()函数进行转换
6、db2 7.2版本 blob字段必须要有长度。
7、日期天数的差异要用 days(日期2)-days(日期1)
发现value字段存在在BP_PROCESSDATA中。
SPOOL 表的MESSAGE_BODY blob字段,blob字段的大小需要限制。需要手工增加大小
INBOXES 表的MESSAGE_BODY
S_PRINTCFG 表
1、字段类型对应
1)char全部换成varchar
2)datetime year to second 到 date timestamp
3)decimal不能够超过30
4) byte 到 blob