db2常用
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、數據庫卸載
db2move test04 EXPORT
db2look -d easytest -e -a -o easytest.sql
將test04.sql中的視圖部分截出來view.sql
2、數據庫裝載
db2move easytest import -l /home/db2inst1/wk/test04
db2 -tvf db2look.sql
3、數據庫整體移植過程。
五、客戶端安裝
客戶端綁定(v8)
sqllib/bin: db2jdbcbind -url jdbc:db2://192.168.20.249:50000/easyccp -user easymis -password 1
六、常用命令:
1. LIST DATABASE DIRECTORY:列出所有的實例
db2 list database directory | pg
2。 連接數據庫
db2 “connect to test04 user easymis using easymis”
斷開連接
db2 connec reset
2. 停止db2
db2 terminate
db2stop force
db2 stop database manager
3. 啟動db2
db2start
4. 連接db2實例 db2 connect to 數據庫別名 user 用戶 using 密碼
5. 列出db2實例名:db2ilist
6. 查看db2的遠程、本地字符集
db2 -a connect to easyoa4
7. 設置當前的schema
db2 set schema=easymis
8. 設置字符集
db2set db2codepage=819 英文, 1386對應GBK
9. db2 -f wk.sql 執行一個sql語句
10、 db2 GET DATABASE MANAGER CONFIGURATION獲取db2的系統信息。
11、 drop database test04
12、 刪除表空間、刪除緩沖池
db2 drop tablespace TS_USER32
db2 drop bufferpool USER32
12、 查詢錯誤的方式
db2 ? sql0102
下面您可以不看(日記):
ftp服務器:203.81.25.245
企業征信環境
1、服務器 192.168.20.144
2、用戶: db2inst1 密碼 : db2
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
應用移植到db2 v8.2的內容:
1、將對應版本的db2的jdbc驅動拷貝到應用的lib目錄。
2、修改ptconfig.xml中的
CHARACTERSET:ISO8859-1
<DRIVER>com.ibm.db2.jcc.DB2Driver</DRIVER>
<URL>jdbc:db2://192.168.20.249:50000/easyccp</URL>
<DBTYPE>db2</DBTYPE>
<CONNECTTYPE>1</CONNECTTYPE>