下面的命令都执行一遍 DB2数据库基本就创建完成了 当然具体路径要看本机环境,这里要注意下,如下
db2 "CREATE DATABASE UPP DBPATH ON '/db2tmp' USING CODESET GBK TERRITORY CN PAGESIZE 8 k";#创建XXX数据库DBPATH ON 指定数据库创建位置 PAGESIZE 每页大小 8K(是DB2数据库中最小的存储单位)
db2set db2codepage=1386; #设置代码页 否则乱码
db2 terminate; #断开与数据库连接
db2 connect to UPP;#连接UPP数据库
#更改缓存大小 理论越大越好 但受物理内存限制 建议等于机器总内存的10%
db2 "update db cfg for upp using BUFFPAGE 10000";
#建立系统缓存
#表空间数据所使用的缓存 按照存储的内容不同 设置不同的大小 按照内存大小可做适当调整
#调整规则 1 计划可用内存 =SIZE1*PAGESIZE1+SIZE2*PAGESIZE2+.....SIZEn*PAGESIZEn
# 2 按照表空间具体功能及并行性或执行复杂sql的使用量设置 当执行复杂sql时 满足单次读取数据及索引数据不高于当前类型表空间的80%
#
db2 "CREATE BUFFERPOOL UPPBUFFER00 IMMEDIATE SIZE 204800 AUTOMATIC PAGESIZE 8 K";
db2 "CREATE BUFFERPOOL UPPBUFFER01 IMMEDIATE SIZE 12800 AUTOMATIC PAGESIZE 8 K ";
db2 "CREATE BUFFERPOOL UPPBUFFER02 IMMEDIATE SIZE 12800 AUTOMATIC PAGESIZE 8 K ";
db2 "CREATE BUFFERPOOL UPP_TEMP IMMEDIATE SIZE 5000 AUTOMATIC PAGESIZE 32 K";
#建立系统临时表空间
#DB执行任务使用的物理空间 根据可用规划磁盘设置 temp_8k表空间常用 测试数据量 10G大小可满足
db2 "create system TEMPORARY tablespace uppspace pagesize 8k managed by database using (file '/db2tmp/db2data/UPP_DATAtemp_8k' 50G) EXTENTSIZE 16 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL UPPBUFFER00 ";#EXTENTSIZE 是整数倍的datapage 作为读写的基本单位。PREFETCHSIZE预取大小是EXTENTSIZE的整数倍。TRANSFERRATE传输率
db2 "CREATE SYSTEM TEMPORARY TABLESPACE NGCMS_TEMP_32 PAGESIZE 32 K MANAGED BY DATABASE USING ( file '/db2tmp/db2data/UPP_DATAtemp_32k' 5G) EXTENTSIZE 32 OVERHEAD 10.5 PREFETCHSIZE 32 TRANSFERRATE 0.14 BUFFERPOOL UPP_TEMP ";
db2 "create system TEMPORARY tablespace USERSPACE1 pagesize 8k managed by database using (file '/db2tmp/db2data/UPP_DATAtemp_8k' 10G)"
#删除系统自定义系统表空间
db2 "drop tablespace tempspace1";
#建立32K缓存及表空间 后期根据业务需要决定是否删除
#以下设备信息可根据实际情况更改路径,或放在文件系统上或在裸设备上,但必须保证有足够的空间,device为裸设备信息
#存放数据的物理位置 根据裸设备或文件系统大小设置 如建在裸设备 设置大小等于裸设备大小
db2 "CREATE REGULAR TABLESPACE UPP_DATA00 PAGESIZE 8192 MANAGED BY DATABASE USING (DEVICE '/dev/rdb2datalv' 120G) EXTENTSIZE 16 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL UPPBUFFER00 ";
db2 "CREATE REGULAR TABLESPACE UPP_DATA00_INDEX PAGESIZE 8192 MANAGED BY DATABASE USING (FILE '/db2tmp/db2data/UPP_DATA00_INDEX' 5G) BUFFERPOOL UPPBUFFER01 ";
db2 "CREATE REGULAR TABLESPACE UPP_DATA_HIS00_IDX PAGESIZE 8192 MANAGED BY DATABASE USING (FILE '/db2tmp/db2data/UPP_DATA_HIS00_IDX' 10G) BUFFERPOOL UPPBUFFER02 ";
#授权给XXX
db2 GRANT DBADM,CREATETAB,BINDADD,CONNECT,CREATE_NOT_FENCED_ROUTINE,IMPLICIT_SCHEMA,LOAD,CREATE_EXTERNAL_ROUTINE,QUIESCE_CONNECT ON DATABASE TO USER XXX;
#更改日志 锁等信息参数
#日志大小计算 LOGPRIMARY*LOGFILSIZ > 最大数据操控
#物理磁盘必须支持设置大小 如设置路径可用空间
db2 "update db cfg for upp using SELF_TUNING_MEM ON";# Self tuning memory 放开内存管理权限
db2 "update db cfg for upp using LOGBUFSZ 512"; #日志缓冲区大小
db2 "update db cfg for upp using LOGFILSIZ 8192"; #日志文件大小 32M
db2 "update db cfg for upp using LOGPRIMARY 10"; #主日志文件数
db2 "update db cfg for upp using LOGSECOND 30"; #辅助日志文件数
#当出现数据查询超时时 可考虑更改下两参数 但不宜过大 避免不必要浪费
db2 "update db cfg for upp using LOCKTIMEOUT 180"; #锁等待的秒数
db2 "update db cfg for upp USING MAXLOCKS 90 AUTOMATIC";
db2 "update db cfg using newlogpath '/db2log/db2upp/NODE0000/SQL00001/SQLOGDIR/'"; #更改日志路径 日志路径尽量避免同表空间放在同块磁盘中
#重启实例生效数据库配置参数
db2stop force
db2start
DB2数据库创建完成!