Ingres II HOWTO | ||
---|---|---|
上一页 |
关于使用 Ingres 的更多提示。
如果您希望 Ingres 在 Linux 启动时自动启动,并在您关闭或重启系统时停止,请执行以下操作
以 root 用户身份登录。
检查您的 Linux 版本是否具有 System V 或 BSD 风格的 init(init 的 man 手册页会说明这一点)。
如果您的系统符合 System V,则/etc/rc.d/init.d目录必须存在。在该目录下创建一个文件(将其命名为 ingres 或您希望的任何其他名称)。该文件应至少包含以下内容
#!/bin/sh case $1 in start) echo "Starting Ingres" su - ingres -c "ingstart" ;; stop) echo "Stopping Ingres" su - ingres -c "ingstop" ;; *) echo "Usage: ingres {start|stop}" exit 1 ;; esac exit 0 |
将该文件链接为K01ingres到与 Ingres 应停止运行的运行级别相对应的目录
# ln -s /etc/rc.d/init.d/ingres /etc/rc.d/rc0.d/K01ingres # ln -s /etc/rc.d/init.d/ingres /etc/rc.d/rc1.d/K01ingres # ln -s /etc/rc.d/init.d/ingres /etc/rc.d/rc6.d/K01ingres |
也将其链接为S99ingres到与 Ingres 应启动运行的运行级别相对应的目录
# ln -s /etc/rc.d/init.d/ingres /etc/rc.d/rc2.d/S99ingres # ln -s /etc/rc.d/init.d/ingres /etc/rc.d/rc3.d/S99ingres # ln -s /etc/rc.d/init.d/ingres /etc/rc.d/rc4.d/S99ingres # ln -s /etc/rc.d/init.d/ingres /etc/rc.d/rc5.d/S99ingres |
调用链接K01ingres和S99ingres并不重要,重点是名称以K开头的名称应包含一个较小的数字(以便在更改为较低的运行级别时 Ingres 尽早停止),而以S开头的名称应包含一个较大的数字(以便 Ingres 在所有其他程序启动后启动)。当然,文件名不得与现有文件的名称冲突。
如果您有 BSD 风格的 init,请将以下行放入/etc/rc.d/rc.local:
echo "Starting Ingres"
su - ingres -c "ingstart"
|
这将启动 Ingres。(实际上,即使您有 System V 风格的 init,也可以使用/etc/rc.d/rc.local)。
要自动停止 Ingres,请在/etc/shutdown.d中创建一个文件(例如,命名为 ingres),其中包含命令
echo "Stopping Ingres"
su - ingres -c "ingstop"
|
无论您的系统类型如何,您创建的文件都必须是 root 用户拥有的可执行文件。
当然,如果您的系统提供了用于配置程序自动启动和停止的实用程序(例如 RedHat 中的 chkconfig),如果您愿意,可以使用该实用程序。
访问 Ingres 数据库的最简单方法(至少对于初学者而言)是通过 ingmenu 程序。从 ingmenu,您可以访问 Ingres 基于表单的实用程序,通过这些实用程序,您可以创建、更新和查询表,创建、编辑和运行报表以及 ABF 或 Vision 应用程序。其用法是
$ ingmenu test |
Test 是数据库的名称。
在没有 Ingres/Net 的情况下,理论上 Ingres 应用程序无法访问不同机器上的数据库。但是,存在一种未经 CA 支持的方法,有时您可以使用该方法来解决此问题。
假设您的应用程序在主机 ingdev 上运行,而您想要更新或查询的数据库(名为 test)位于主机 ingserv 上。您的首要任务是找出在 ingserv 上运行的相应 DBMS 服务器的端口号。您可以使用 ipm 来实现此目的:以 ingres 身份,在 ingserv 上启动 ipm 并选择 服务器列表。在服务器列表中,选择类型为INGRES并且处理 test 数据库的服务器(您必须在test或ALL列中看到连接到数据库)。您可以在第一列中找到 DBMS 服务器的端口号。假设它是 1259。
在机器 ingdev 上,以下列方式设置 shell 变量II_DBMS_SERVER:
$ export II_DBMS_SERVER='ingserv::1259' |
现在运行命令
$ sql test |
如果它有效,您就可以访问主机 ingserv 上的 test 数据库。
此解决方案仅在两台机器具有相同的体系结构,运行相同的操作系统,两个 Ingres 安装中的字符集相同等等的情况下适用:我不知道必要条件的完整列表。因此,我不能保证此技巧会奏效。
另一方面,如果您在主机 ingserv 上重新启动 Ingres,DBMS 服务器进程将获得不同的 TCP/IP 端口,因此您可能需要自动化获取当前端口号到应用程序服务器的过程。您可以使用 iinamu 实用程序的 show 命令来实现此目的。如果只有一个服务器在运行,则以下命令行给出 DBMS 服务器的端口号
$ echo show | iinamu | grep INGRES | tr -s ' ' '\t' | cut -f4 |
Ingres 安装包含一个示例应用程序,该应用程序由 Ingres 的传统开发工具 ABF 创建。您可以使用 abfdemo 命令加载它。遗憾的是,在 Ingres CD 或 CA 站点上都找不到 ABF 和 Vision 的手册。
在 glibc 2.1 下的 SDK 存在一个问题:由 ABF 或 Vision 创建的应用程序既无法编译也无法直接从数据库运行。此问题在完整 Ingres 版本中已解决。对于 SDK,请安装 RedHat glibc 2.0 兼容性软件包。如果您没有 RedHat,请从以下 URL (网址) 下载它们
ftp://ftp.redhat.com/pub/redhat/redhat-6.0/i386/RedHat/RPMS/compat-egcs-5.2-1.0.3a.1.i386.rpm
ftp://ftp.redhat.com/pub/redhat/redhat-6.0/i386/RedHat/RPMS/compat-glibc-5.2-2.0.7.1.i386.rpm
ftp://ftp.redhat.com/pub/redhat/redhat-6.0/i386/RedHat/RPMS/compat-libs-5.2-1.i386.rpm
除了兼容性软件包外,您还需要一个 Ingres 补丁。它于 1999 年 9 月发布在 Ingres 新闻组中。我有一个副本,如果您希望安装它,请给我发送电子邮件。
兼容性软件包和补丁程序可能不适用于所有 Linux 发行版。我仅在 RedHat 和 Caldera Open Linux 上测试了它们。
以前的 Perl 版本(包括版本 4)通过称为 ingperl 的库使访问 Ingres 成为可能。您可以在 http://www.contrib.andrew.cmu.edu/~lfm/ingperl.html 找到有关 ingperl 的信息。
在 Perl 5 中,出现了一个新的统一数据库接口,称为 Perl DBI。它的站点是 http://www.symbolstone.org/technology/perl/DBI/index.html。
您可以从该站点下载 DBI 的 Ingres 模块。
我为您提供一些指向重要 Ingres 站点的指针
http://www.cai.com/ingres/:CA 站点上 Ingres RDBMS 的主页。
http://support.cai.com/ingressupp.html:Ingres 技术支持。
http://www.cai.com/ingres/inquire/:inquire_ingres:Ingres 技术杂志。
http://www.naiua.org:北美 Ingres 用户协会的站点。查看 FAQ (常见问题解答) 页面,以及/papers目录。
news:comp.databases.ingres:Ingres 新闻组。
http://www.deja.com/group/comp.databases.ingres:Deja 上的存档 Ingres 新闻组。
http://munkora.cs.mu.oz.au/~yuan/Ingres/ingres.html:William Yuan 的 Ingres 参考页面,其中包含大量 Ingres 信息。
http://www.mercurie.co.uk/ingres/:Prijesh Patel 的非官方 Ingres 网页,其中包含来自 Ingres 新闻组的编辑后的帖子。
http://www.palslib.com/Ingres_II/Ingres_II.html:Pal's Linux RDBMS Library 的 Ingres 部分。
玩得开心!