分类: DB2/Informix
2008-05-31 16:32:02
配置文件
配置文件:Linux/UNIX.
服务器的配置参数存储在位于 $INFORMIXDIR/etc 目录的文件中。
通过设置 ONCONFIG
环境变量可以指定文件的名称。不要指定完整的路径,只需指定文件名即可。
如果没有定义 ONCONFIG
环境变量,将使用默认的文件名 onconfig。
示例:
导出 ONCONFIG=onconfig.server1 |
配置文件包含很多不同的参数,允许您根据具体需求配置服务器。其中一些参数将在第一次启动服务器时设置,第一次初始化服务器后,这些参数设置将不能改变。然而,大多数参数可以在服务器初始化后进行修改。
以下的配置文件参数必须在初始化服务器之前进行配置,这是由于根 dbspace 包含保留页、服务器上所有数据库的信息和跟踪服务器活动的数据库的信息:
每个服务器必须具有一个根 dbspace。根 dbspace 在最初还包含物理和逻辑日志。然而,这些日志可以在稍后的时间里移至其他 dbspace。
ROOTNAME rootdbs # Root dbspace name ROOTPATH /dev/online_root # Path for device containing root dbspace ROOTOFFSET 0 # Offset of root dbspace into device (kilobytes) ROOTSIZE 20000 # Size of root dbspace (kilobytes) |
这些参数只有在第一次初始化服务器之前才能够进行修改。在初始化服务器期间,一旦为根 dbspace 分配了空间,就不能够对这些参数进行修改。
MSGPATH /usr/informix/online.log # System message log file path CONSOLE /dev/console # System console message path |
IDS Server 为服务器消息提供了两个不同的目的地:
MSGPATH
:该参数表示所有服务器消息写入的文件的路径和名称。如果之前不存在的话,该文件将在第一次初始化服务器时创建。
CONSOLE
:该参数表示的路径指定服务器要写入控制台信息的位置。控制台信息对于托管服务器的计算机的管理员来说非常重要。比如说,更改磁带的备份和恢复请求就需要发送到 CONSOLE。默认情况下,该参数设置为计算机的控制台设备,但是也可以设置为某个文件。 SERVERNUM Unique id corresponding to an IDS server DBSERVERNAME Name of default database server name DBSERVERALIASES Names of additional database server names |
必须设置这些参数,这样才能在托管计算机上惟一地标识您的服务器。
LOGBUFF Size in kilobytes for the three logical-log buffers in shared memory LOGFILES Number of logical-log files LOGSIZE Size of logical-log files PHYSBUFF Amount of shared memory reserved for the buffers PHYSFILE Size of the initial physical log PHYSDBS Name of the dbspace in which the physical log resides |
逻辑日志文件是磁盘上连续的页面集合,用于存储服务器的事务记录。这些事务记录使用日志创建,用于跟踪对数据库进行的所有更改。所有的数据库共享相同的一组逻辑日志文件。每个服务器必须具有至少三个逻辑日志文件。
由于以下原因,您可能需要手工添加逻辑日志文件:
可以使用两种方法添加逻辑日志文件:
onparams -a
命令将其添加在文件列表的末尾
onparams -a -i
命令将其添加在当前的逻辑日志文件之后 下面的命令在 logspace dbspace 中将逻辑日志文件添加到了日志文件列表的末尾,使用 LOGSIZE
配置参数指定的日志文件大小:
onparams -a -d logspace |
下面的命令在 logspace dbspace 中将一个 1000KB 的逻辑日志文件插入到当前的日志文件之后:
onparams -a -d logspace -s 1000 -i |
要添加具有新大小(本例为 250 KB)的逻辑日志文件,执行以下命令:
onparams -a -d logspace -s 250 |
可以使用下面的命令删除逻辑日志文件:
onparams -d -l lognum -y |
通过下列操作移动逻辑日志文件:
一般来讲,管理若干大型日志文件要比管理大量较小的日志文件容易。较大的日志空间不会影响性能。然而,缺乏足够的日志文件和日志空间将对性能产生影响,因为数据库服务器将因此生成频繁的检查点处理。blobspaces 中的智能大对象不执行日志记录,但是它们被包含在创建对象的日志备份中。这就是说,直到服务器对创建对象的日志进行备份后,这些对象才被释放。因此,如果 blobspace 中的智能大对象被频繁进行更新,则可能需要更频繁地进行日志备份,以获取 blobspace 内额外的空闲空间。对于生成小量日志数据的应用程序,最少使用 10 个 10 MB 的日志文件。对于生成大量日志数据的应用程序,最少使用 10 个 100 MB 的日志文件。
可以使用两种方法维护恢复时间目标(recovery time objective,RTO)策略,该策略可以确定在发生灾难事件(例如数据服务器丢失数据)时所能容忍的数据丢失量:
维护 RTO 策略的一种方法是使用自动日志备份,该方法将在日志文件写满后触发日志备份操作。这样可以在备份期间限制包含在日志文件中的事务的数据丢失,以及备份期间发生的其他事务的数据丢失。
维护 RTO 策略的另一种方法是使用调度程序。您可以创建一个任务,该任务从上一次日志备份起每隔一定时间自动备份任何新的日志数据。这将限制每个时间间隔内没有备份的事务的数据丢失。本系列教程 的 第 2 部分 “系统活动监视” 介绍了更多有关使用调度程序的信息。
如果需要使用 RTO 策略,则可以使用调度程序来插入具有期望的执行频率的任务,从而维护策略。这将在日常运行周期中的特定时间点自动备份日志文件。在日志进行备份和重新使用之前,应该先写满日志,您可以备份日志并添加新日志文件使事务得以持续处理,或者可以使用调度程序添加新的任务来查看状态,并自动执行任何操作。
您可以随时添加日志文件,并且在需要事务连贯性的情况下,数据库服务器将自动添加日志文件(例如,使用大量日志空间并且持续时间较长的事务)。
增加逻辑日志的空间容量的最简便的方法是再添加一个逻辑日志文件。
下面的表达式提供了总的日志空间(total-log-space)的配置示例,以千字节为单位:
LOGSIZE = (((connections * maxrows) * rowsize) / 1024) / LOGFILES |
服务器具有一个用于自动恢复的特殊日志。该日志称为物理日志。物理日志是磁盘上连续页面的集合。
当页面被读取到共享内存缓冲区并由用户修改后,该页面在初始状态下的副本被写入了物理日志。该副本被称为前映象(before image),即修改前的页面的副本。只有在缓冲区中对页面作出首次更改时才会将前映象写入物理日志。任何后续更改并不会造成其他的前映象被写入到物理日志。有一种自动恢复机制需要使用到这些前映象。
可以使用 onparams 移动物理日志的位置和大小。
以下命令将物理日志移动到 dbspace dbspace1 并将其大小重新设置为 3000KB:
onparams -p -d dbspace1 -s 3000 |
物理日志的大小在 PHYSFILE
配置参数中做了指定,它取决于两个因素:
RTO_SERVER_RESTART
配置参数
RTO_SERVER_RESTART
配置参数指定了快速恢复使用的目标时间量 事务生成物理日志活动的速率会影响检查点性能。在检查点处理期间,如果由于事务不断生成物理日志数据,物理日志开始变满,数据服务器将阻塞事务,以完成检查点处理并避免物理日志溢出。
要避免事务阻塞,数据库服务器必须具有足够的物理日志空间来容纳检查点处理过程中发生的所有事务活动。当物理日志达到 75% 的饱和时将触发检查点处理。必须在剩余的 25% 的物理日志被占用之前完成检查点处理。只要系统检测到可能发生物理日志溢出时就会发生事务阻塞,因为每个活动事务都将生成物理日志活动。
比如说,假设您具有一个 1 GB 的物理日志和 1000 个活动事务,这些事务可能会生成大约 80 MB 的物理日志活动(如果所有事务同时处于临界部分)。当使用了 750 MB 物理日志后,数据库服务器将触发检查点处理。如果在检查点完成之前,使用了 920 MB 物理日志,将发生事务阻塞,并且要直到检查点处理完成后才会解除阻塞。如果发生了事务阻塞,服务器将自动触发更加频繁的检查点处理来避免事务阻塞。您可以禁用自动检查点处理功能。
预测物理日志大小的第二个因素在于是否使用 RTO_SERVER_RESTART
配置参数指定了快速恢复使用的目标时间量。如果您不需要考虑快速恢复时间,就没有必要使用 RTO_SERVER_RESTART
配置参数。如果为 RTO_SERVER_RESTART
配置参数指定了值,事务活动将生成额外的物理日志活动。
通常,额外的物理日志活动对事务性能产生的影响微不足道,或者根本不会有影响。额外的日志行为用于在快速恢复期间为缓冲池提供帮助,这样可以最优化执行日志重放。如果物理日志非常大,超过了所有缓冲池的总的大小,则在快速恢复期间会发生页面刷新(page flushing)和页面故障。页面刷新和页面故障严重降低了快速恢复的性能,并且数据库服务器不能维护 RTO_SERVER_RESTART
策略。
对于缓冲池容量小于 4 GB 的系统来说,物理日志的大小应该是所有缓冲池总大小的 110%。对于较大的缓冲池,最少要 4 GB 的物理日志空间,然后再监视检查点的活动。如果检查点处理太过频繁并将影响性能,则需增加物理日志的大小。
当数据服务器配置的物理日志较小但具有大量用户时,将发生称为物理日志溢出的行为,这种情况很少发生。遵守上述设置物理日志大小的规则有助于避免物理日志溢出。当数据库服务器检测到不合适的配置时,将向消息日志生成性能警告。
如果检测到不合适的配置,您可以使用 onstat -g ckp
命令显示推荐的配置。
配置参数 | 说明/注释 |
---|---|
RTO_SERVER_RESTART |
该参数使您能够使用恢复时间目标(RTO)标准设置 Dynamic Server 在重启后恢复到发生某个问题之前所需的时间量,以秒为单位,并使服务器处于在线或静寂模式 |
RAS_PLOG_SPEED |
快速恢复期间物理日志恢复的速率。 |
RAS_LLOG_SPEED |
快速恢复期间逻辑日志恢复的速率。该参数不可配置。IDS 将更新这些值来反映实际的恢复速度(单位为页/秒)。 |
AUTO_CKPTS |
快速恢复期间物理日志恢复的速率。 |
RAS_PLOG_SPEED |
启用或禁用自动检查点行为 |
AUTO_LRU_TUNING |
启用或禁用自动 LRU 调优 |
AUTO_AIOVPS |
启用或禁用数据库服务器自动增加 AIO VPs 的数量的功能,以及当服务器检测到 AIO VPs 没有保持与 I/O 相同的工作负载时刷新线程的功能。 |
SQLTRACE |
控制默认行为,例如要跟踪的 SQL 语句的数量,以及查询下钻(drill-down)功能的跟踪模式。 |
EXPLAIN_STAT |
启用或禁用将查询统计信息部分包含在 explain.out 文件中的功能,SQL 语句 SET EXPLAIN 或 onmode -Y session_id 命令可以显示该文件 |
USELASTCOMMITTED |
指定当锁定发生时,数据库服务器是否使用最近提交的数据 |
SHMVIRT_ALLOCSEG |
指定一个阕值,Dynamic Server 将在从该值开始分配服务器内存,并且如果服务器不能分配新的内存段,将激活警级别 |
ENCRYPT_HDR |
启用或禁用 HDR 对(HDR pair)中服务器之间的加密 |
LOG_INDEX_BUILDS |
在创建索引语句期间,设置为 1 以启用索引页面日志。当使用 Remote Standalone Secondary (RSS) 节点时需要对主节点启用该参数。 |
ENCRYPT_SMX |
0。不要对 SMX 连接使用加密 1。可以对 SMX 连接使用加密 2。必须对 SMX 连接使用加密 |