SinoDB常用Onconfig配置参数说明

1. Root Dbspace 参数配置

  • ROOTNAME :根数据库空间名称包含保留页面和内部跟踪表,默认为rootdbs。

  • ROOTPATH : 根数据库空间的物理路径。

  • ROOTOFFSET :根数据库空间到设备的偏移量(KB)。某些原始设备需要使用偏移量,通过使用偏移量,可以在同一个raw上创建多个块设备。

  • ROOTSIZE :根数据库空间的大小,以KB为单位。最小值建议200000。

  这些参数只能在初始化服务器之前修改,为根dbspace分配空间后不能再进行更改。

2. Physical Log 参数配置

  • PHYSFILE :磁盘上物理日志的大小(以KB为单位)。 磁盘上只创建一个物理日志。 物理日志大小必须是系统默认页大小的倍数。

  • PHYSBUFF :物理日志缓冲区的大小(单位KB)。通过设置PHYSBUFF配置参数来确定两个物理日志缓冲区中的每一个的大小。 物理日志缓冲区的大小决定了在刷新到磁盘上的物理日志文件之前可以保存在内存中的数据前映页数。

  默认情况下,当服务器初始化时,物理日志和逻辑日志文件位于根dbspace中。 在服务器初始化之后,可以将它们移动到另一个数据库空间。

3. Logical Log 参数配置

  • LOGFILES :逻辑日志文件的数量(初始化时默认为6个)。

  • LOGSIZE :每个逻辑日志的大小,以KB为单位。

  • DYNAMIC_LOGS :动态日志分配的类型。可接受的值是:

   2自动。 必要时,服务器将新的逻辑日志添加到根数据库空间。

   1手动。 必要时,服务器通知DBA添加新的逻辑日志。

   0已禁用

  • LOGBUFF :逻辑日志缓冲区的大小,以KB为单位。 服务器默认有三个逻辑日志缓冲区。逻辑日志缓冲区的大小决定了 在缓冲区刷新到磁盘上的逻辑日志文件之前可以保存在内存中的事务数。

  默认情况下,当服务器初始化时,物理日志和逻辑日志文件位于根dbspace中。 在服务器初始化之后,建议将它们移动到专门数据库空间。

4. Long Transaction 参数配置

  如果服务器无法回滚长事务,服务器将挂起,直到有更多的磁盘空间可用。

  • LTXHWM :在事务确定为长事务并回滚之前可以填充的逻辑日志的百分比,一般建议配置为 50%,具体需根据逻辑日志的大小进行配置。

  • LTXEHWM :在服务器暂停所有其他事务之前已经填充的逻辑日志的百分比,以便正在回滚的长事务独占使用日志。一般建议配置为60%,具体需根 逻辑日志的大小进行配置。

  这些百分比是逻辑日志文件数量的百分比,而不是逻辑日志的总大小。 此外,数据库服务器只有在切换到下一个逻辑日志文件时才会检查此百分比。 默认的六个逻辑日志文件是不够的,建议使用更大的数字,例如30或40或甚至100个逻辑日志文件。

  当动态日志DYNAMIC_LOGS打开时,可以为LTXHWM和LTXEHWM设置较高的值,因为服务器可以在长事务回滚期间添加新的逻辑日志。

  如果将动态日志DYNAMIC_LOGS关闭,请将LTXHWM和LTXEHWM设置为较低的值,例如50和60或更低,以防止由于缺乏逻辑日志空间而导致的长事务回滚挂起服务器。

  使用企业(ER)复制时,将LTXEHWM设置为比LTXHWM至少高出30%以最小化日志溢出。

5. 服务器消息文件参数配置

  • MSGPATH :服务器消息日志文件的路径

  • CONSOLE :服务器控制台消息文件的路径

6. 临时dbspace和sbspace配置参数

  • DBSPACETEMP :用于存储临时表和其他对象的dbspace的列表。如果没有指定数据库空间,或者如果所有指定的数据库空间无效,临时文件将在/ tmp目录中创建。

  • SBSPACETEMP :用于存储智能大型对象的临时表的sbspaces列表。 如果没有指定sbspace,临时文件将在标准sbspace中创建。

7. Dbspace和sbspace配置参数

  • SBSPACENAME: 默认存储智能大对象的sbspace名称,如果创建智能大对象时未指定sbspace,则默认存储在该位置。一些DataBlade模块也在该位置存储智能大对象。

8. 系统参数配置

  • SERVERNUM :服务器实例的唯一ID。 可接受的值为0到255(含)。

  • DBSERVERNAME :默认数据库服务器的名称,是客户端应用程序尝试连接时唯一标识。 它用作sqlhosts文件中的一个键,以标识服务器的位置和方法,客户端用来与之通信。同时,它也对应于SinoDB数据库实例环境变量的值。

  • DBSERVERALIASES :此可选参数可用于指定其他服务器名称,以允许使用与定义不同的连接方法连接到服务器DBSERVERNAME。 DBSERVERALIASES 中列出的每个名称必须与sqlhosts文件中的条目相对应。 最多32 个备用数据库服务器名称,当指定了多个名称时,使用逗号分隔名称(无空格)。

  • FULL_DISK_INIT :指定是否可以运行oninit -i

   0:只有在rootchunk位置没有检测到实例时,才允许完全磁盘初始化。 对 于oninit -ie,只有在没有找到现有加密密钥数据库或存储文件时, 才允许完全磁盘初始化。

   1:如果在rootchunk位置检测实例已存在,需要再次初始化时,设置为1。 对于oninit -ie,如果找到现有的加密密钥数据库或存储文件,则需要设置为1。

9. 网络配置参数

  • NETTYPE :用于特定协议的轮询线程的配置,格式是:

   NETTYPE <协议>,<# 轮询线程> ,<连接数/线程数>,(NET|CPU)

   可以配置多个不同协议的NETTYPE条目。如:

    NETTYPE soctcp,2,150,NET

    NETTYPE ipcshm,1,50,CPU

    NETTYPE tlitcp,2,100,NET

  • LISTEN_TIMEOUT :服务器等待连接的秒数

10. CPU相关参数配置

  • MULTIPROCESSOR :指定是否打开服务器系统中的多处理器功能。0:单处理器,1:多处理器或多核芯片。

  • VPCLASS cpu :配置CPU VPs。格式:VPCLASS cpu, num=<CPU VP数量>,[,max=<class 的最大数量>][,aff=<单CPU数> | - |( -/ ) ][,aff=<单CPU数> | - |( -/ ) ][,noage]

  例如:VPCLASS cpu,num=8,aff=0-7,noage

   num=num_VPs :数据库服务器最初启动的虚拟处理器数量;

   max=max_VPs :该类允许的最大虚拟处理器数量;

   aff=affinity :如果处理器亲和度可用,则将虚拟处理器分配给CPU;

   noage :如果操作系统实现优先级老化,则操作系统的优先级老化将被禁用

  • SINGLE_CPU_VP :指定服务器是否只运行一个CPU VP。0: 多个CPU VPs;任何非零值:代表只有一个CPU VP。

  将SINGLE_CPU_VP配置参数设置为1,表示只打算在服务器上只使用一个CPU VP。 这样可以防止服务器由多个CPU VP启动,并且不允许动态添加CPU或用户定义的VP。

11. AIO和清理相关配置参数

  • VPCLASS aio :配置AIO VP。

   格式是:VPCLASS aio,num = <#> [,max = <#>] [,aff = <#>] [,noage]

   示例:VPCLASS aio,num = 1

  • CLEANERS :页面清理线程的数量。页面清除字段的数量指定了启动了多少页清除线程从缓冲池中检索修改后的页面,并将其提供给AIO VPs或要写到磁盘 的UNIX内核。最大的页面清理线程配置是128。

  • DIRECT_IO :指定是否将直接I/O应用于dbspace块的熟文件。
     0:禁用;
     1:启用直接I/O;
     2:启用并发I/O。

12. 锁相关配置参数

  • LOCKS :服务器启动时的初始锁的个数。如果需要,锁可以动态增加。

  • DEF_TABLE_LOCKMODE :设置表的默认锁定模式。 可接受的值为ROW和PAGE。 默认值为PAGE,一般我们设置的锁为ROW。

13. 共享内存配置参数

  • RESIDENT :控制共享内存是否驻留。
     0:关(默认)
     1:仅锁定驻留段
     n:锁定驻留段和下一个n-1个虚拟段,其中n <100
     -1:锁定所有驻留和虚拟段

  • SHMBASE :共享内存基地址; 不要改变。

  • SHMVIRTSIZE :共享内存的虚拟段的初始大小(以KB为单位)。SHMVIRTSIZE配 置参数设置分配的第一个虚拟部分段的大小。 如果SHMVIRTSIZE大于限制段大小的内核参数,则分配多个段,直到达到SHMVIRTSIZE的大小。

  应将SHMVIRTSIZE设置得足够高,以便数据库服务器在正常操作期间不必再分配其他段。 数据库分配和维护附加段的代价高昂,只分配一个虚拟段时,性能最好。 不过,如果SHMVIRTSIZE设置得太高,计算机上的所有其他活动的内存可用量就会减少。

  • SHMADD :额外新增虚拟共享内存段的大小(以KB为单位)。请根据需要为SHMADD参数设置分配给新增虚拟共享内存段的大小。

  • EXTSHMADD :每个扩展共享内存段的大小(以KB为单位)。

  • SHMTOTAL :设置可分配给虚拟部分的共享内存总量,以KB为单位。0表示无限制,默认值为0。

  如果SHMTOTAL设置得太高,则数据库服务器可能会分配这么多共享内存,使得计算机必须将内存中的数据交换到磁盘,结果是计算机上所有活动的性能下降。 如果SHMTOTAL设置得太低,则在需要时,数据库服务器可能无法将段分配到虚拟部分,因此数据库服务器活动可能会减慢或阻止。

14. 检查点参数配置

  • CKPINTVL :设置服务器检查点的频率(秒)。 0表示服务器不检查 检查点。 如果RTO_SERVER_RESTART已经设置,则忽略此参数。

15. ontape磁带设备参数配置

  • TAPEDEV :用于备份的设备路径。 如果使用标准I/O代替设备,设置为STDIO。

16. ontape逻辑日志磁带设备配置参数

  • LTAPEDEV :逻辑日志的磁带设备路径。用于备份逻辑日志的路径。如果设置为 /dev/null ,则不进行备份,逻辑日志写满了会自动覆盖重写。

17. 缓冲池和LRU配置参数

  • BUFFERPOOL :指定每个缓冲池中缓冲区和LRU队列的默认值。 不同页的dbspace都有一个缓冲池,都要配置一个BUFFERPOOL条目。 onconfig.std文件包含两个初始条目:基于新页面大小条目的默认条目,以及操作系统默认页面大小的条目。 当添加不同页大小的数据库空间时,IDS会自动向onconfig文件添加与默认BUFFERPOOL条目相同的值的BUFFERPOOL条目,但默认关键字被size = Nk替换,其中N是新页面尺寸。

  格式:

  BUFFERPOOL size=page_size,lrus=num_lrus,buffers=num_buffers,
  lru_min_dirty=min_dirty_pages,lru_max_dirty=max_dirty_pages

  –page_size :页面大小,单位为KB

  –num_lrus :LRU队列数,lrus = cpu vp * 4

  –num_buffers :缓冲区数量,每个缓冲区的大小是page_size

  –min_dirty_pages :当脏的缓冲池中的页数达到缓冲池总页数的百分比时,页面刷新停止。

  –max_dirty_pages :当脏页数达到总缓冲池页面的百分比时,页面刷新开始.

  共享内存缓冲池通过使用指向缓冲区表的几个链表列表进行管理。 配置参数LRU确定服务器的LRU队列数。 您可以配置三个或更多(取决于平台)LRU队列对。 每一对由干净的队列(FLRU)和脏队列(MLRU)组成。

  BUFFERPOOL的lrus指定在初始化服务器时要创建的LRU队列数,lrus建议配置的大小为 cpu vp*4。

  BUFFERPOOL配置参数的lru_min_dirty和lru_max_dirty设置确定MLRU队列缓冲区刷新到磁盘的频率。

  lru_max_dirty定义了页面清理器活动开始之前被允许变脏的LRU队列对的最大百分比。 当相对于队列中缓冲区总数的修改缓冲区数量超过lru_max_dirty设置的百分比时,页面清理线程将在下一个活动周期(至少每60秒发生一次)开始将页写入磁盘。

  lru_min_dirty定义在页面清理活动完成后允许保留修改的LRU队列对的百分比。 一旦修改的缓冲区数量低于lru_min_dirty设置的百分比,页面清理线程将停止其活动。