DB2 SQL error: SQLCODE: -968, SQLSTATE: 57011, SQLERRMC: null
报这个错的原因可能是DB2数据库的日志满了,可能需要修改数据库日志的参数。
数据库 的数据库配置
数据库配置发行版级别 = 0x0a00
数据库发行版级别 = 0x0a00
数据库地域 = CN
数据库代码页 = 1386
数据库代码集 = GBK
数据库国家/地区代码 = 86
数据库整理顺序 = UNIQUE
备用整理顺序 (ALT_COLLATE) =
数据库页大小 = 4096
动态 SQL 查询管理 (DYN_QUERY_MGMT) = DISABLE
对此数据库的发现支持 (DISCOVER_DB) = ENABLE
缺省查询优化类 (DFT_QUERYOPT) = 5
并行度 (DFT_DEGREE) = 1
在算术异常时继续 (DFT_SQLMATHWARN) = NO
缺省刷新有效期 (DFT_REFRESH_AGE) = 0
缺省维护的选项(DFT_MTTB_TYPES)的表类型 = SYSTEM
保留的高频值的数目 (NUM_FREQVALUES) = 10
保留的分位点数目 (NUM_QUANTILES) = 20
备份暂挂 = NO
数据库是一致的 = YES
前滚暂挂 = NO
复原暂挂 = NO
启用的多页文件分配 = NO
恢复状态的日志保留 = RECOVERY
日志记录状态的用户出口 = YES
Data Links 标记到期时间间隔(秒) (DL_EXPINT) = 60
Data Links 写标记初始时间间隔 (DL_WT_IEXPINT) = 60
副本的 Data Links 数目 (DL_NUM_COPIES) = 1
删除后的 Data Links 时间(天数) (DL_TIME_DROP) = 1
大写的 Data Links 标记 (DL_UPPER) = NO
Data Links 标记算法 (DL_TOKEN) = MAC0
数据库堆(4KB) (DBHEAP) = 600
数据库共享内存大小(4KB) (DATABASE_MEMORY) = AUTOMATIC
目录高速缓存大小(4KB) (CATALOGCACHE_SZ) = (MAXAPPLS*4)
日志缓冲区大小(4KB) (LOGBUFSZ) = 8
实用程序堆大小(4KB) (UTIL_HEAP_SZ) = 5000
缓冲池大小(页) (BUFFPAGE) = 250
扩充存储段大小(4KB) (ESTORE_SEG_SZ) = 16000
扩充存储段的数目 (NUM_ESTORE_SEGS) = 0
锁定列表的最大存储量(4KB) (LOCKLIST) = 50
应用程序组内存集的最大大小(4KB) (APPGROUP_MEM_SZ) = 30000
应用程序组堆的内存百分比 (GROUPHEAP_RATIO) = 70
最大应用程序控制堆大小(4KB) (APP_CTL_HEAP_SZ) = 128
共享排序的排序堆域值(4KB) (SHEAPTHRES_SHR) = (SHEAPTHRES)
排序列表堆(4KB) (SORTHEAP) = 256
SQL 语句堆(4KB) (STMTHEAP) = 2048
缺省应用程序堆(4KB) (APPLHEAPSZ) = 256
程序包高速缓存大小(4KB) (PCKCACHESZ) = (MAXAPPLS*8)
统计信息堆大小(4KB) (STAT_HEAP_SZ) = 4384
检查死锁的时间间隔(毫秒) (DLCHKTIME) = 10000
每个应用程序的锁定百分比列表 (MAXLOCKS) = 22
锁定超时(秒) (LOCKTIMEOUT) = -1
更改的页阈值 (CHNGPGS_THRESH) = 60
异步页清除程序的数目 (NUM_IOCLEANERS) = 1
I/O 服务器的数目 (NUM_IOSERVERS) = 3
索引排序标志 (INDEXSORT) = YES
顺序检测标志 (SEQDETECT) = YES
缺省预取大小(页) (DFT_PREFETCH_SZ) = 16
跟踪修改的页数 (TRACKMOD) = ON
容器的缺省数目 = 1
缺省表空间扩展数据块大小(页) (DFT_EXTENT_SZ) = 32
活动应用程序的最大数目 (MAXAPPLS) = 10000
活动应用程序的平均数目 (AVG_APPLS) = 1
每个应用程序的最大打开数据库文件数 (MAXFILOP) = 64
日志文件大小(4KB) (LOGFILSIZ) = 5000
主日志文件的数目 (LOGPRIMARY) = 35
辅助日志文件的数目 (LOGSECOND) = 15
已更改的至日志文件的路径 (NEWLOGPATH) =
日志文件路径 = E:\DB2\NODE0000\SQL00
001\SQLOGDIR\
溢出日志路径 (OVERFLOWLOGPATH) =
镜像日志路径 (MIRRORLOGPATH) =
首个活动日志文件 = S0000578.LOG
磁盘上已满的块日志 (BLK_LOG_DSK_FUL) = NO
事务使用的最大活动日志空间的百分比 (MAX_LOG) = 0
1 个活动 UOW 的活动日志文件的数目 (NUM_LOG_SPAN) = 0
组落实计数 (MINCOMMIT) = 1
软检查点前回收的日志文件的百分比 (SOFTMAX) = 100
启用的恢复的日志保留 (LOGRETAIN) = RECOVERY
启用的日志记录的用户出口 (USEREXIT) = ON
HADR 数据库角色 = STANDARD
HADR 本地主机名 (HADR_LOCAL_HOST) =
HADR 本地服务名称 (HADR_LOCAL_SVC) =
HADR 远程主机名 (HADR_REMOTE_HOST) =
HADR 远程服务名称 (HADR_REMOTE_SVC) =
远程服务器的 HADR 实例名 (HADR_REMOTE_INST) =
HADR 超时值 (HADR_TIMEOUT) = 120
HADR 日志写同步方式 (HADR_SYNCMODE) = NEARSYNC
第一个日志归档方法 (LOGARCHMETH1) = USEREXIT
logarchmeth1 的选项 (LOGARCHOPT1) =
第二个日志归档方法 (LOGARCHMETH2) = OFF
logarchmeth2 的选项 (LOGARCHOPT2) =
故障转移日志归档路径 (FAILARCHPATH) =
错误时重试日志归档次数 (NUMARCHRETRY) = 5
日志归档重试延迟(秒) (ARCHRETRYDELAY) = 20
供应商选项 (VENDOROPT) =
启用的自动重新启动 (AUTORESTART) = ON
索引重新创建时间和重做索引构建 (INDEXREC) = SYSTEM (ACCESS)
在索引构建期间记录页 (LOGINDEXBUILD) = OFF
loadrec 会话的缺省数目 (DFT_LOADREC_SES) = 1
要保留的数据库备份的数目 (NUM_DB_BACKUPS) = 12
恢复历史保留时间(天数) (REC_HIS_RETENTN) = 366
TSM 管理类 (TSM_MGMTCLASS) =
TSM 节点名 (TSM_NODENAME) =
TSM 所有者 (TSM_OWNER) =
TSM 密码 (TSM_PASSWORD) =
自动维护 (AUTO_MAINT) = OFF
自动数据库备份 (AUTO_DB_BACKUP) = OFF
自动表维护 (AUTO_TBL_MAINT) = OFF
自动 runstats (AUTO_RUNSTATS) = OFF
自动统计信息概要分析 (AUTO_STATS_PROF) = OFF
自动概要文件更新 (AUTO_PROF_UPD) = OFF
报这个错的原因可能是DB2数据库的日志满了,可能需要修改数据库日志的参数。
也可以进入到日志目录将日志删除,临时可行方案是删除日志。
使用命令:db2 get db cfg for <库名>获取db2数据库的配置参数,如下:数据库 的数据库配置
数据库配置发行版级别 = 0x0a00
数据库发行版级别 = 0x0a00
数据库地域 = CN
数据库代码页 = 1386
数据库代码集 = GBK
数据库国家/地区代码 = 86
数据库整理顺序 = UNIQUE
备用整理顺序 (ALT_COLLATE) =
数据库页大小 = 4096
动态 SQL 查询管理 (DYN_QUERY_MGMT) = DISABLE
对此数据库的发现支持 (DISCOVER_DB) = ENABLE
缺省查询优化类 (DFT_QUERYOPT) = 5
并行度 (DFT_DEGREE) = 1
在算术异常时继续 (DFT_SQLMATHWARN) = NO
缺省刷新有效期 (DFT_REFRESH_AGE) = 0
缺省维护的选项(DFT_MTTB_TYPES)的表类型 = SYSTEM
保留的高频值的数目 (NUM_FREQVALUES) = 10
保留的分位点数目 (NUM_QUANTILES) = 20
备份暂挂 = NO
数据库是一致的 = YES
前滚暂挂 = NO
复原暂挂 = NO
启用的多页文件分配 = NO
恢复状态的日志保留 = RECOVERY
日志记录状态的用户出口 = YES
Data Links 标记到期时间间隔(秒) (DL_EXPINT) = 60
Data Links 写标记初始时间间隔 (DL_WT_IEXPINT) = 60
副本的 Data Links 数目 (DL_NUM_COPIES) = 1
删除后的 Data Links 时间(天数) (DL_TIME_DROP) = 1
大写的 Data Links 标记 (DL_UPPER) = NO
Data Links 标记算法 (DL_TOKEN) = MAC0
数据库堆(4KB) (DBHEAP) = 600
数据库共享内存大小(4KB) (DATABASE_MEMORY) = AUTOMATIC
目录高速缓存大小(4KB) (CATALOGCACHE_SZ) = (MAXAPPLS*4)
日志缓冲区大小(4KB) (LOGBUFSZ) = 8
实用程序堆大小(4KB) (UTIL_HEAP_SZ) = 5000
缓冲池大小(页) (BUFFPAGE) = 250
扩充存储段大小(4KB) (ESTORE_SEG_SZ) = 16000
扩充存储段的数目 (NUM_ESTORE_SEGS) = 0
锁定列表的最大存储量(4KB) (LOCKLIST) = 50
应用程序组内存集的最大大小(4KB) (APPGROUP_MEM_SZ) = 30000
应用程序组堆的内存百分比 (GROUPHEAP_RATIO) = 70
最大应用程序控制堆大小(4KB) (APP_CTL_HEAP_SZ) = 128
共享排序的排序堆域值(4KB) (SHEAPTHRES_SHR) = (SHEAPTHRES)
排序列表堆(4KB) (SORTHEAP) = 256
SQL 语句堆(4KB) (STMTHEAP) = 2048
缺省应用程序堆(4KB) (APPLHEAPSZ) = 256
程序包高速缓存大小(4KB) (PCKCACHESZ) = (MAXAPPLS*8)
统计信息堆大小(4KB) (STAT_HEAP_SZ) = 4384
检查死锁的时间间隔(毫秒) (DLCHKTIME) = 10000
每个应用程序的锁定百分比列表 (MAXLOCKS) = 22
锁定超时(秒) (LOCKTIMEOUT) = -1
更改的页阈值 (CHNGPGS_THRESH) = 60
异步页清除程序的数目 (NUM_IOCLEANERS) = 1
I/O 服务器的数目 (NUM_IOSERVERS) = 3
索引排序标志 (INDEXSORT) = YES
顺序检测标志 (SEQDETECT) = YES
缺省预取大小(页) (DFT_PREFETCH_SZ) = 16
跟踪修改的页数 (TRACKMOD) = ON
容器的缺省数目 = 1
缺省表空间扩展数据块大小(页) (DFT_EXTENT_SZ) = 32
活动应用程序的最大数目 (MAXAPPLS) = 10000
活动应用程序的平均数目 (AVG_APPLS) = 1
每个应用程序的最大打开数据库文件数 (MAXFILOP) = 64
日志文件大小(4KB) (LOGFILSIZ) = 5000
主日志文件的数目 (LOGPRIMARY) = 35
辅助日志文件的数目 (LOGSECOND) = 15
已更改的至日志文件的路径 (NEWLOGPATH) =
日志文件路径 = E:\DB2\NODE0000\SQL00
001\SQLOGDIR\
溢出日志路径 (OVERFLOWLOGPATH) =
镜像日志路径 (MIRRORLOGPATH) =
首个活动日志文件 = S0000578.LOG
磁盘上已满的块日志 (BLK_LOG_DSK_FUL) = NO
事务使用的最大活动日志空间的百分比 (MAX_LOG) = 0
1 个活动 UOW 的活动日志文件的数目 (NUM_LOG_SPAN) = 0
组落实计数 (MINCOMMIT) = 1
软检查点前回收的日志文件的百分比 (SOFTMAX) = 100
启用的恢复的日志保留 (LOGRETAIN) = RECOVERY
启用的日志记录的用户出口 (USEREXIT) = ON
HADR 数据库角色 = STANDARD
HADR 本地主机名 (HADR_LOCAL_HOST) =
HADR 本地服务名称 (HADR_LOCAL_SVC) =
HADR 远程主机名 (HADR_REMOTE_HOST) =
HADR 远程服务名称 (HADR_REMOTE_SVC) =
远程服务器的 HADR 实例名 (HADR_REMOTE_INST) =
HADR 超时值 (HADR_TIMEOUT) = 120
HADR 日志写同步方式 (HADR_SYNCMODE) = NEARSYNC
第一个日志归档方法 (LOGARCHMETH1) = USEREXIT
logarchmeth1 的选项 (LOGARCHOPT1) =
第二个日志归档方法 (LOGARCHMETH2) = OFF
logarchmeth2 的选项 (LOGARCHOPT2) =
故障转移日志归档路径 (FAILARCHPATH) =
错误时重试日志归档次数 (NUMARCHRETRY) = 5
日志归档重试延迟(秒) (ARCHRETRYDELAY) = 20
供应商选项 (VENDOROPT) =
启用的自动重新启动 (AUTORESTART) = ON
索引重新创建时间和重做索引构建 (INDEXREC) = SYSTEM (ACCESS)
在索引构建期间记录页 (LOGINDEXBUILD) = OFF
loadrec 会话的缺省数目 (DFT_LOADREC_SES) = 1
要保留的数据库备份的数目 (NUM_DB_BACKUPS) = 12
恢复历史保留时间(天数) (REC_HIS_RETENTN) = 366
TSM 管理类 (TSM_MGMTCLASS) =
TSM 节点名 (TSM_NODENAME) =
TSM 所有者 (TSM_OWNER) =
TSM 密码 (TSM_PASSWORD) =
自动维护 (AUTO_MAINT) = OFF
自动数据库备份 (AUTO_DB_BACKUP) = OFF
自动表维护 (AUTO_TBL_MAINT) = OFF
自动 runstats (AUTO_RUNSTATS) = OFF
自动统计信息概要分析 (AUTO_STATS_PROF) = OFF
自动概要文件更新 (AUTO_PROF_UPD) = OFF
自动重组 (AUTO_REORG) = OFF
根据实际情况进行修改
如下参数:
实用程序堆大小:db2 update db cfg for <dbname> using UTIL_HEAP_SZ 50000
修改日志缓冲区:db2 update db cfg for <dbname> using LOGBUFSZ 10240
修改日志文件大小:db2 update db cfg for <dbname> using LOGFILSIZ 204800
修改主日志文件个数:db2 update db cfg for <dbname> using LOGPRIMARY 80
修改辅助日志文件个数:db2 update db cfg for <dbname> using LOGSECOND 176
自动语句统计信息:db2 "update db cfg for middledb using AUTO_STMT_STATS off"
对于日志文件的个数:主日志个数+辅助日志个数<=256