配置准备

  在本模块结束时,您将能够︰

  • 查看软件的release notes内容

  • 识别必须要设置的操作系统内核参数

  • 确定必须安装的操作系统补丁

1. 查看release notes

  release notes包含以下几类信息:

  • 特定平台的信息
    — 推荐的内核参数设置
    — 必需的补丁
    — 支持的接口

  • 文档更新

  动态服务器的release notes 位于$SINODBMSDIR/release 目录。release notes包含在产品文档中找不到的几种类型的信息,并且提供 HTML 文件和文本文件的格式。

  特定平台的信息会在** ids_machine_notes_version***文件中找到,其中version是动态服务器产品的版本号。(平台描述计算机的品牌和型号、操作系统和操作系统版本)。在这个文本文件中,您可以找到内核参数列表和平台的推荐设置;一系列机器所需的补丁程序;以及平台支持的各种接口。

  在release notes目录中的 HTML 文件中提供文档的更新。

  对于 Windows的命令行应用程序,PATH 环境变量应该包含%INFORMIXDIR%\bin。

2. 设置内核参数

  release notes提供了推荐设置:

  • 信号量内核参数
  • 共享内存内核参数
  • 其他内核参数

  以release notes中的推荐为基础为您的计算机系统设置内核参数。修改内核参数需要超级用户(root )权限,因此需要以计算机系统管理员的身份工作来实现这些改变。系统的实际设置可能会因数据库大小和访问用户数的不同而不一样。release notes中说明的两组主要的内核参数是信号量参数和共享内存参数。这些以及一些其他的参数,会在接下来讲解。

  关于如何设置您系统内核参数的信息,请参阅操作系统文档。

2.1 内核参数:信号量

  • System V (仅限 Unix)
    — SEMMNI-可用信号量集合的最大数量
    — SEMMSL-一个集合中的最大信号量数量(应该 >= 100)
    — SEMMNS-可用信号量的总数
      SEMMNI * SEMMSL = SEMMNS
      SEMMNS = #VPs + #shared memory users + utilities
  • BSD:
    — SEMMNI--可用信号量集合的最大数量
    — SEMMNS--可用信号量总数
     SEMMNS = #VPs + #shared memory users + utilities

  信号量 是一种标志或上锁机制。服务器使用信号量来控制进程,让他们在不工作时静默。信号量还用于同步共享内存连接的客户端/服务器通信。信号量是使用 UNIX 内核中的配置参数为整个系统分配的。

  每个服务器实例,需要为每个虚拟处理器 (VP) 分配一个信号量和以及每个共享内存连接分配一个信号量。

  每个服务器实例都为下列各项使用一组信号量:

  • 每(一直到) 100 个随服务器被初始化的VP 组。
  • 每个可能动态添加的附加VP(当服务器在运行时)。
  • 每100(或更少)个通过共享内存通信接口进行连接的用户会话组。

服务器实用程序

  服务器实用程序如 onmode 就使用共享内存连接。必须为每个服务器实例配置最少 两个信号量集:一个用于 VP 集的初始化,一个用于服务器实用程序使用的共享内存连接。

  信号量参数随系统的变化而不同。请检查您的操作系统参考手册,明确这些配置参数的确切含义。

参数 说明
SEMMNI 此值指定系统中信号量集标识符的总数。一个集通常包含几个信号量。
SEMMSL (System V)此值指定了在一个信号量集中信号量的最大数目。SEMMNI * SEMMSL 的值确定了在系统上可用信号量的总数。此参数应设置为一个大于 100 的值。
SEMMNS 此值指定了在您的 UNIX 系统中信号量的总数。此值应该等于 SEMMNI * SEMMSL 的值。

Linux 内核参数的设置:

  使用 2.4.x 系列 Linux 内核的系统的 msgmni(消息队列)参数的缺省值为 16,即只允许这些可以并发连接到 SinoDB上。因此,必须更改信号量数组参数才能使 SinoDB 成功运行。

  编辑**/etc/sysctl.conf** 文件然后添加:

   kernel.msgmni=512
   kernel.semi=250 128000 32 1024

  以 root 用户执行下列命令来动态激活新的内核参数值:

   sysctl -p

  Windows 没有内核参数的概念。

2.2 内核参数:共享内存

  • System V(仅限 Unix):
    — SHMMAX——单个的共享内存段的最大值
    — SHMSEG——单个进程可以访问的最大段数
    — SHMMNI——UNIX系统中共享内存段的最大数量

  • BSD:
    — SHMSIZE——共享内存段的最大值
    — SHMMNI——UNIX 系统的最大段数

    SHMMAX * SHMSEG =服务器可以访问的共享内存大小
    SHMMAX * SHMMNI =操作系统可用的共享内存大小

  为了对服务器提供可用的共享内存,UNIX 操作系统内核参数必须设置足够的共享内存资源以满足服务器的需求。每个系统需要至少两个共享内存段(如果共享内存用于通信的话,则需要三个),每个共享内存分区用一个段。System V 型的 UNIX 版本所需调整的 UNIX 参数为:

参数 说明
SHMMAX 这个参数指定了单一的共享内存段的最大值
SHMSEG 这个参数指定了一个单一进程能占用的共享内存的最大段数。这个参数对 BSD UNIX 版本不适用。
SHMMNI 这个值为整个系统指定了总段数。

2.3 其他内核参数

  • 打开文件的个数
  • TCP/IP 参数
  • 最大进程数和用户数

  如果服务器上有大量的会话的话,往往需要增加一些内核参数的值。

  有可能需要修改涉及每个进程的或是整个系统的打开文件数量的内核参数。配置每个进程的打开文件数的公式是:

(# TCP/IP sessions) + (# of chunks,如果使用kaio) + (# listen threads) +(# distributed connections)

  每个 TCP/IP 连接都需要一个文件描述符。如果正在使用 KAIO 内核,每个chunk都需要一个文件描述符。每个侦听线程(listen thread)(通常只有一个)需要一个文件描述符。如果利用分布式 SQL 语句连接到其他服务器上,那么与远程服务器的连接都需要一个文件描述符。

  如果应用程序要通过 TCP/IP TLI 接口与数据库链接,可能需要增加 TCP/IP 内核参数值。

  最后,还可能需要修改处理最大进程数和用户数的所有相关的内核参数。

3. 操作系统补丁和支持的接口

操作系统补丁

  在ids_machine_notes_version文件中列出了在创建数据库服务之前需要在电脑上安装的操作系统补丁。大多数操作系统供应商都在他们公司网站上提供了补丁的下载及安装说明。

支持的接口

  release notes也告诉您在已安装产品平台上支持哪些接口。这包括是否支持terminfo ,是否可以使用 TLI 或Sockets的 TCP/IP接口,或动态服务器在该平台上支持哪些第三方存储管理程序。