本章包含配置红帽企业 Linux 来使数据库服务具备高可用性的说明。
![]() | 注记 |
---|---|
下列描述给你提供了数据库配置范例的说明。请留意,每个数据库产品的更新版本会和这里显示的略有差异,因此,这些信息也许不能够被直接应用。 |
数据库服务可以为数据库应用程序提供高可用性的数据。然后,该应用程序可以为数据库客户系统,如万维网服务器,提供网络访问。如果该服务失效转移,这个应用程序就会通过新的群集系统来访问共享数据库数据。一个可网络访问的数据库通常被指派了一个 IP 地址,这个地址和服务一起被失效转移以便保持客户的透明访问。
本节提供了为 Oracle 数据库设置群集服务的范例。虽然服务脚本中使用的变量要依据特定的 Oracle 配置而定,下面的例子也许会在各自的环境中设置服务方面为你提供协助。关于提高服务性能的信息,请参阅第 4.2 节。
在下面的例子中:
服务包含一个 Oracle 客户可使用的 IP 地址。
服务有两个挂载的文件系统,一个用于 Oracle 软件(/u01/),另一个用于 Oracle 数据库(/u02/),它在服务被添加前就被设置了。
名为 oracle 的 Oracle 管理账号在服务被添加前就在运行服务的群集系统上被创建了。
管理目录位于共享磁盘上,它和 Oracle 服务(如 /u01/app/oracle/admin/db1)一起使用。
创建一个能够使每个群集成员都正确使用 Oracle 服务的前后一致的用户或组群配置。例如:
mkdir /users groupadd -g 900 dba groupadd -g 901 oinstall useradd -u 901 -g 901 -d /users/oracle -m oracle usermod -G 900 oracle |
Oracle 服务范例使用三个脚本,它们必须被放置在 /home/oracle 目录中,并为 Oracle 管理账号所有。oracle 脚本被用来启动和停止 Oracle 服务。在添加服务时指定这个脚本。该脚本会调用其它 Oracle 范例脚本。startdb 和 stopdb 脚本启动和停止数据库。注意,应用程序和 Oracle 数据库交流的方式多种多样。
下面是一个 oracle 脚本的例子,它被用来启动、停止 Oracle 服务,以及检查其状态:
#!/bin/sh # # Cluster service script to start, stop, and check status of oracle # cd /users/oracle case $1 in start) su - oracle -c ./startdb ;; stop) su - oracle -c ./stopdb ;; status) status oracle ;; esac |
下面是一个 startdb 脚本的例子,它被用来启动 Oracle 数据库服务器实例:
#!/bin/sh # # # Script to start the Oracle Database Server instance. # ######################################################################## # # ORACLE_RELEASE # # Specifies the Oracle product release. # ######################################################################## ORACLE_RELEASE=9.2.0 ######################################################################## # # ORACLE_SID # # Specifies the Oracle system identifier or "sid", which is the name of # the Oracle Server instance. # ######################################################################## export ORACLE_SID=TEST ######################################################################## # # ORACLE_BASE # # Specifies the directory at the top of the Oracle software product and # administrative file structure. # ######################################################################## export ORACLE_BASE=/u01/app/oracle ######################################################################## # # ORACLE_HOME # # Specifies the directory containing the software for a given release. # The Oracle recommended value is $ORACLE_BASE/product/<release> # ######################################################################## export ORACLE_HOME=/u01/app/oracle/product/${ORACLE_RELEASE} ######################################################################## # # LD_LIBRARY_PATH # # Required when using Oracle products that use shared libraries. # ######################################################################## export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:$LD_LIBRARY_PATH ######################################################################## # # PATH # # Verify that the users search path includes $ORACLE_HOME/bin # ######################################################################## export PATH=$PATH:${ORACLE_HOME}/bin ######################################################################## # # This does the actual work. # # Start the Oracle Server instance based on the initSID.ora # initialization parameters file specified. # ######################################################################## /u01/app/oracle/product/9.2.0/bin/sqlplus << EOF sys as sysdba spool /home/oracle/startdb.log startup pfile = /u01/app/oracle/product/9.2.0/admin/test/scripts/init.ora open; spool off quit; EOF exit |
下面是一个 stopdb 脚本的例子,它被用来停止 Oracle 数据库服务器实例:
#!/bin/sh # # # Script to STOP the Oracle Database Server instance. # ###################################################################### # # ORACLE_RELEASE # # Specifies the Oracle product release. # ###################################################################### ORACLE_RELEASE=9.2.0 ###################################################################### # # ORACLE_SID # # Specifies the Oracle system identifier or "sid", which is the name # of the Oracle Server instance. # ###################################################################### export ORACLE_SID=TEST ###################################################################### # # ORACLE_BASE # # Specifies the directory at the top of the Oracle software product # and administrative file structure. # ###################################################################### export ORACLE_BASE=/u01/app/oracle ###################################################################### # # ORACLE_HOME # # Specifies the directory containing the software for a given release. # The Oracle recommended value is $ORACLE_BASE/product/<release> # ###################################################################### export ORACLE_HOME=/u01/app/oracle/product/${ORACLE_RELEASE} ###################################################################### # # LD_LIBRARY_PATH # # Required when using Oracle products that use shared libraries. # ###################################################################### export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:$LD_LIBRARY_PATH ###################################################################### # # PATH # # Verify that the users search path includes $ORACLE_HOME/bin # ###################################################################### export PATH=$PATH:${ORACLE_HOME}/bin ###################################################################### # # This does the actual work. # # STOP the Oracle Server instance in a tidy fashion. # ###################################################################### /u01/app/oracle/product/9.2.0/bin/sqlplus << EOF sys as sysdba spool /home/oracle/stopdb.log shutdown abort; spool off quit; EOF exit |
要使用群集配置工具来添加 Oracle 服务,执行以下步骤:
通过点击「主菜单」 => 「系统设置」 => 「服务器设置」 => 「群集」,或在 shell 提示下键入 redhat-config-cluster 来启动群集配置工具。群集状态工具会默认出现。
通过从群集状态工具菜单选择「群集」 => 「配置」来启动群集配置工具。
点击「服务」活页标签。
添加 Oracle 服务。
点击「新建」。「服务」对话框会出现。
为 Oracle 服务输入「服务名称」。
选择一个「失效转移域」,或把它留为 None。
键入一个数量(秒数)来通过 init 脚本的 status 功能检查 Oracle 服务的健康状况。
输入一个「用户脚本」,如 /home/oracle/oracle。
点击「确定」
添加用于 Oracle 服务的 IP 地址。
选择 Oracle 服务,然后点击「添加子进程」。
选择「添加服务 IP 地址」,然后点击「确定」。「服务 IP 地址」对话框会出现。
输入一个「IP 地址」。
输入一个「子网掩码」,或把它留为 None。
输入一个「广播地址」,或把它留为 None。
点击「确定」。
为 Oracle 服务添加设备和管理文件。
选择 Oracle 服务,然后点击「添加子进程」。
选择「添加服务」,然后点击「确定」。「设备」对话框会出现。
输入「设备特殊文件」(如 /dev/sdb5)。
在「挂载点」字段中输入 /u01。
选择「文件系统类型」中的文件系统类型,或把它留为空白。
输入任何挂载点「选项」,包括 rw(读写)。
选择或取消选择「强制挂载」。
点击「确定」。
为 Oracle 数据库文件添加设备。
选择 Oracle 服务,然后点击「添加子进程」。
选择「添加服务」,然后点击「确定」。「设备」对话框会出现。
输入「设备特殊文件」(如 /dev/sdb6)。
在「挂载点」字段中输入 /u02。
选择「文件系统类型」中的文件系统类型,或把它留为空白。
输入任何挂载点「选项」,包括 rw(读写)。
选择或取消选择「强制挂载」。
点击「确定」。
选择「文件」 => 「保存」来保存 Oracle 服务。