高可用性(后台使用MySQL数据库)

(只支持白金版和企业版。支持6302及以上版本。 如果您正在使用6302以前版本,请参考此处配置高可用性。)

对于关键的服务,一个主要的需求就是对密码的持续访问。PMP提供的“高可用性”就是来满足这个需求的。

PMP可以使用MySQL、MS SQL Server或PostgreSQL作为后台数据库。该章介绍使用MySQL作为后台数据库如何配置高可用性。这里讲解使用MSSQL作为后台数据库如何配置高可用性。

高可用性是如何工作的?

  • 要安装备用PMP服务器和数据库实例。
  • 主服务器部署用于用户的读写操作。
  • 主备服务器的数据库是相互同步的。PMP使用MySQL数据库的复制技术进行数据同步。数据同步通过安全加密的通道进行。
  • 当主服务器停机后,用户以“只读”访问备用服务器。当主服务器恢复后,用户回到对其的“读写”访问。在其期间产生的数据库变化将自动同步。

情景实例

情景1 - 主备服务器位于不同的物理位置。当二者间的WAN连接出现故障时:

假设主服务器位于地点A,备用服务器位于地点B。两个地点的用户都连接到主服务器获取管理中的密码。主服务器的数据将实时同步到备用服务器数据库。一旦A、B间的网络连接出现了问题。这样的话,地点A的用户将继续连接到主服务器进行“读写”访问。地点B的用户获得对备用服务器紧急使用的“只读”访问。当网络故障解决之后,主备服务器将自动同步。

情景2 - 主备服务器位于相同的物理位置。主服务器停机:

这种情况下,所有用户都将获得对备用服务器紧急使用的“只读”访问。

审计记录会丢失么?

在上面的高可用性情景中,所有的审计记录都会正常记录。主备服务器中发生的所有操作都将记录下来,并同步数据。

如何部署高可用性?

步骤1:安装主备两套PMP。

你可以使用当前的安装作为主服务器,然后安装新的PMP用作备用服务器。安装备用服务器的时候,要选择“Configure this server as High Availability secondary server (Read Only)”(配置该安装为高可用服务器的只读备用服务器)安装后,先不要启动PMP备用服务器。

步骤2:创建主服务器的数据复制包

  • 停止主服务器。确保其所有mysqld进程都已经停止。
  • 打开命令提示行,转到<PMP_主_安装目录>/bin
  • 运行命令:HASetup.bat <PMP主服务器全称域名> <PMP备用服务器全称域名> (Windows) / HASetup.sh <PMP主服务器全称域名> <PMP备用服务器全称域名>(Linux)
  • 运行上面的命令,需要主、备服务器的全称域名。例如:主服务器所在主机名称为primary-server,属于域zohocorpin.com,备用服务器所在主机名称为secondary-server,属于域zohocorpin.com。那面执行的命令应该是:

    Windows中: HASetup.bat primary-server.zohocorpin.com secondary-server.zohocorpin.com

    Linux中: sh HASetup.sh primary-server.zohocorpin.com secondary-server.zohocorpin.com

  • 执行后在<PMP_Primary_安装目录>/replication文件夹中生成“HAPack.zip”文件。
  • 复制HAPack.zip文件到PMP备用服务器。
  • 启动PMP主服务器。

步骤3:在备用服务器中使用数据复制包

HAPack.zip文件放到<PMP_备_安装目录>后解压。确保解压缩出来的文件位于<PMP_备_安装目录>中。

步骤4:指定加密主钥的位置

编辑<PMP_备_安装目录>/conf/manage_key.conf文件,指定pmp_key.key(加密主钥)文件的位置。PMP每次启动的时候都需要访问该文件。启动之后,就可以把该文件所在的驱动器卸载了。

高可用性现在就配置好。启动PMP备用服务器后,就会使用来自主服务器的数据覆盖自己的数据库。

检验高可用性部署

部署完成后,你可以检查高可用性是否工作正常。打开主服务器的“管理 >> 全局 >> 高可用性”。如果部署没有问题,你将看到如下信息:

高可用性状态:Alive

复制状态:Alive

如果上面都显示为“Alive”,表示高可用性部署正常。如果显示为“Failed”,表明部署有问题。

什么决定了“高可用性状态”(Alive/Failed)?

持续的数据库复制是高可用性的技术基础。“Alive”表示数据复制和同步正常。如果主备服务器双方连接都不通,就显示为“Failed”。

即使主备服务器双方连接都不通,用户对主、备服务器各自的访问是不间断的。

也就是说,这里的状态只表示主备服务器数据库连接状态,不是用户访问密码故障。

什么决定了“复制状态”(Alive/Failed)?

如上所述,高可用性依赖于MySQL复制功能。当主服务器数据库正常同步到备用服务器数据库,状态就是“Alive”。但是当更新或查询数据库的时候出现错误,该状态就是“Failed”。

这种情况下,PMP高可用性设置也发生故障了。也就是说你要重新配置高可用性部署。

如果你重新配置了高可用性后,还是显示为“Failed”,请你联系PMP技术支持,并提供以下日志文件:

Windows: <PMP安装目录>/mysql/data/<主机名>.err文件

Linux: <PMP安装目录>/mysql/data/tmp/ .out文件

状态故障的告警机制

你可以配置当发生以上状态变化时,发送告警。打开审计 >> 资源审计 >> 审核动作 >> 配置审计,找到“高可用性可用”,“高可用性失败”,选择告警方式(发送邮件/生成Syslog/生成SNMP陷阱)。

说明1:如果主服务器崩溃了,请执行以下灾难恢复步骤:

  • 打开备用服务器的<PMP_安装目录>/mysql/data文件夹,复制ibdata1、passtrix文件。
  • 安装和以前的版本号一致的全新PMP。
  • 在新安装中打开<PMP_安装目录>/mysql/data文件夹,覆盖上步中的ibdata1、passtrix文件。
  • 启动这个新的PMP。

说明2:

  • 部署了高可用性后,如果你更改了PMP的主服务器端口,高可用性部署就失效了。需求重新配置部署。

说明3:

当配置TFA后

  • 当你启用了TFA或更改TFA了类型(PhoneFactor或RSA SecurID或一次性密码),并已经部署了高可用性,那么请重新启动PMP备用服务器。

版权所有 ©2016, 卓豪(北京)技术有限公司,保留一切权利。

顶部