大家都知道informix是需要日志的,但各日志都做什么用,各有什么意义等等,我们在下面做一个探讨:
首先需要说明的是informix的日志有两种:一种是物理日志,用来存放数据的前映象;另一种是逻辑日志,用来存放所有事物的操作过程。
在初始化的配置中,物理日志和逻辑日志的不是存放在根的磁盘空间的。默认的大小物理日志2M,逻辑日志6个,每个日志文件2M。但在实际的生产环境中,这两个参数一般是需要调整的。
从informix的本身的建议来说,要求逻辑日志的大小一般是要求一天的业务量,逻辑日志滚一圈,物理日志/逻辑日志=1/3。但是有的数据量很大的业务系统,这样做是不可能的,要做适当的调整。
物理日志文件的个数仅为1,逻辑日志文件的个数最小为3,最大为32767。关于物理日志和逻辑日志的改变,我们可以使用onparams命令来完成。
C:\Informix>onparams--
Usage: onparams -a-d<DBspace>[-s<size>][-i]|
-d-l<logfilenumber>[-y] |
-p-s<size>[-d<DBspace>][-y]
-a -Addalogicallogfile
-i -Insertaftercurrentlog
-d -Dropalogicallogfile
-p -Changephysicallogsizeandlocation
-y -Automaticallyresponds"yes"toallprompts
上面是onparams的帮助文件,下面我们首先来改变物理日志的位置和大小:
C:\Informix>onparams-p-s40000-dphydbs-y
Shuttingdown,pleasewait...
Initializing,pleasewait...
Recovering,pleasewait...
可以通过onstat–l中的phybegin来查看物理日志当前存在了哪个chunk上。Physize来查看当前物理日志文件大大小,单位是页。在这之前我们创建了phydbs,并指定了他大小。我们在-s后指定物理日志文件的大小,在-d后指定物理日志文件的位置。接着我们来做逻辑日志位置和大小的改变:
C:\Informix>onparams-a-dlogdbs-s30000-i
Logicallogsuccessfullyadded.
然后用onstat–l来查看新加的逻辑日志:
C:\Informix>onstat-l
IBMInformixDynamicServerVersion9.40.TC2E1 --Quiescent--Up00:08:10--25728Kbytes
PhysicalLogging
Bufferbufused bufsize numpagesnumwritspages/io
P-1 0 8 8 7 1.14
phybegin physize phypos phyused %used
3:53 10000 12 0 0.00
LogicalLogging
Bufferbufused bufsize numrecs numpagesnumwritsrecs/pagespages/io
L-3 0 8 37 14 14 2.6 1.0
Subsystem numrecs LogSpaceused
OLDRSAM 37 2628
address number flags uniqid begin size used %used
0CB37CA81 U-B---- 1 1:763 500 500 100.00
0CB37CE82 U-B---- 2 1:1263 500 500 100.00
0CB37D283 U-B---- 3 1:1763 500 500 100.00
0CB37D684 U-B---- 4 1:2263 500 500 100.00
0CB37DA85 U-B---- 5 1:2763 500 284 56.80
0CB37DE86 U---C-L 6 1:3263 500 315 63.00
0CED8B9812 A------ 0 2:37553 7500 0 0.00
0CED8B5811 A------ 0 2:30053 7500 0 0.00
0CED8B1810 A------ 0 2:22553 7500 0 0.00
0CED8AD89 A------ 0 2:15053 7500 0 0.00
0CED8A988 A------ 0 2:7553 7500 0 0.00
0CED8A587 A------ 0 2:53 7500 0 0.00
12active,12total