使用 SQL Server Management Studio 配置复制

在使用 Microsoft SQL Server (MS SQL) 配置辅助服务器(高可用性或 HA)时,必须设置主数据库与辅助数据库之间的数据库复制。此操作可直接通过 PAM360 完成,也可通过 SQL Server Management Studio 完成。本文档详细介绍了如何使用 SQL Server Management Studio 配置主数据库与辅助数据库之间的 MS SQL Server 复制。

1. 先决条件

  1. 如果主服务器上正在运行 PAM360 实例,请将其停止以继续手动复制操作。
  2. PAM360 使用的 MS SQL 主服务器将作为主数据库。在通过 MS SQL Server Management Studio 进行手动复制配置时,您需要指定另一个 MS SQL 实例作为辅助数据库。
  3. 接下来,将MS SQL辅助数据库的SSL证书导入主服务器。如果辅助数据库尚未配置SSL,您必须参照 参考帮助文档进行配置。PAM360 需要 SSL 来确保数据库之间的安全通信。要导入 SSL 证书,请打开命令提示符,导航至<PAM360-主-安装-目录>/bin文件夹,并执行以下命令:
       importCert.bat <MS SQL 辅助数据库 SSL 证书的绝对路径>
  4. 导入 SSL 证书后,请导航至<PAM360-主安装目录>/conf文件夹并打开masterkey.key文件。从该文件中复制SQL 主密钥,以便在下一步中使用。如果您在集成 SQL Server 时已按建议将此密钥移动到安全位置,请将其准备好以便在下一步中使用。
  5. 请确保您的系统已安装 MS SQL Server Management Studio。
  6. 请确认 MS SQL Server 实例上已安装复制功能。只有这样,Microsoft SQL Server Management Studio 才能访问复制组件。
  7. 在辅助服务器上配置 SQL Server 复制功能之前,请先在辅助服务器上创建一个数据库,并执行以下查询:
    CREATE TABLE SeqGenState ( ROWGUID UNIQUEIDENTIFIER ROWGUIDCOL UNIQUE DEFAULT NEWSEQUENTIALID(), SEQNAME VARCHAR(100) NOT NULL, CURRENTBATCHEND BIGINT NOT NULL, CONSTRAINT SeqGenState_PK PRIMARY KEY CLUSTERED (SEQNAME));
    CREATE TABLE Ptrx_ResGrpNotifyActionList ( ROWGUID UNIQUEIDENTIFIER ROWGUIDCOL UNIQUE DEFAULT NEWSEQUENTIALID(), NOTIFY_ID BIGINT, ACCOUNT_ID BIGINT NOT NULL, ACTION_TYPE VARCHAR(200), SHARECHANGEUSER_ID VARCHAR(1000), 操作名称 VARCHAR(300), 操作时间 DATETIME, IP地址 VARCHAR(255), 原因 VARCHAR(2500), 主键为聚集索引 (NOTIFY_ID));
    CREATE TABLE "MSPSeqGenState" ( ROWGUID UNIQUEIDENTIFIER ROWGUIDCOL UNIQUE DEFAULT NEWSEQUENTIALID(), "ORGANIZATIONID" BIGINT NOT NULL, "SEQNAME" NVARCHAR(100) NOT NULL, "CURRENTBATCHEND" BIGINT NOT NULL, CONSTRAINT "MSPSeqGenState_PK" PRIMARY KEY CLUSTERED ("ORGANIZATIONID", "SEQNAME"));

2. 配置主从 MS SQL 数据库之间的复制

为便于理解,配置步骤分为四个部分。启动系统中已安装的 MS SQL Server Management Studio,连接到 MS SQL 主服务器,然后按照以下步骤操作。

最佳实践

  • 在点击“下一步”之前,请仔细阅读每个向导中的说明。
  • 仅在整个复制过程完成后才点击“完成”。若在过程中点击“完成”,将导致配置失败或不完整。
  • 随时点击“取消”可中止配置过程。

2.1 创建分发

  1. 在 MS SQL Server Management Studio 的“对象资源管理器”菜单下 ,右键单击“复制”模块,然后单击“配置分发”。
    distrib1
  2. 在打开的“配置分发向导”中,单击“下一步”继续。
    distrib1
  3. 在打开的“SQL Server 代理”起始页面中,选择“是,配置 SQL Server 代理服务自动启动”,以避免同步订阅的复制代理无人值守运行。
    distrib2.2
  4. 在打开的“分发器”页面中,选择第一个选项,即选择使用此主服务器作为其分发器,然后单击“下一步”
    distrib2
  5. 指定要存储快照的根文件夹,然后单击“下一步”
    distrib3
  6. 将分发数据库名称输入为pmpdistribution。分别选择要存放分发数据库文件和日志文件的文件夹,然后单击“下一步”
    distrib4
  7. 选择当该分发器成为发布者时将使用的主服务器。
    distrib5.webp
  8. 选中 “配置分发 复选框 ,然后单击“下一步”
    distrib6
  9. 单击“完成”以结束此过程,或单击“上一步”以验证您在先前屏幕中选择的选项。此向导页面将详细显示关闭向导后将发生的情况。
    distrib7
  10. 单击“完成”后,您将看到配置处理过程,如下图所示。若要停止配置分发,请单击“停止”
    distrib8
  11. 看到如下截图所示的“成功”消息后,关闭窗口。
    distrib9

2.2 创建发布

  1. “对象资源管理器”菜单的 “复制”模块下,右键单击“本地 发布”,然后 单击 “新建发布
    publish1
  2. 在打开的“新建发布向导”中,单击“下一步”继续。
    publish2
  3. “新建发布向导”中,选择主服务器上创建的、包含待发布数据和对象 的数据库,然后单击“下一步”
    publish3
  4. 发布类型设置为 “合并发布”。请确保所选的发布类型与您的应用程序要求兼容,然后单击“下一步”
    publish4
  5. “订阅者类型”选为“SQL Server 2008 或更高版本”,供 此发布订阅者使用。单击“下一步”
    publish5
  6. 下一步是选择要作为文章发布的表。请选中除以下表以外的所有表,然后单击“下一步”
    1. SeqGenState
    2. Ptrx_ResGrpNotifyActionList
    3. MSPSeqGenState
    publish6
  7. 选择屏幕上显示的、可能需要修改应用程序的故障,然后单击“下一步”。以确保应用程序能继续按预期运行。
  8. 此步骤允许您 筛选表行。如果您不想筛选应用程序中的数据,请单击“下一步”。 单击“添加”开始向发布中添加筛选条件。
    publish8
  9. 选择立即运行 快照代理,或安排代理在指定的日期/时间运行。单击“下一步”
    publish9
  10. 单击“安全设置”以指定代理运行的帐户详细信息及其连接设置。
    publish10
  11. 选择快照代理运行的域或计算机帐户。选择“以 SQL Server 代理服务帐户运行”选项此外,选择“通过模拟进程帐户的方法连接到发布者,然后单击“确定”继续。
    publish11
  12. 选中“创建发布”复选框,然后单击“下一步”。
    publish12
  13. 发布名称指定为 PMP-HA,然后单击“完成”以完成该过程,或单击“上一步”以验证您在先前屏幕中选择的选项。要详细了解关闭此向导后会发生什么,请参阅下图。
    publish13
  14. 单击“完成”后,您将看到发布已创建,如下图所示。若要停止创建发布,请单击“停止”
    publish14
  15. 看到“成功”消息后,请关闭窗口,如下图所示。
    publish15

查看快照代理状态:

右键单击发布,然后点击“查看快照代理状态”。将弹出一个窗口显示快照创建的进度,该过程需要几分钟。快照成功生成后关闭该窗口。您还可以通过点击相应的按钮来启动代理或对其进行监控

2.3 创建订阅

  1. “对象资源管理器”菜单的 “复制”>>“本地发布”下,右键单击第 2 节中创建的发布,然后单击“新建订阅”
    subscrib1
  2. 在显示的“新建订阅向导”中,选择要为其创建订阅的发布(即第 2 节中创建的PMP-HA),然后单击“下一步”
    subscrib2
  3. 选择运行 合并代理的位置。选择如下截图所示的第一个选项,然后单击“下一步”
    subscrib3
  4. 在打开的“订阅者向导”中,选择订阅者并为该订阅选择辅助服务器数据库。现在,单击“添加 SQL Server 订阅者”以添加辅助服务器信息。
    subscrib4
  5. 在弹出的窗口中,输入辅助 MS SQL 服务器信息,然后单击“连接”
  6. subscrib5
  7. 连接到辅助数据库服务器后,在“新建订阅向导”中单击“下一步”
    subscrib6
  8. 填写订阅的安全信息。为每个合并代理指定进程账户连接选项
    subscrib7
  9. 如下图所示,指定在订阅同步时合并代理运行的账户。选择连接发布者和分发者的方式。此外,选择用于连接订阅者的 SQL Server 登录名(使用相应的辅助服务器登录凭据),然后单击“确定”
    subscrib8
    subscrib9
  10. “代理计划”下拉 菜单中的可用选项中为每个代理选择一个同步计划,然后单击“下一步”
    subscrib10
  11. 选择是否使用发布数据和架构的快照 来初始化 订阅,然后单击“下一步”
    subscrib11
  12. 从可用选项中订阅选择订阅类型 。同时,选择冲突解决的优先级,然后单击“下一步”
    subscrib12
  13. 选中“创建订阅”复选框,然后单击“下一步”。
    subscrib13
  14. 单击“完成”以结束此过程,或单击“上一步”以验证您在先前屏幕中选择的选项。要详细了解关闭此向导后会发生什么,请参阅下图。
    subscrib14
  15. 单击“完成”后,您将看到订阅正在创建,如下图所示。若要停止创建订阅,请单击“停止”
    subscrib15
  16. 看到“成功”消息后,请关闭窗口,如下图所示。
    subscrib16

查看同步状态

右键单击“订阅”,然后点击 “查看同步状态”。您将看到如下窗口,显示同步进度,该过程需几分钟。同步完成后,请关闭该窗口。您还可以通过点击相应按钮来停止同步或监控同步状态。
subscrib17

至此,SQL Server 复制已成功完成。

2.4 在主服务器上执行查询

在主服务器上执行以下查询:

update Ptrx_HighAvailability set INSTANCENAME='MASTER_INSTANCE' where Ptrx_HighAvailability.ISMASTER='true'; 

例如:update Ptrx_HighAvailability set INSTANCENAME='pam-win11' where Ptrx_HighAvailability.ISMASTER='true';

update Ptrx_HighAvailability set INSTANCEPORT='MASTER_PORT' where Ptrx_HighAvailability.ISMASTER='true'; 

例如:update Ptrx_HighAvailability set INSTANCEPORT='1433' where Ptrx_HighAvailability.ISMASTER='true';

update Ptrx_HighAvailability set INSTANCENAME='SLAVE_INSTANCE' where Ptrx_HighAvailability.ISMASTER='false'; 

例如:update Ptrx_HighAvailability set INSTANCENAME='pam-secwin11' where Ptrx_HighAvailability.ISMASTER='false';

update Ptrx_HighAvailability set INSTANCEPORT='SLAVE_PORT' where Ptrx_HighAvailability.ISMASTER='false';

例如:update Ptrx_HighAvailability set INSTANCEPORT='1433' where Ptrx_HighAvailability.ISMASTER='false';

其中 MASTER_INSTANCE 是主 SQL 服务器,SLAVE_INSTANCE 是辅助 SQL 服务器,MASTER/SLAVE_PORT 是 SQL 服务器使用的端口。例如:

现在启动主 MS SQL 服务器。若在复制过程中遇到任何问题,请导航至“复制”>>“本地发布”,右键单击已创建的发布,然后点击“启动复制监视器”。在弹出的窗口中,您可以查看同步状态、上次同步的详细信息等。

replication_monitor

接下来,请按照上述说明继续进行辅助服务器的配置 此处所述继续进行辅助服务器的配置。

注意

从 PAM360 8000 版本起,为确保系统平稳运行,必须将pam360_key.key文件保留在manage_key.conf文件中指定的路径下。PAM360 会持续访问该文件以确保运行不中断。如果指定路径下不存在pam360_key.key文件,服务可能无法启动,或者某些功能(如数据库备份)将无法正常运行。



Top