DB2資料庫-例項級配置-TCP/IP以及埠配置
DB2資料庫配置(一)
DB2資料庫配置
教程彙總之前,可以先通過官網的資訊瞭解一下DB2資料庫配置的一些基本資訊。
https://www.ibm.com/support/knowledgecenter/zh/SSEPGG_10.5.0/com.ibm.db2.luw.admin.config.doc/doc/c0004555.html
簡單說明一下:DB2的配置檔案分為兩類,一是 database manager資料庫管理器 配置檔案,這個配置檔案是例項級的,也就是說每一個例項/或者說每一個系統使用者都有 一個數據庫管理器的 配置檔案。通過db2cmd可以看到資料庫管理器的配置檔案的資訊(節選)
db2 get dbm cfg 資料庫管理器配置 節點型別 = 帶有本地和遠端客戶機的企業伺服器版 資料庫管理器配置發行版級別 = 0x0c00 最大開啟檔案數 (MAXTOTFILOP) = 16000 CPU 速度(毫秒/指令) (CPUSPEED) = 9.446885e-008 通訊頻寬(MB/秒) (COMM_BANDWIDTH) = 1.000000e+002 Java Development Kit 安裝路徑(JDK_PATH) = D:\DB29.5\java\jdk TCP/IP 服務名稱 (SVCENAME) = db2c_DB2 發現方式 (DISCOVER) = SEARCH 發現伺服器例項 (DISCOVER_INST) = ENABLE
這其中就可以找到我們要修改的tcp/ip 傳輸協議的服務名稱。
DB2的另外一類配置檔案的就是每個獨立的資料庫的資料庫配置檔案。同樣,通過命令列命令可以進行查詢(節選)
C:\WINDOWS\system32>db2 connect to test 資料庫連線資訊 資料庫伺服器 = DB2/NT 9.5.0 SQL 授權標識 = KERN 本地資料庫別名 = TEST C:\WINDOWS\system32>db2 get db cfg 資料庫 的資料庫配置 資料庫地域 = CN 資料庫內碼表 = 1208 資料庫程式碼集 = UTF-8 資料庫國家/地區程式碼 = 86 資料庫堆(4KB) (DBHEAP) = AUTOMATIC 目錄快取記憶體大小(4KB) (CATALOGCACHE_SZ) = 260 日誌緩衝區大小(4KB) (LOGBUFSZ) = 98 實用程式堆大小(4KB) (UTIL_HEAP_SZ) = 49086 緩衝池大小(頁) (BUFFPAGE) = 250 SQL 語句堆(4KB) (STMTHEAP) = AUTOMATIC 預設應用程式堆(4KB) (APPLHEAPSZ) = AUTOMATIC 應用程式記憶體大小(4KB) (APPL_MEMORY) = AUTOMATIC 統計資訊堆大小(4KB) (STAT_HEAP_SZ) = AUTOMATIC
其中,資料庫程式碼集 和緩衝池大小是我們經常需要修改的。
修改DB2 傳輸協議為TCP/IP,以及埠的修改
一、修改services檔案
無論windows還是linux ,傳輸協議以及埠都儲存在 services檔案中, 通過查詢官網 https://www.ibm.com/support/knowledgecenter/zh/SSEPGG_10.5.0/com.ibm.db2.luw.qb.server.doc/doc/t0006066.html
這邊解釋了services檔案的留存根目錄及其用處,以及如何修改該檔案內容。
我的作業系統是windows的,首先通過命令列查詢到服務名稱
db2 get dbm cfg
TCP/IP 服務名稱 (SVCENAME) = db2c_DB2
然後我找到了C:\Windows\System32\drivers\etc的services檔案
可以看到 這裡 我已經將傳輸協議設定為tcp,埠50000,如果需要修改,直接編輯儲存即可。
當然也可以通過命令列命令修改。
二、命令列修改
TCP/IP的設定
db2set -all 檢視
C:\WINDOWS\system32>db2set -all
[e] DB2PATH=D:\DB29.5
[i] DB2ACCOUNTNAME=DESKTOP-1432AIG\Kern
[i] DB2INSTOWNER=DESKTOP-1432AIG
[i] DB2PORTRANGE=60000:60003
[i] DB2OPTIONS=td
[i] DB2INSTPROF=C:\PROGRAMDATA\IBM\DB2\DB2COPY1
[i] DB2COMM=tcpip
[g] DB2_EXTSECURITY=YES
[g] DB2SYSTEM=DESKTOP-1432AIG
[g] DB2PATH=D:\DB29.5
[g] DB2INSTDEF=DB2
[g] DB2ADMINSERVER=DB2DAS00
C:\WINDOWS\system32>
如果沒有看到 DB2COMM=tcpip ,當然這裡我已經修改好了。
設定命令如下:
db2set -g db2comm=tcpip
埠的修改
windows下的查詢命令
db2 get dbm cfg|find "SVCENAME"
TCP/IP 服務名稱 (SVCENAME) = db2c_DB2
linux下的查詢命令
db2 get dbm cfg|grep SVCENAME
這裡網上很多教程說:直接通過命令列將svcename修改為埠。
db2 update dbm cfg using svcename 埠
我認為這是錯誤的,應該為服務起名,然後無論windows或者linux系統,找到services檔案,將服務對應的埠和傳輸協議輸入,重啟服務即可。
linux 下命令
vim /etc/services
此外,轉載一些linux下修改埠和傳輸協議的帖子。
更改Linux下的DB2埠號 http://blog.51cto.com/feature09/2047485
linux 下 db2 TCP 服務 配置 https://xkorey.iteye.com/blog/1597576