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
其中,数据库代码集 和缓冲池大小是我们经常需要修改的。
无论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,如果需要修改,直接编辑保存即可。
当然也可以通过命令行命令修改。
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