Sybase 简介,第 1 部分:服务器设置

作者:Jay Sissom

Sybase 发布了其 Linux 版本的 SQL 数据库产品。这是其完整商业数据库产品的移植版本,功能完整,没有任何限制。本系列文章将介绍如何安装和配置服务器,以及如何设置和使用客户端。在一系列简短的文章中教授关于开发和维护客户端-服务器应用程序的所有知识是不可能的,但这些文章应该能让您入门。

什么是 Sybase SQL Server?

Sybase SQL Server 是一款工业级的客户端-服务器数据库引擎。它管理数据,并允许许多客户端高效且安全地访问这些数据。Sybase SQL Server 让您可以专注于编写应用程序,而不是编写数据访问和安全代码。

安装 Sybase SQL Server

在安装服务器之前,您必须确定您的系统是否能够处理它。包含所有文档的服务器将需要大约 180MB 的磁盘空间,以及用于数据库的空间。一个运行中的服务器至少需要 21MB 的 RAM。如果您有很多客户端,您应该为服务器提供更多的 RAM;因此,对于小型开发系统,至少需要 32MB 的 RAM。对于小规模生产服务器,我建议至少 64MB 的 RAM。通常情况下,您提供的 RAM 越多,运行速度就越快。

我已经在许多 Red Hat 5.1 系统上安装了服务器,因为它需要较新的 glibc 库。如果您安装的 Linux 版本较旧,不包含 glibc 库(Red Hat 4.2 及更低版本),您应该升级您的系统。如果您使用的是非 Red Hat 系统,您还需要 RPM 工具来安装文件。服务器以两个 RPM 文件分发。根据 Sybase Linux 网页 (http://linux.sybase.com/),您只能在 Red Hat Linux 5.x 和 Caldera OpenLinux 1.3 上安装服务器。在我看来,您可以将其安装在任何 Linux 系统上——只是会比使用 Red Hat 或 Caldera 版本更困难一些。

访问这些文件的网址是 http://linux.sybase.com/。该站点将指向提供文件下载的站点之一。请记住这个站点——它包含您在使用 SQL Server 时需要的重要信息。输入您的注册信息后,您将能够下载两个 RPM 文件:一个包含 Sybase SQL Server,另一个包含 HTML 和 PostScript 格式的文档。这大约是 40MB 的数据,所以如果您的互联网连接速度较慢,请准备好等待一段时间。幸运的是,安装软件所花费的时间将比下载软件少得多。

要安装服务器,请以 root 用户身份登录到您的 Linux 系统,然后键入以下命令

rpm -i sybase-ase-11.0.3.3-1.i386.rpm

系统会要求您阅读许可协议;然后它会将 Sybase 服务器安装到 /opt/sybase 目录。在我的系统上,这是一个问题,因为我通常在分区上没有足够的空间来存放 /opt/sybase,所以我创建一个链接,在安装之前将 /opt 重定向到 /usr/local。这样做是可行的,因为软件安装在哪里并不重要——它可以在任何目录中工作。从现在开始,我将假设您已将服务器安装在其默认位置。

在安装过程中,系统会要求您创建一个名为 sybase 的组和一个名为 sybase 的用户。您将使用 sybase 用户来执行数据库服务器的维护。所有需要访问 Sybase 服务器的用户都应该是名为 sybase 的组的成员。

现在通过运行以下命令安装文档文件

rpm -i sybase-doc-11.0.3.3-1.i386.rpm

安装没有做的一件事是正确设置文件的所有者。当您仍然以 root 用户身份登录时,请执行以下命令

chown -R sybase:sybase /opt/sybase
配置 Sybase 服务器

现在所有文件都已安装到您的系统上,是时候配置 SQL 服务器和备份服务器了。备份服务器用于在 SQL 服务器运行时备份 SQL 服务器中的数据。它保证在恢复时,您的数据库将具有适当的完整性。从操作系统复制数据库文件不能保证您的数据库表将被正确恢复。

如果需要,单个主机可以有多个 SQL 服务器。我不建议这样做,但这是一种选择。在我们的示例中,我们将在主机上配置一个 SQL 服务器和一个备份服务器。

使用您在安装 SQL 服务器时设置的密码,以用户 sybase 身份登录。由于这是您第一次以 sybase 用户身份登录,登录脚本会询问您是否要运行 sybinit。sybinit 程序用于配置新的和现有的 Sybase 服务器,位于 /opt/sybase/install 目录中。

如果您安装了文档,您可以使用浏览器并访问文件 /opt/sybase/doc/howto/howto-ase-quickstart.html 来跟随安装过程。杂志中没有足够的空间来显示您将看到的所有屏幕。这些屏幕在服务器附带的快速入门指南中有所记录。

您应该选择的第一个选项是选项 3,“配置服务器产品”。首先选择选项 1 配置 SQL Server。由于这是一个新服务器,再次选择选项 1。每个服务器都应该有一个唯一的名称。我建议根据服务器的功能命名服务器。例如,生产决策支持服务器可以命名为 dss_prod。开发会计服务器可以命名为 acctng_dev。对于本示例,将服务器命名为 linux_dev。当您完成填写屏幕的数据后,按 ctrl-A 保存您的数据。现在按 ctrl-A。此时,还需要九个步骤来配置此 SQL 服务器。

选择选项 1。interfaces 文件告诉 Sybase 产品服务器位于何处。每个服务器都将监听其主机上的特定端口。就像 SMTP 邮件、TELNET 和 Web 服务一样,Sybase 服务器需要一个唯一的端口来允许网络连接。interfaces 文件将保存网络上每个 Sybase 服务器的服务器名称、主机名和端口号。选择选项 3 为 linux_dev 服务器添加端口信息。sybinit 程序将自动填写您主机的主机名。您应该指定您的服务器将监听的 TCP/IP 端口。对于本示例,选择选项 2,然后指定 2360 作为端口号。任何未使用的端口都可以工作。按 ctrl-A 将此条目保存在 interfaces 文件中。在您确认一切正确后,再次按 ctrl-A

如果您有多个您访问的 Sybase 服务器,您可以将每个服务器的信息添加到您的 interfaces 文件中。

在继续之前,一些背景信息会有所帮助。数据库表将保存您的应用程序的数据。例如,应付账款应用程序将有一个发票表、一个供应商表和一个付款表。一个数据库可以保存许多表。一个 Sybase 服务器将有多个数据库。一个会计应用程序可能具有总账、应付账款和应收账款数据库。当安装服务器时,它将有四个数据库

  • master:master 数据库保存整个服务器的配置数据。

  • model:model 数据库是在服务器上创建的所有新数据库的基础。

  • sybsystemprocs:sybsystemprocs 数据库保存用于维护服务器的存储过程。

  • tempdb:tempdb 数据库是在处理查询时使用的临时工作区。

Sybase 服务器在设备中管理磁盘空间。设备是特定大小的预分配文件。设备文件最大可达 2GB。单个服务器可以有多个设备。数据库在设备上创建。

选择选项 2。master 设备保存 master 数据库、model 数据库和 tempdb 数据库。其默认大小为 21MB。如果您愿意,可以移动此文件的位置。如果您有足够的磁盘空间,您可以将其保留在当前位置。按 ctrl-A 保存此屏幕。sybinit 程序会给您一个关于您选择的文件名的警告。这是正常的;在 Linux 上,它总是会发出此警告。在其他 UNIX 操作系统上,Sybase 服务器设备应该是磁盘上的原始分区。这在当前版本的 Linux 上是不可能的,所以我们必须将我们的设备放在操作系统文件中。

选择选项 3。sybsystemprocs 数据库包含用于维护服务器的存储过程。此数据库也可以用于存储您为服务器维护编写的任何过程。我建议您将此数据库的大小加倍,以便您可以向服务器添加其他存储过程。当您这样做时,您必须先选择选项 5 来增加设备的大小,然后再选择选项 1 来增加数据库的大小。为选项 5 和 1 输入 32MB。您可以将其余选项保留为默认值,除非您想将设备文件放在不同的位置。按 ctrl-A 保存此屏幕。

选择选项 4。当服务器运行时,它会将错误消息写入文本日志文件。此屏幕允许您设置此文件的位置和名称。我建议您给此文件与数据库服务器相同的名称。将选项 1 更改为 /opt/sybase/install/linux_dev.log。按 ctrl-A 保存此屏幕。

选择选项 5。数据库服务器需要知道其备份服务器的名称。我总是给备份服务器与数据库服务器相同的名称,并在末尾加上 _bs。将选项 1 更改为 linux_dev_bs。按 ctrl-A 保存此屏幕。

选择选项 6。服务器可以使用多种语言。我从未使用过 us_english 以外的任何语言,所以我无法告诉您选择另一种语言会发生什么。对于我们的示例,只需按 ctrl-A 保存此屏幕的默认值即可。

选择选项 7。您可以配置客户端和服务器之间通信时使用的字符集。每个客户端都会告诉服务器它应该使用哪个字符集。如果您不确定您是否需要另一种字符集,您应该接受此屏幕的默认值。按 ctrl-A 保存此屏幕。

选择选项 8。在这里,您可以指定排序数据时使用的顺序。默认情况下,服务器在排序时使用二进制顺序。这是最快的排序方法;但是,当对大小写单词进行排序时,服务器使用 ASCII 字符集进行排序,以便大写字母在小写字母之前排序。将排序顺序更改为字典排序顺序,以便单词可以正确排序,而无需考虑大小写。按 ctrl-A

选择选项 9。如果您愿意,您可以让服务器维护关于用户的审计信息。对于我们的示例,我们不会安装审计。按 ctrl-A 配置服务器以不维护审计记录。

我们现在已经告诉 sybinit 程序配置您的 SQL 服务器所需的一切信息。按 ctrl-A 保存您的配置。sybinit 程序现在将配置您的 SQL 服务器。它会再次警告您关于 master 设备文件,但它会创建设备并为服务器做好使用准备。您的新 SQL 数据库服务器现在正在您的系统上运行。

ctrl-A 转到上一个屏幕。下一步是配置一个新的备份服务器。选择选项 2,然后选择选项 1 配置一个新的备份服务器。备份服务器的名称应该是 linux_dev_bs。按 ctrl-A 保存备份服务器名称。

我建议将备份服务器日志文件的名称更改为 /opt/sybase/install/linux_dev_bs.log。此服务器也需要在 interfaces 文件中指定。它将监听其自己唯一的端口。选择选项 2。选择选项 3 添加一个新的监听器。和以前一样,主机名已经指定。将选项 2 更改为 2361。这将是备份服务器的端口。按 ctrl-A 保存此屏幕。再次按 ctrl-A 将此条目写入 interfaces 文件。

其他所有内容都应该是正确的,所以按 ctrl-A 保存此屏幕。sybinit 程序现在将配置备份服务器并为您启动它。SQL 服务器和备份服务器现在都应该在您的主机上运行。

我们几乎完成了,但我们需要完成三个步骤。按 ctrl-A 转到上一个屏幕。选择选项 4,“配置 Open Client/Server 产品”。应该在使用这些产品之前配置这三个产品。老实说,我不知道配置这些产品有什么作用,因为没有可用的选项,并且它们似乎在配置之前就可以工作;但是,按照说明操作不会有坏处。依次选择这三个选项中的每一个来配置它们。当您完成时,按 ctrl-A 离开此屏幕。再次按 ctrl-A 离开 sybinit 程序。

您的所有条目都记录在一个日志文件中。如果您正在配置生产系统,请打印此日志文件并随身携带,以防您需要重新创建凌晨两点崩溃的服务器。

测试服务器

Sybase SQL Server 附带一个基本客户端。此程序称为 isql。它是一个交互式 SQL 程序,允许您向服务器输入 SQL 命令并查看结果。在命令行中,键入

isql -Usa -Slinux_dev

-U 选项告诉 isql 程序要使用的用户名;sa 是系统管理员帐户。它类似于 Linux 上的 root 用户。它在服务器中拥有所有权限。-S 选项指定要连接到的服务器。在我们的例子中,服务器名称是 linux_dev。isql 程序会要求您输入密码。在安装后,sa 用户没有密码,所以只需按 Enter 键即可。您现在可以输入将在您的 SQL 服务器上运行的 SQL 命令。

要运行的第一个命令是一个存储过程,它允许您更改用户的密码。在 1> 提示符下,键入

sp_password null,'

sp_password 是存储过程的名称。sa 用户没有密码,所以我们传递 null 作为第一个参数。此参数应该是当前用户的密码。第二个参数是新密码;将此密码放在引号中。

在 2> 提示符下,键入

go

go 告诉 isql 程序执行命令。如果您在键入 go 之前在键入命令时犯了错误,您可以键入 reset 来擦除命令并重试。

SQL 服务器的所有配置信息都存储在 master 数据库的表中。键入以下内容

1> select name from sysdatabases
2> go

这是一个 SQL 命令,用于查询 sysdatabases 表。它将列出您的服务器中所有数据库的名称。几乎所有 SQL 服务器的配置信息都存储在数据库表中。文档将为您提供关于这些表的更多信息。

要退出 isql 程序,请在 1> 提示符下键入 quit

SQL 服务器附带一个脚本,该脚本将在您的服务器上安装一个示例数据库。要安装此数据库,请在 $ 提示符下键入以下命令

sql -Usa -i ~sybase/scripts/installpubs2 \
   -Slinux_dev

在提示时键入您的新密码。该脚本将创建一个名为 pubs2 的数据库,然后创建包含数据的表。您现在可以键入如下查询

isql -Usa -Slinux_dev
Password:
1> use pubs2
2> go
1> select * from authors
2> go
au_id  au_lname    ...
----------- ------------------- ...
172-32-1176 White    ...
213-46-8915 Green    ...
...
1> quit
关闭服务器

在关闭您的 Linux 系统之前,您应该关闭您的 Sybase 服务器。使用 isql 程序执行此操作。以 sa 用户身份登录以关闭服务器。进入 isql 后,键入 shutdown SYB_BACKUP 以关闭备份服务器。SYB_BACKUP 是备份服务器的默认名称。然后键入 shutdown 以关闭 SQL 服务器;这将从内存中删除两个服务器。现在您可以关闭您的 Linux 系统。如果您没有正确关闭服务器,您可能会损坏数据。我建议编写一个脚本来自动执行此任务。

启动服务器

要启动服务器,您需要以用户 sybase 身份登录。切换到 install 目录并键入

 ./startserver -f ./RUN_linux_dev

以启动 SQL 服务器,然后

 ./startserver -f
./RUN_linux_dev_bs
以启动备份服务器。名为 /etc/rc.d/init.d/sybase 的启动脚本已安装在您的系统上。您可以将此脚本链接到 rc.d 目录中的适当位置,以便服务器在您启动和停止 Linux 系统时自动启动和停止。
结论

您已经安装了 SQL 服务器和备份服务器,并且您知道如何启动和停止它。关于服务器还有更多需要学习的内容。在本文末尾列出了可以帮助您了解新的 Sybase SQL 服务器的资源列表。我建议阅读服务器附带的 PostScript 文档。如果您不想打印数百页的文档,您可以使用 ghostscript 来查看它们。为了更方便地查看文档,请访问 http://sybooks.sybase.com/dynaweb 并选择 Sybase Version 11.0.x Products。您可以通过 Sybase 的网站阅读所有文档。

下个月的专栏文章将是关于编写数据库客户端以及安装 Sybase Perl 扩展 (sybperl),这将使您能够用 Perl 编写数据库客户端。

资源

Introduction to Sybase, Part 1: Setting Up the Server
Jay Sissom 负责印第安纳大学基于 Web 的财务决策支持数据的前端。他已经在许多操作系统上安装和支持了 Sybase 数据库,并使用 C、C++ 和 sybperl 为 Web 编写了数据库客户端,并使用 Visual Basic 和 PowerBuilder 等工具为 Windows 编写了数据库客户端。当他不编程时,他喜欢业余无线电和弹奏贝斯吉他和键盘。如果您有任何问题,可以通过电子邮件 jsissom@indiana.edu 与他联系。
加载 Disqus 评论