环境清单
此环境假设是在单域环境内进行部署,其配置见如下表所示:
表1:系统配置清单
表2:服务账号
概述
对等事务性复制是专为可以读取或修改任何参与复制的数据库中的数据的应用程序设计的。例如,在线购物应用程序非常适合对等复制:通过将读取数据的查询分散到多个数据库,可以提高应用程序的性能。此外,如果任意承载数据库的服务器不可用,可以编制应用程序来将流量路由到剩余的服务器,这些服务器包含数据的相同副本。由于活动可以分散到所有节点,因此读取性能将得到提高。拓扑的更新、插入和删除总性能与单个节点的性能类似,因为所有更改最终将传播到所有节点。
对等拓扑中的所有节点都是对等的:每个节点所发布和订阅的架构和数据都是相同的。在所有节点都可进行更改(插入、更新和删除)。复制可以识别何时将更改应用到给定节点,从而避免所做的更改在节点间循环多次。
对等拓扑
上面每个关系图都显示了两个参与数据库,以及通过应用程序服务器将用户流量定向到数据库。此配置可用于从网站到工作组应用程序等多种应用程序,并具有下列优点:
l 由于将读取操作分散到两台服务器上,因此提高了读取的性能。
l 当需要维护或某一节点出现故障时,可以提供更高的可用性。
从这两张图中可以看到,读取活动在参与数据库间进行负载平衡,但更新的处理方式则有所不同:
l 在左图中,在两台服务器间对更新进行了分区。例如,如果数据库包含产品目录,则可以令自定义应用程序把对名称以 A-M 开头的产品进行的更新定向到节点 A,把对名称以 N-Z 开头的产品进行的更新定向到节点 B。然后将更新复制到另一个节点。
l 在右图中,所有更新都定向到节点 B。再从那里将更新复制到节点 A。如果 B 脱机(例如,为了维护),则应用程序服务器可以将所有活动定向到节点 A。当节点 B 恢复联机状态后,更新可以流向 B,并且应用程序服务器可以将所有更新移动回节点 B,或继续将更新定向到节点 A。
配置过程
本主题介绍如何创建两节点对等事务性复制拓扑,然后向现有拓扑中添加节点。本主题中对每个步骤都进行了详细说明:
初始拓扑包含 NLB-SQL-01、NLB-SQL-02 和 NLB-SQL-03。在创建拓扑时,假设任一对等数据库中均没有发生活动。创建拓扑:
1. 在 NLB-SQL-01、NLB-SQL-02 和 NLB-SQL-03上配置分发。
可以使用本地分发服务器,也可以使用远程分发服务器。如果使用远程分发服务器,建议不要对所有节点使用同一个远程分发服务器,因为这可能导致单点故障。
2. 使用新建发布向导在 NLB-SQL-01上创建发布。
3. 在“发布属性 - <发布>”对话框中为对等复制启用发布。
4. 手动或通过将NLB-SQL-01上的数据库还原到 NLB-SQL-02 和 NLB-SQL-03 来初始化 NLB-SQL-02 和 NLB-SQL-03 上的架构和数据。所有节点上的架构必须相同。
5. 使用配置对等拓扑向导将 NLB-SQL-02和 NLB-SQL-03添加到拓扑中。添加服务器:在每台服务器上都创建一个发布,并创建对拓扑中其他服务器上的发布的订阅。
如果发布的表中有标识列,则必须在 NLB-SQL-02 和 NLB-SQL-03 上重设表的标识范围种子。
创建拓扑后,添加 NLB-SQL-04。在向现有拓扑中添加节点时,假设有活动发生以及系统停机时间必须尽量缩短。向现有拓扑中添加节点:
1. 在 NLB-SQL-04 上配置分发。
2. 通过将 NLB-SQL-01 上的数据库还原到 NLB-SQL-04 来初始化 NLB-SQL-04 上的架构和数据。
3. 使用配置对等拓扑向导将 NLB-SQL-04 添加到拓扑中。此时,添加 NLB-SQL-04:在 NLB-SQL-04 上创建发布,并在 NLB-SQL-01 和 NLB-SQL-04 之间创建订阅。
如果发布的表中有标识列,则必须在 NLB-SQL-04 上重设表的标识范围种子。
此时,NLB-SQL-04可以向所有服务器发送更改并从所有服务器接收更改,但所有更改的传送必须经过与 NLB-SQL-02 和 NLB-SQL-03 连接的 NLB-SQL-01。如果要在 NLB-SQL-04 和其他节点之间添加订阅,请转到步骤 4。虽然可以不添加订阅,但最好添加订阅,因为与只有 NLB-SQL-01 和 NLB-SQL-04 之间的一个单一连接相比,这样就具有更强的容错能力。
4. 停止拓扑,这涉及到停止所有更改和同步所有服务器。
5. 使用配置对等拓扑向导在 NLB-SQL-04 和其他节点之间添加订阅。
创建对等复制拓扑
注意:
请确保在每个节点上都运行 Microsoft SQL Server 代理,以及在配置拓扑后运行日志读取器代理和分发代理。
为每个节点配置分发
1. 在 Microsoft SQL Server Management Studio 中连接到 NLB-SQL-01(必须对 NLB-SQL-02 和 NLB-SQL-03 重复此配置过程)。
2. 展开服务器节点,右键单击“复制”文件夹,再单击“配置分发”。
3. 在配置分发向导的“分发服务器”页上,选择分发服务器。
若要使用本地分发服务器,请选择“‘<服务器名称>'将充当自己的分发服务器;SQL Server 将创建分发数据库和日志”。若要使用远程分发服务器,请选择“使用以下服务器作为分发服务器”,再选择一个服务器。该服务器必须已配置为分发服务器,并且启用发布服务器使用此分发服务器。
如果选择远程分发服务器,必须在“管理密码”页上输入 NLB-SQL-01 连接到该分发服务器所用密码。此密码必须是在远程分发服务器上将 NLB-SQL-01启用为发布服务器时指定的密码。
4. 在“快照文件夹”页上,指定快照文件夹。
快照文件夹只是指定共享的目录。向此文件夹中执行读写操作的代理必须对其具有足够的访问权限。此目录存储第一个节点上的复制所需的对象;其他节点上的对等复制并不使用此目录,但配置分发服务器仍需要它。
服务代理账号 权限
oyesgo/ReplSnapAgent 读、写
oyesgo/ReplDistAgent 读
oyesgo/ReplLogUser 读
5.在“分发数据库”页上,指定分发数据库的名称。
分发数据库存储事务、元数据和历史数据。
6. 在“发布服务器”页上,根据需要启用其他发布服务器将 NLB-SQL-01 用作远程分发服务器。
7. 在“向导操作”页上,根据需要编写配置设置的脚本。
此环境假设是在单域环境内进行部署,其配置见如下表所示:
表1:系统配置清单
表2:服务账号
概述
对等事务性复制是专为可以读取或修改任何参与复制的数据库中的数据的应用程序设计的。例如,在线购物应用程序非常适合对等复制:通过将读取数据的查询分散到多个数据库,可以提高应用程序的性能。此外,如果任意承载数据库的服务器不可用,可以编制应用程序来将流量路由到剩余的服务器,这些服务器包含数据的相同副本。由于活动可以分散到所有节点,因此读取性能将得到提高。拓扑的更新、插入和删除总性能与单个节点的性能类似,因为所有更改最终将传播到所有节点。
对等拓扑中的所有节点都是对等的:每个节点所发布和订阅的架构和数据都是相同的。在所有节点都可进行更改(插入、更新和删除)。复制可以识别何时将更改应用到给定节点,从而避免所做的更改在节点间循环多次。
对等拓扑
上面每个关系图都显示了两个参与数据库,以及通过应用程序服务器将用户流量定向到数据库。此配置可用于从网站到工作组应用程序等多种应用程序,并具有下列优点:
l 由于将读取操作分散到两台服务器上,因此提高了读取的性能。
l 当需要维护或某一节点出现故障时,可以提供更高的可用性。
从这两张图中可以看到,读取活动在参与数据库间进行负载平衡,但更新的处理方式则有所不同:
l 在左图中,在两台服务器间对更新进行了分区。例如,如果数据库包含产品目录,则可以令自定义应用程序把对名称以 A-M 开头的产品进行的更新定向到节点 A,把对名称以 N-Z 开头的产品进行的更新定向到节点 B。然后将更新复制到另一个节点。
l 在右图中,所有更新都定向到节点 B。再从那里将更新复制到节点 A。如果 B 脱机(例如,为了维护),则应用程序服务器可以将所有活动定向到节点 A。当节点 B 恢复联机状态后,更新可以流向 B,并且应用程序服务器可以将所有更新移动回节点 B,或继续将更新定向到节点 A。
配置过程
本主题介绍如何创建两节点对等事务性复制拓扑,然后向现有拓扑中添加节点。本主题中对每个步骤都进行了详细说明:
初始拓扑包含 NLB-SQL-01、NLB-SQL-02 和 NLB-SQL-03。在创建拓扑时,假设任一对等数据库中均没有发生活动。创建拓扑:
1. 在 NLB-SQL-01、NLB-SQL-02 和 NLB-SQL-03上配置分发。
可以使用本地分发服务器,也可以使用远程分发服务器。如果使用远程分发服务器,建议不要对所有节点使用同一个远程分发服务器,因为这可能导致单点故障。
2. 使用新建发布向导在 NLB-SQL-01上创建发布。
3. 在“发布属性 - <发布>”对话框中为对等复制启用发布。
4. 手动或通过将NLB-SQL-01上的数据库还原到 NLB-SQL-02 和 NLB-SQL-03 来初始化 NLB-SQL-02 和 NLB-SQL-03 上的架构和数据。所有节点上的架构必须相同。
5. 使用配置对等拓扑向导将 NLB-SQL-02和 NLB-SQL-03添加到拓扑中。添加服务器:在每台服务器上都创建一个发布,并创建对拓扑中其他服务器上的发布的订阅。
如果发布的表中有标识列,则必须在 NLB-SQL-02 和 NLB-SQL-03 上重设表的标识范围种子。
创建拓扑后,添加 NLB-SQL-04。在向现有拓扑中添加节点时,假设有活动发生以及系统停机时间必须尽量缩短。向现有拓扑中添加节点:
1. 在 NLB-SQL-04 上配置分发。
2. 通过将 NLB-SQL-01 上的数据库还原到 NLB-SQL-04 来初始化 NLB-SQL-04 上的架构和数据。
3. 使用配置对等拓扑向导将 NLB-SQL-04 添加到拓扑中。此时,添加 NLB-SQL-04:在 NLB-SQL-04 上创建发布,并在 NLB-SQL-01 和 NLB-SQL-04 之间创建订阅。
如果发布的表中有标识列,则必须在 NLB-SQL-04 上重设表的标识范围种子。
此时,NLB-SQL-04可以向所有服务器发送更改并从所有服务器接收更改,但所有更改的传送必须经过与 NLB-SQL-02 和 NLB-SQL-03 连接的 NLB-SQL-01。如果要在 NLB-SQL-04 和其他节点之间添加订阅,请转到步骤 4。虽然可以不添加订阅,但最好添加订阅,因为与只有 NLB-SQL-01 和 NLB-SQL-04 之间的一个单一连接相比,这样就具有更强的容错能力。
4. 停止拓扑,这涉及到停止所有更改和同步所有服务器。
5. 使用配置对等拓扑向导在 NLB-SQL-04 和其他节点之间添加订阅。
创建对等复制拓扑
注意:
请确保在每个节点上都运行 Microsoft SQL Server 代理,以及在配置拓扑后运行日志读取器代理和分发代理。
为每个节点配置分发
1. 在 Microsoft SQL Server Management Studio 中连接到 NLB-SQL-01(必须对 NLB-SQL-02 和 NLB-SQL-03 重复此配置过程)。
2. 展开服务器节点,右键单击“复制”文件夹,再单击“配置分发”。
3. 在配置分发向导的“分发服务器”页上,选择分发服务器。
若要使用本地分发服务器,请选择“‘<服务器名称>'将充当自己的分发服务器;SQL Server 将创建分发数据库和日志”。若要使用远程分发服务器,请选择“使用以下服务器作为分发服务器”,再选择一个服务器。该服务器必须已配置为分发服务器,并且启用发布服务器使用此分发服务器。
如果选择远程分发服务器,必须在“管理密码”页上输入 NLB-SQL-01 连接到该分发服务器所用密码。此密码必须是在远程分发服务器上将 NLB-SQL-01启用为发布服务器时指定的密码。
4. 在“快照文件夹”页上,指定快照文件夹。
快照文件夹只是指定共享的目录。向此文件夹中执行读写操作的代理必须对其具有足够的访问权限。此目录存储第一个节点上的复制所需的对象;其他节点上的对等复制并不使用此目录,但配置分发服务器仍需要它。
服务代理账号 权限
oyesgo/ReplSnapAgent 读、写
oyesgo/ReplDistAgent 读
oyesgo/ReplLogUser 读
5.在“分发数据库”页上,指定分发数据库的名称。
分发数据库存储事务、元数据和历史数据。
6. 在“发布服务器”页上,根据需要启用其他发布服务器将 NLB-SQL-01 用作远程分发服务器。
7. 在“向导操作”页上,根据需要编写配置设置的脚本。
初始化每个节点上的架构和数据 · 可按以下方法之一初始化对等方: · 手动。使用 Integration Services (SSIS)、脚本或其他方法将NLB-SQL-01上的架构和数据复制到 NLB-SQL-02 和NLB-SQL-03。在将 NLB-SQL-02 和 NLB-SQL-03 配置为对等方之前,请确保这些服务器上的架构和数据与NLB-SQL-01 上的架构和数据相同。 · 通过将 Server A 上的发布数据库备份还原到 NLB-SQL-02 和 NLB-SQL-03。 重要事项: 还原数据库时,请勿指定 KEEP_REPLICATION 选项(对于 Transact-SQL)或“保留复制设置”选项(对于 SQL Server Management Studio)。运行配置对等拓扑向导时,复制会相应配置数据库。 · 备份包含完整的数据库,因此每个对等数据库初始化后都包含发布数据库的完整副本。备份包括:未指定为发布项目的表和所有数据,即使已经对某个表指定了行筛选器或列筛选器。 应由管理员或应用程序在还原备份后删除任何不需要的对象或数据。在后续同步中,只复制应用于指定为项目的表的数据更改。 在第一个节点上创建发布 1. 在 SQL Server Management Studio 中连接到 NLB-SQL-01,然后展开服务器节点。 2. 展开“复制”文件夹,再右键单击“本地发布”文件夹,单击“新建发布”。 3. 在新建发布向导的“发布数据库”页上,选择要发布的数据库。 4. 在“发布类型”页上,选择“事务性发布”。 5. 在“项目”页上,选择要发布的数据库对象。 l 单击“项目属性”,查看并修改项目属性。下列属性不能更改: l 目标对象名称 l 目标对象所有者 l 不能将“<ACTION> 传递格式”选项(其中 ACTION 为 INSERT、UPDATE 或 DELETE)设置为“<ACTION> 语句”或“没有列列表的 <ACTION> 语句”。 6. 不能在“筛选表行”页上定义筛选器;不支持筛选对等发布。 7. 在“快照代理”页上,清除“立即创建快照”。 |