學習db2過程中的一些記錄 實現:在客戶端遠程連接服務器端的db2(db2之間的互連) 本文假定如下: 客戶端為windows/linux/unix,客戶端也已經安裝了db2或者客戶端 服務器端為windows/linux/unix 客戶端ip:192.168.42.147,服務器端ip為192.168.42.102 步驟: 在客戶端建立服務器端數據庫的節點 在客戶端命令行執行 Db2 catalog tcpip node test remote 192.168.42.102 server 50000 注:test為在客戶端定義的節點,名字可以任意 192.168.42.102為客戶端的ip 50000為DB2使用的端口 查找服務器端DB2使用的端口, 如果服務器端為linux,可以訪問/etc/services文件,如果你的實例名為db2inst1,找到如下行 db2inst1 50000/tcp 如果服務器端為windows,查看X:/WINNT/System32/drivers/etc/services 綁定節點和客戶端的數據庫 執行下面的命令db2 catalog db coshine at node test 注:coshine為服務器端中你想要連接的數據庫名 Test就是步驟一種定義的節點 使綁定生效 執行db2 terminate 設定客戶端db2codepage(代碼頁設置)即字符編碼 先在服務器端查詢db2codepage,執行db2set –all [i] DB2_EXTENDED_OPTIMIZATION=ON [i] DB2_DISABLE_FLUSH_LOG=ON [i] AUTOSTART=YES [i] DB2_STRIPED_CONTAINERS=ON [i] DB2_HASH_JOIN=Y [i] DB2COMM=tcpip [i] DB2CODEPAGE=819 [i] DB2_PARALLEL_IO=* 可以看到服務器端的DB2CODEPAGE為819,所以客戶端也必須設置為這個數字 執行db2set db2codepage=819 進行連接 執行db2 connect to coshine user user_name using password 注釋 Db2codepage:即db2數據庫的編碼方式 db2codepage=1386(簡體中文) db2country=86(中國) 一個數據庫一旦建立,他的代碼頁就沒有辦法改, db2set DB2CODEPAGE=1386只能改變代碼頁環境,不能改變數據庫的代碼頁 如果不能連接:檢查如下是否正確 確保可以ping通服務器端:ping 192.168.42.102 確保服務器端的db2已經啟動:db2start 確保客戶端DB2COMM設置為tcpip 先查看db2comm設置:db2set –all 如果沒有設置這個注冊表,執行db2set db2comm=tcpip 將SVCENAME設置成/etc/services中的端口號或者服務名了嗎? 執行db2 get dbm cfg查看,找到SVCENAME,如果當前值不是服務器端的端口號或者服務名,進行更新設置 執行:db2 update dbm cfg SVCENAME db2inst1 注:db2inst1為服務名,這個在/etc/services文件中db2inst1 50000/tcp 一致 DB2數據庫基本操作指令30條 1.查看本地節點目錄 命令窗口中輸入:db2 list node directory 2.編目一個TCP/IP節點 命令窗口:db2 catalog tcpip node remote server ostype 3.取消節點編目 db2 uncatalog node 4.查看系統數據庫目錄 db2 list database directory 5.查看本地數據庫目錄 db2 list database directory on <盤符> 在本地數據庫目錄中有而系統數據庫目錄中沒有的數據庫不能訪問,可以在控制中心中選中 <數據庫> 右鍵單擊選擇添加,然後輸入需要添加的數據庫名稱或者點擊刷新按鈕選擇數據庫,加入數據庫後即可以訪問。 6.編目數據庫 db2 catalog database as at node 7.取消數據庫編目 db2 uncatalog database 8.測試遠程數據庫的連接 db2 connect to user using 9.任何用戶均可通過設置CurrentSchema專用寄存器為特定的數據庫連接設置默認模式,初始默認值為當前會話用戶的權限ID。 set schema = 可以由用戶交互式的使用,也可在應用程序中使用,如果用DynamicrulesBind選項綁定包,這個語句就沒有作用。此語句不在事務控制之下。 10.代碼頁的設置 在創建數據庫時設置字符集 create database using codeset territory 例: create database dbtest using codeset IBM-437 territory US 也可以設置整個數據庫的代碼頁,在win2000/NT/xp中,在我的電腦--> 屬性--> 高級--> 環境變量中添加變量DB2CODEPAGE = ,例:DB2CODEPAGE = 437 或 DB2CODEPAGE = 1386。或者在IBM DB2命令窗口輸入db2set DB2CODEPAGE=1386,設置後需要重新啟動DB2生效。 11.DB2低版本數據到高版本的遷移 先將低版本數據備份使用恢復功能導入高版本數據庫,然後在命令窗口輸入db2 migrate database 。 12.表名或模式中含有引號時訪問表 命令窗口:db2 select * from \ "tabschema\ ".\ "tabname\ " 命令行處理器:db2=> select * from "tabschema ". "tabname " 13.導出數據庫的表結構生成DDL文件 命令窗口:db2look -d -e -c -o 14.執行腳本文件 命令窗口:db2 -tvf 15.代碼頁的轉換 16.獲取當前DB2的版本 select * from sysibm.sysversions 17.DB2表的字段的修改限制? 只能修改VARCHAR2類型的並且只能增加不能減少 alter table alter column set data type varchar (SIZE) 18.如何查看表的結構? describe table or describe select * from . 19.如何快速清除一個大表? ALTER TABLE TABLE_NAME ACTIVE NOT LOGGED INITALLY WITH EMPTY TABLE 20.如何查看數據庫的存儲過程? SELECT * FROM SYSCAT.PROCEDURES 21.如何查看表的約束? SELECT * FROM SYSCAT.CHECKS WHERE TABNAME = 22.如何查看表的引用完整約束? SELECT * FROM SYSCAT.REFERENCES WHERE TABNAME = 23.如何知道BUFFERPOOLS狀況? select * from SYSCAT.BUFFERPOOLS 24.如何在命令行下查看修改實例和數據庫配置參數? 查看實例配置參數:db2 get dbm cfg 修改實例配置參數:db2 update dbm cfg using 參數名 新值 查看數據庫配置參數:db2 get db cfg for 修改數據庫配置參數:db2 update db cfg for using 參數名 新值 25.如何修改緩沖區? 增加緩沖區:create bufferpool size [pagesize 4096] {[not] EXTENDED STORAGE} 修改緩沖區: alter bufferpool size {[not] EXTENDED STORAGE} 刪除緩沖區: drop bufferpool 如果緩沖區大小設置為 -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 /DB表示檢查整個數據庫的一致性 29.導出某個表的數據 export to 如:導出用戶表 export to c:\user.ixf of ixf select * from user 30、導入數據 import from 如:導入用戶表。導入時可以直接建立新表。如果有該表存在也可以用INSERT插入,或者用UPDATE更新