# 高可用性(后台使用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) 指定需要的主从数据库信息： 主数据库实例信息： Master Host Name：主数据库实例所在机器的主机名或IP。 Port：PMP连接到数据库的端口，默认为1433。因为PMP只能使用SSL模式连接到SQL Server，推荐你创建独占的数据库实例，并且使用非默认的端口。 User Name and Password：数据库的用户和密码。(用户应该是sysadmin角色。PMP不会保存该用户名和密码，只在配置数据库复制时使用)。 如果从Windows连接到SQL Server，你还可以使用系统身份验证。这样的话用户名格式为<域名>\<用户名> Master Database Name： PMP数据库名称。 Master Key： 复制上面步骤3复制的主密钥。 从属数据库实例信息： Slave Host Name：从属数据库实例所在机器的主机名或IP。 Port：PMP连接到数据库的端口，默认为1433。 User Name and Password：数据库的用户和密码。(用户应该是sysadmin角色。PMP不会保存该用户名和密码，只在配置数据库复制时使用)。 如果从Windows连接到SQL Server，你还可以使用系统身份验证。这样的话用户名格式为<域名>\<用户名> Slave Database Name： PMP数据库名称。 默认为“pmpstandby”。 (如果你在配置主服务器ChangeDB.bat选择“Custom”（定制），你要创建新的从数据库，创建主密钥，创建证书和创建使用AES 256加密的对称密钥。在这里提供从数据库名称。) 点击“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 Host Name of Slave Database：从属数据库实例所在机器的主机名或IP。 Port：PMP连接到数据库的端口，默认为1433。 Database Name： 步骤4配置的PMP数据库名称。 Authentication： 选择身份验证方式，SQL或Widnows。推荐使用“Windows”，这样就不会在任何地方存储用户名和密码。 User Name and Password：数据库的用户和密码。如果从Windows连接到SQL Server，你还可以使用系统身份验证。这样的话用户名格式为<域名>\<用户名> Encryption Key：数据加密的密钥。选择“Default”让PMP生成一个密钥。或选择“Custom”自己定义。 如果选择了“Custom”： 提供主数据库证书名称和对称密钥名。 测试保存。 ### 步骤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, 卓豪（北京）技术有限公司，保留一切权利。

顶部