数据库服务可以为 MySQL 数据库程序提供高可用性数据。然后,该应用程序可以为数据库客户系统,如万维网服务器,提供网络访问。如果该服务失效转移,这个应用程序就会通过新的群集系统来访问共享数据库数据。一个可网络访问的数据库通常被指派了一个 IP 地址,这个地址和服务一起被失效转移以便保持客户的透明访问。
下面列出了一个配置 MySQL 数据库服务的范例:
MySQL 服务器软件包在每个将会运行该服务的群集成员上都被安装了。MySQL 数据库目录驻留在一个位于共享贮存区的磁盘分区上的文件系统中。这允许数据库数据可以被所有群集成员存取。在示例中,文件系统被挂载为 /var/lib/mysql,使用共享磁盘分区 /dev/sda1。
IP 地址被关联到 MySQL 数据库来提供客户到数据库服务的网络存取能力。这个 IP 地址会在服务失效转移时自动被迁移到群集成员中。在下面的例子中,IP 地址是 10.1.16.12。
用来启动和停止 MySQL 数据库的脚本是标准的 init 脚本 mysqld。如果需要常规的连接和查询记录,编辑 mysqld 脚本来添加 --log=/var/log/mysqld.log 选项,该选项是 safe_mysqld 命令的最后一个选项。编辑之后的行应该和以下相似(注意:正斜线 \ 表示在一行上继续):
/usr/bin/safe_mysqld --defaults-file=/etc/my.cnf --log=/var/log/mysqld.log \ >/dev/null 2>&1 & |
如果 --log 选项被添加到 mysqld 脚本,这个新的 mysqld 脚本就应该被复制到所有能够运行 MySQL 服务的其它群集成员上,因此如果 MySQL 失效转移到这些成员上,它们也能够记录连接和查询。
按照默认设置,一个客户到 MySQL 服务器的连接会在八小时无活动后超时。这个连接限定可以在你启动 mysqld 时通过设置 /etc/my.cnf 文件中的 wait_timeout 变量来修改。例如,要把超时设为四小时,把以下行添加到 /etc/my.cnf 文件的 [mysqld] 部分:
set-variable = wait_timeout=14400 |
重新启动 MySQL 服务。注意,进行了这项改变后,新的 /etc/my.cnf 文件应该被复制到所有其它能够运行 MySQL 服务的群集成员上。
要检查 MySQL 服务器是否已超时,启动 mysqladmin 命令来检查运行时间。如果已经超时了,重新启动该查询来自动连接到这个服务器。
根据 Linux 的发行版本而定,下面的消息之一可能会用来表明 MySQL 服务器超时:
CR_SERVER_GONE_ERROR CR_SERVER_LOST |
要使用群集配置工具来添加 MySQL 服务,执行以下步骤:
通过点击「主菜单」 => 「系统设置」 => 「服务器设置」 => 「群集」,或在 shell 提示下键入 redhat-config-cluster 来启动群集配置工具。群集状态工具会默认出现。
通过从群集状态工具菜单选择「群集」 => 「配置」来启动群集配置工具。
点击「服务」活页标签。
添加 MySQL 服务。
点击「新建」。「服务」对话框会出现。
输入用于 MySQL 服务的「服务名称」。
选择一个「失效转移域」,或把它留为 None。
如果你想通过 mysqld init 脚本的 status 指令来检查 MySQL 服务的健康状况,在「检查间隔」中键入一个数量(秒数)。
输入一个「用户脚本」,如 /etc/init.d/mysqld。
点击「确定」。
添加 MySQL 服务的 IP 地址。
选择 MySQL 服务,然后点击「添加子进程」。
选择「添加服务 IP 地址」,然后点击「确定」。「服务 IP 地址」对话框会出现。
输入一个「IP 地址」。
输入一个「子网掩码」,或把它留为 None。
输入一个「广播地址」,或把它留为 None。
点击「确定」。
添加 MySQL 服务的设备。
选择 MySQL 服务,然后点击「添加子进程」。
选择「添加服务」,然后点击「确定」。「设备」对话框会出现。
输入「设备特殊文件」(如 /dev/sdc3)。
在「挂载点」字段中输入 /var/lib/mysql。
选择「文件系统类型」中的文件系统类型,或把它留为空白。
输入任何挂载点「选项」,包括 rw(读写)。
选择或取消选择「强制挂载」。
点击「确定」。
选择「文件」 => 「保存」来保存 MySQL 服务。