高可用性(后台使用MS SQL server数据库)

(只支持企业版。支持6400及以上版本。)

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

高可用性是如何工作的?

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

高可用性架构

情景实例

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

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

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

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

审计记录会丢失么?

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

如何部署高可用性?

步骤1:

  • 停止主服务器

步骤2:

  • 主服务器使用的数据库实例将作为“主”,指定另外一个MSSQL实例为“从属”数据库。要导入从属MS SQL server数据库SSL证书到PMP主服务器。在执行该步前,要配置从属服务器的SSL。参考这里的步骤1、2、3

在主服务器上导入证书:

  • 转到<PMP_主_安装目录>/bin执行命令importCert.bat <slavecert.cer >

步骤3:

  • 转到<PMP_主_安装目录>/conf打开masterkey.key文件复制SQL主密钥。后面的步骤会用到。

步骤4:

配置主、从数据库间的复制。

  • 转到<PMP_主_安装目录>/bin执行命令:ConfigureReplication.bat(Windows)或sh ConfigureReplication.sh(Linux)
  • 指定需要的主从数据库信息:

主数据库实例信息:

    1. Master Host Name:主数据库实例所在机器的主机名或IP。
    2. Port:PMP连接到数据库的端口,默认为1433。因为PMP只能使用SSL模式连接到SQL Server,推荐你创建独占的数据库实例,并且使用非默认的端口。
    3. User Name and Password:数据库的用户和密码。(用户应该是sysadmin角色。PMP不会保存该用户名和密码,只在配置数据库复制时使用)。
      如果从Windows连接到SQL Server,你还可以使用系统身份验证。这样的话用户名格式为<域名>\<用户名>
    4. Master Database Name: PMP数据库名称。
    5. Master Key: 复制上面步骤3复制的主密钥。

从属数据库实例信息:

    1. Slave Host Name:从属数据库实例所在机器的主机名或IP。
    2. Port:PMP连接到数据库的端口,默认为1433。
    3. User Name and Password:数据库的用户和密码。(用户应该是sysadmin角色。PMP不会保存该用户名和密码,只在配置数据库复制时使用)。
      如果从Windows连接到SQL Server,你还可以使用系统身份验证。这样的话用户名格式为<域名>\<用户名>
    4. Slave Database Name: PMP数据库名称。 默认为“pmpstandby”。 (如果你在配置主服务器ChangeDB.bat选择“Custom”(定制),你要创建新的从数据库,创建主密钥,创建证书和创建使用AES 256加密的对称密钥。在这里提供从数据库名称。)
    5. 点击“Test & Configure”来完成复制。这步可能花费30分钟或更长时间。

步骤5:

启动主服务器。

步骤6:

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

步骤7:

安装后更改其使用的后台数据库:

执行ChangeDB.bat

执行命令输入数据库信息:<PMP_备_安装目录>/bin ChangeDB.bat (Windows)或<PMP_备_安装目录>/bin sh ChangeDB.sh (Linux)

选择SQL Server

    1. Host Name of Slave Database:从属数据库实例所在机器的主机名或IP。
    2. Port:PMP连接到数据库的端口,默认为1433。
    3. Database Name: 步骤4配置的PMP数据库名称。
    4. Authentication: 选择身份验证方式,SQL或Widnows。推荐使用“Windows”,这样就不会在任何地方存储用户名和密码。
    5. User Name and Password:数据库的用户和密码。如果从Windows连接到SQL Server,你还可以使用系统身份验证。这样的话用户名格式为<域名>\<用户名>
    6. Encryption Key:数据加密的密钥。选择“Default”让PMP生成一个密钥。或选择“Custom”自己定义。
    7. 如果选择了“Custom”: 提供主数据库证书名称和对称密钥名。
    8. 测试保存。

步骤8:

对于PMP许可文件、定制图标和换标设置,复制\replication\SQLServerHAPack.zip到<PMP_备_安装目录>并解压。注意解压缩文件到<PMP_备_安装目录>并覆盖原文件,不是<PMP_备_安装目录>/SQLServerHAPack文件夹。

步骤9:

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

检验高可用性部署

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

高可用性状态:Alive

复制状态:Alive

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

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

顶部