3. 配置 ASE 服务器

到目前为止,我们已经将软件复制到文件系统中,现在我们将进行数据库服务器的实际设置。首先,我们需要确保 sybase 用户已正确设置,然后我们可以启动配置实用程序并在其中输入正确的设置。

3.1. 预配置步骤

  1. 首先,请阅读LICENSE文件(如果存在)。如果您同意其中的条款,请继续阅读以下列表。

  2. RPM 包中的安装脚本会执行一些有用的步骤,如果您使用额外的 RPM 开关或 alien 安装,您可能需要手动执行这些步骤。其中之一是在 ASE 12.5 中,目录会创建具有较短名称的快捷方式。ASE-12_5 会获得一个名为 ASE 的符号链接,OCS-12_5 会获得一个名为 OCS 的符号链接。您可以自行设置这些链接,以节省稍后的一些输入。
    bash$ cd /opt/sybase
    bash$ ln -s SYBASE_ASE ASE
    bash$ ln -s SYBASE_OCS OCS
    bash$ ln -s shared-1_0 shared
    bash$ ln -s SYSAM-1_0 SYSAM
    

  3. 将安装的所有权更改为 sybase 用户。
    bash$ su - root
    bash# chown -R sybase.sybase /opt/sybase
    bash# chmod -R ug+w /opt/sybase
    
    这或多或少是sybinstall.sh脚本为您完成的工作。在 SQL Server 11.0.3.3 中,有一个脚本尝试设置所有正确的权限,$SYBASE/install/setperm_all

  4. 确保您允许 ASE 分配必要的共享内存量。您当前的上限可以通过 ipcs -lm (以千字节为单位) 或 cat /proc/sys/kernel/shmmax (以字节为单位) 或 sysctl kernel.shmmax (以字节为单位) 找到。这可以使用
    sysctl -w kernel.shmmax=[number of bytes]
    或直接通过
    echo [number of bytes] > /proc/sys/kernel/shmmax
    以 root 用户身份设置。确保通过在/etc/sysctl.conf中插入一行或将 echo 命令放在 rc 启动文件(例如 rc.local)中来永久更改此设置,如 Sybase 文档所述。根据版本,以下是 ASE 的内存要求

    表 3. ASE 内存要求

    版本最小内存shmmax“总内存”
    11.0.3.3˜15 MB15360000 字节7500 个 2K 页面
    11.9.2.x32 MB33554432 字节16384 个 2K 页面
    12.5.0.x50 MB52428800 字节25600 个 2K 页面

  5. 确保 sybase 用户已正确设置所有相关的环境变量。

    表 4. Sybase 环境变量

    版本变量设置为
    11.0.3.3 和 11.9.2.x  
     $LANG必须未设置!
     $LC_ALL“default”
     $SYBASE安装的顶层目录,默认为 /opt/sybase/
     $PATH将 /opt/sybase/bin 添加到现有 $PATH 的开头
     $LD_LIBRARY_PATH将 /opt/sybase/lib 添加到现有 $LD_LIBRARY_PATH 的开头
     $SYBPLATFORM“linux”
    12.5.0.x以上所有以及 
     $SYBASE_ASE安装的 ASE 部分的子目录(非完整路径)
     $SYBASE_OCS安装的 Open Client / Open Server 部分的子目录(非完整路径)
    创建一个包含所有环境变量的脚本,您可以 source 该脚本,或修改启动文件,例如.cshrc.profile。以下是需要的设置

    sh/bash/ksh 类型 shell
    unset LANG
    export LC_ALL="default"
    export SYBASE="/opt/sybase/"
    export PATH="$SYBASE/bin:$SYBASE/$SYBASE_ASE/bin:$SYBASE/$SYBASE_OCS/bin:
    $SYBASE/$SYBASE_SYSAM/bin:$PATH"
    export LD_LIBRARY_PATH="$SYBASE/lib:$SYBASE/$SYBASE_ASE/lib:$SYBASE/$SYBASE_OCS/lib:
    $LD_LIBRARY_PATH"
    export SYBPLATFORM="linux"
    export SYBASE_ASE="ASE"
    export SYBASE_OCS="OCS"
    export SYBASE_FTS="FTS"
    export SYBASE_SYSAM="SYSAM"
    
    csh/tcsh 类型 shell
    unsetenv LANG
    setenv LC_ALL default
    setenv SYBASE /opt/sybase/
    setenv PATH $SYBASE/bin:$SYBASE/$SYBASE_ASE/bin:$SYBASE/$SYBASE_OCS/bin:
    $SYBASE/$SYBASE_SYSAM/bin:$PATH
    setenv LD_LIBRARY_PATH=$SYBASE/lib:$SYBASE/$SYBASE_ASE/lib:$SYBASE/$SYBASE_OCS/lib:
    $LD_LIBRARY_PATH
    setenv SYBPLATFORM=linux
    setenv SYBASE_ASE ASE
    setenv SYBASE_OCS OCS
    setenv SYBASE_FTS FTS
    setenv SYBASE_SYSAM SYSAM
    

  6. 准备数据区域。

3.2. 准备数据区域

由于软件的文件系统现在已准备就绪,我们可以决定将用于保存数据库中插入的数据的数据存储位置。首要的决定是使用原始设备还是文件系统。传统上,使用原始设备。您必须分区磁盘并设置特定的标签,才能将其识别为原始设备。Linux 之前没有这个功能,Sybase 虚拟设备而是写入文件系统中的文件。

那么,这些方法之间有什么区别?您应该在何时选择每种方法?不幸的是,这是答案非常明确且毫不含糊的“视情况而定”的领域之一。原始设备最初是通过内核补丁引入的,然后包含在 2.4 系列中。您可以使用命令 raw 来创建分区和/dev/rawn设备之间的绑定。这意味着您需要在磁盘上有一个空闲分区。稍后更改此设置也可能很困难。原始设备的优点是您确切知道它们在磁盘上的位置 - 如果您愿意,可以将它们放在最快的柱面上。对原始设备的写入将是无缓冲的,它们将直接写入磁盘。在发生故障(例如断电、磁盘控制器故障或进程崩溃)时,已完成的写入保证在磁盘上,而不是仅写入等待磁盘就绪的缓冲区。此外,ASE 服务器将在这些设备上执行异步 I/O。它可以排队一系列 I/O,而不是必须执行单个 I/O,等待其完成,然后执行下一个操作。在 I/O 结果挂起期间,ASE 服务器将执行其他工作。对于写入文件系统上文件的虚拟设备(支持 ext2、ext3 和 Reiserfs),写入通常会写入文件系统缓冲区。实际文件可能位于分区上的任何位置,并且可能不是连续的。请注意,不需要日志文件系统,因为这些文件系统只会记录对 inode 的更改,而不会记录数据块的内容。Sybase ASE 事务日志将为您完全执行这种“日志”数据修改的操作。缓冲意味着从文件系统缓冲区而不是必须从磁盘读取数据来读取未保存在 ASE 缓存中的数据可能会更快,从而加快这些操作。但是,写入可能需要更长的时间才能完成,因为它们必须通过文件系统驱动程序层。为了安全地写入文件系统设备,您可以配置 ASE 以使用 O_DSYNC 标志打开设备,这将导致写入在写入时立即刷新到磁盘。

在 ASE 11.0.3.3 ESD #6 中,支持原始设备。这将需要 GPL 目录中附带的某些补丁,一个用于原始设备访问,一个用于 KAIO。其中包含有关如何将这些补丁应用于当时最新的内核和发行版的说明。

在 11.9.2.x 中,决定在 Linux 内核正式包含并支持原始设备之前,不包含任何实验性的原始设备支持。为了保证安全写入,默认情况下始终启用 O_DSYNC 标志。您可以使用跟踪标志 1625 全局禁用此标志;添加 -T1625 作为 RUN_SERVER 文件的参数。

在 ASE 12.5.0.x 中,从 12.5.0.2 开始进行了更改,服务器现在被编译为使用内核 2.4 功能。这意味着您可以在 OS 级别创建原始设备,并配置 ASE 以使用这些设备,而无需任何特殊的补丁。如果您喜欢文件系统设备,则可以在使用 disk init 创建设备或使用 sp_deviceattr 存储过程稍后修改设备时,将 O_DSYNC 标志设置为与dsync=true参数一起使用。

3.3. 启动配置

要配置 SQL Server 11.0.3.3,您需要以 sybase 用户身份登录并启动 sybinit 实用程序。您可以在控制台中运行此程序,进行更改,然后按 Ctrl-A 表示“接受”,按 Ctrl-X 返回上一个菜单。

在 ASE 11.9.2.x 和 12.5.0.x 中,您通常使用 srvbuild 命令,但您需要 X 服务器来显示它。对于那些不使用 X 的用户,一个选择是使用 shell 脚本“sybinit4ever”,可从 SyPron 网站获取,请参阅后面的第三方实用程序部分。这将为您提供一个经典的 sybinit 菜单界面来进行配置过程。Sybase 的另一个选择是 srvbuildres 实用程序,该实用程序使用包含所有配置选项的资源文件,您可以使用您的设置编辑这些选项,这些选项在《安装指南》的附录中进行了描述。

配置服务器的确切条目在 ASE 11.0.3.3 文档 RPM 中的 /opt/sybase/doc/howto/howto-ase-quickstart.html 文件以及较新版本的“UNIX 配置指南”中有更详细的描述。所有版本都需要的信息包括

一旦您确定了这些设置,请启动配置程序。如果您使用 srvbuild,您需要正确设置您的 $DISPLAY 变量。输入请求的设置,并让配置实用程序构建服务器。此过程的某些部分,例如创建数据库设备和加载系统存储过程,将需要一些时间。一旦该过程完成,您的服务器应该已经构建完成并已启动并运行,准备好接受请求。

3.4. 完成

如果您想要自动启动和关闭,请考虑 rc.sybase 脚本是一个良好的开端。您可以将其复制到所有其他启动脚本所在的位置,并从您的运行级别目录创建正确的启动和停止链接。