SQL SERVER 使用订阅发布同步数据库

sqlserver同步-发布订阅 日志读取器代理监视为事务复制配置的每个数据库的事务日志,并将标记为要复制的事务从事务日志复制到分发数据库中,分发数据库的作用相当于一个可靠的存储-转发队列。快照代理准备快照文件(其中包含了已发布表和数据库对象的架构和数据),然后将这些文件存储在快照文件夹中,并在分发服务器中的分发数据库中记录同步作业。准备三台服务器饭别作为发布服务器,分发服务器,和订阅服务器,发布和分发也可以做在一起,但对生产系统来说,需要改动内容过多,最好分开处理,减少对发布服务器修改,以防发生不可预知的问题。 阅读详情

SQL SERVER 使用订阅发布同步数据库(转)

一、数据库复制涉及

   1、发布服务器:   

  数据的来源服务器,维护源数据,决定哪些数据将被分发,检测哪些数据发生了修改,并将这些信息提交给分发服务器。

   2、分发服务器:        

  分发服务器负责把从发布服务器拿来的数据传送至订阅服务器。

   3、订阅服务器:
         订阅服务器就是发布服务器数据的副本,接收维护数据。

   4、订阅类型
       推订阅
          推订阅是指由发布服务器将所有发生修改过的数据复制给订阅者,这种在数据同步性价比较高的场合,推荐使用推订阅。
       拉订阅
          拉订阅是指订阅服务器在经过一段时间就会向发布服务器要求复制出版数据库发生的变化的数据。

 
     发布,分发,订阅可以部署在独立的服务器上面也可以部署在一台sql server 上面,然而分开部署肯定能提高性能。

 

二、复制代理:

  1、快照代理
  快照代理在分发者上创建并存储快照文件,任务是:在分发数据库中准备已发布表的架构和初始数据以及其他对象、存储快照文件并记录出版数据库和订阅服务器之间的同步信息,快照代理运行在分发者服务器上,并与出版者相连接。每一个出版物都有自己的快照代理。与各种类型的复制一起使用。

  2、日志阅读代理
日志读取器代理与事务性复制一起使用。它将发布服务器上的事务日志中标记为复制的事务移至分发数据库中。使用事务性复制发布的每个数据库都有自己的日志读取器代理,该代理运行于分发服务器上并与发布服务器连接(分发服务器与发布服务器可以是同一台计算机)。

  3、分发代理
分发代理与快照复制和事务性复制一起使用。它将初始快照应用于订阅服务器,并将分发数据库中保存的事务移至订阅服务器。分发代理既可以运行于分发服务器(对于推送订阅),也可运行于订阅服务器(对于请求订阅)。

  4、合并代理   
合并代理与合并复制一起使用。它将初始快照应用于订阅服务器,并移动和协调所发生的增量数据更改。每个合并订阅都有自己的合并代理,该代理同时连接到发布服务器和订阅服务器并对它们进行更新。合并代理既可以运行于分发服务器(对于推送订阅),也可以运行于订阅服务器(对于请求订阅)。默认情况下,合并代理将订阅服务器上的更改上载到发布服务器,然后将发布服务器上的更改下载到订阅服务器。

  5、队列阅读代理
队列读取器代理与包含排队更新选项的事务性复制一起使用。该代理运行于分发服务器,并将订阅服务器上所做更改移回至发布服务器。与分发代理和合并代理不同,只有一个队列读取器代理的实例为给定分发数据库的所有发布服务器和发布提供服务。

 

三、复制类型: 

SQL SEVER提供了三大类复制类型:快照复制、事务复制、合并复制。可以在实际应用中使用相应的复制类型,每一种复制类型都在不同程序上实现数据的一致性。

  1、快照复制
如其名字所言,快照复制指在某一时刻给出版数据库中的出版数据照相,然后将数据复制到订阅者服务器。快照复制实现较为简单,其所复制的只是某一时刻数据库的瞬间数据,
快照复制是将整个出版物传送给订阅者,就是在某一时刻将出版数据进行一次“照相”,生成一个描述出版数据库中数据的当前状态的一个文件,然后在相应的时间将其复制到订阅都的数据库上,快照复制并不是不停的监视出版数据库中发生的变化情况,它是对出版数据库进行一次扫描,把所有出版数据中的数据从源数据库送至目标数据库,而不仅仅是变化的数据。如果数据量很大,那么要复制的数据就很多。因此对网络资源要求很高,不仅要有较快的传输速度,而且要保证传输的可靠性。

快照复制是最为简单的一种复制类型,能够在出版者和订阅者之间保证数据的一致性。快照复制通常使用在以下场合:
       在一定时间内出现大量的更改的操作,但数据总量不大,变化周期较长。


  2、 事务复制
快照复制是将整个数据集发送给订阅服务器,由于体积大而造成复制周期较长,会形成复制滞后问题。那么事务复制使用事务日志来生成将复制到订阅服务器的事务,因为它只复制事务也就是变化,所以滞后也比快照复制低得多,因为将不断地在订阅服务器处得到及时应用。
事务复制有三个组件:
快照代理,它生成架构,数据以及跟踪复制过程所需的数据;
分发代理:它分发快照和随后的命令;
日志读取器代理:它读取发布数据的事务日志。
在事务复制中,当出版数据库发生变化时,这种变化就会立即传递给订阅者。并在较短时间内完成(几秒),而不是像快照复制那样要经过很长一段时间间隔。因此,事务复制是一种接近实时地从源到目标分发数据的方法。由于某种原因事务复制的频率较高。所以必须保证在订阅者与出版者之间要有可靠的网络连接。

  
  3、合并复制
合并复制是为移动用户设计的,可以在发布服务器或是订阅服务器处执行修改,在合并代理运行时,这些修改将同步,多用于发布服务器与订阅服务都修改数据的情况下。工作原理如下:在要复制的每个表上实现触发器,并使用包含GUID列唯一标识要复制的表中的每一行。对其中的任何一个表进行修改时,都会将更改将记录一个数据表中,在合并代理运行时,它收集数据表中的GUID,这些GUID指出了在发布服务器和订阅服务器处修改过的行。对于只在发布服务器或是订阅端修改的数据则直接进行相应操作,如INSERT,UPDATE,DELETE,如果双方都有GUID则按照用户指定的方式解决冲突,默认发布服务器伏先。


配置复制:
无论是快照复制,事务性复制还是合并复制,创建复制都要经过以下几个步骤:
1.    创建发布服务器。选择要发布的服务器。如果有条件的,也可以分发服务器,在这里我们就将发布服务器和分发服务器设置在同一台计算机上。
2.    不论是发布服务器还是订阅服务器必须开启代理服务。
3.    创建一个发布。即将需要的数据库及对象发布出来。
4.    选择一个适合自己的发布类型。
5.    设置复制代理及安全,即指定可以运行代理的用户帐号。
创建可以使用此发布的订阅服务器。

 

 

四、发布的具体过程如下:

1、展开SQL Server 2008 服务器下的 【复制】 节点,会发现有【本地发布】和【本地订阅】两个节点,右击【本地发布】节点,选择【新建发布】: 

2、如果服务器第一次进行发布设置,会弹出【发布向导】对话框,设置【分发服务器】,选择第一个:

 3、点击【下一步】会询问我们【启动SQL SERVER代理】的方式,由于是演示,我选则的是 手动方式:

4、点击【下一步】,会出现设置【快照文件夹】对话框,我们选择默认:

5、点击【下一步】,选择要发布的数据库,我们选择 数据库 Lx_Data1:

6、点击【下一步】,选择【发布类型】,我们选择 【事务发布】。这里要说明一下如果您对此对话框里面的各种发布类型不是很理解,请点击这里 选择适当的复制类型

7、点击【下一步】,选择数据库中的发布对象,我们的这个例子数据库只有一个表 t_student,我们选择这个表:

8、点击【下一步】,进入【筛选表行】对话框:

 9、如果需要筛选表行点击【添加】就会出现如下的筛选器对话框:

10、我们不做筛选,要全部同步,点击【取消】后,直接【下一步】,进入【快照代理】设置对话框:

11、这里有两个选择一个是立即创建快照,一个是指定一个计划(比如可以指定xxx天xxx时间运行),我们选择第一个,并点击【下一步】进入【代理的安全性】设置:

12、点击【安全性设置】,我们选择 SQL SERVER 用户:

13、点击【确定】 后,返回 【代理安全性】设置对话框,继续点击【下一步】:

14、点击【下一步】,我们给发布进行命名为:“Lx_Data1_Publisher” :

15、点击【完成】,就会创建发布,并会显示创建发布的结果:

订阅

发布完成后,我们要进行订阅,过程如下:

1、右键点击【本地订阅】节点,打开,【新建订阅向导】对话框:

2、我们选择发布服务器 Lx-PC 中的数据库发布 Lx_Data1_Publisher,然后点击【下一步】:

3、在【分发代理位置】对话框中,选择第一项,点击【下一步】:

4、在【订阅服务器】对话框中,我们选择订阅数据库 Lx_Data2,然后点击【下一步】:

5、在【分发代理安全性】对话框中,我们点击“...”,进入安全性设置,我们选则的是 SQL 帐户:

6、输入帐号和密码后,点击【确定】,返回【安全性设置】对话框,点击【下一步】:

7、我们选择默认的“连续运行”,点击【下一步】,进入【初始化订阅】对话框:

8、初始化时间,选择 “立即” 初始化,点击【下一步】:

9、不创建脚本文件,点击【下一步】:

10、点击【完成】,就会创建订阅,并显示创建结果:

至此,服务器的发布和订阅都已经创建成功了。我们来测试一下,此时两个数据库表中都没有任何数据,向Lx_Data1中的 t_student 表中插入两条数据:

use Lx_Data1
go
insert into t_student values (1,'史泰龙',22,'纽约小学','一班',92)
insert into t_student values (2,'施瓦辛格',23,'华盛顿小学','一班',90)

 然后我们查看两个数据库的结果:

复制代码

复制代码

use Lx_Data1
go
select * from t_student

use Lx_Data2
go
select * from t_student

复制代码

复制代码

 结果我们会发现数据已经同步了,如下图:

五、注意事项

1、无论是发布复制还是订阅服务 一定要在sql server安装的服务器本机操作,不能是远程连接操作

2、将这个文件夹共享出来,然户用共享文件夹的UNC路径作为快照文件夹路径。这个文件夹要赋予SQL Server Service和Agent Service读写权限。

3、sql server 另外一种镜像实现数据副本,镜像是只能主服务器读写,从服务器是不支持读写的,而复制是可以从服务器读 主服务器写。所以我们实现读写分离往往是通过数据库的复制来实现。

4、UNC 可以做的网络驱动映射或者FTP连接

5、再发布服务器设置订阅的时候 系统会提示使用计算机名,而在不同的网络内计算机名不可以直接访问,这个时候需要设置别名,别名要注意64 client 和32client都要加

SQL Server 2008通过发布订阅的方式实现数据库之间的同步操作 SQL Server 2008通过发布订阅的方式实现数据库之间的同步操作   发布订阅份为两个步骤:1、发布。2、订阅。首先在数据源数据库服务器上对需要同步的数据进行发布, 然后在目标数据库服务器上对上述发布进行订阅。发布可以发布一张表的部分数据,也可以对整张表进行发布。下面分别介绍发布、订阅的过程。   一、发布。发布需要用实际的服务器名称,不能使用服务器的IP地址进行。能发布的信息包括【 阅读详情

相关推荐

SQL SERVER 2012 使用订阅发布同步数据库(一)

企业做大了,就会有分支机构。分公司与总公司之间既统一又独立。这就是业务,技术服务于业务,那么摆在我们面前的问题是如何让数据既统一又独立?其实SQLServer已经为我们提供了很好的解决方案:发布、订阅。 打开SQL Server2012的对象资源管理器我们可以看到里面有一个”复制“节点。(图1) <img alt="" data-cke-saved-src="https://i...

认真搞技术 1万+

SQL SERVER 使用订阅发布同步数据库(转)

一、数据库复制涉及 1、发布服务器:   数据的来源服务器,维护源数据,决定哪些数据将被分发,检测哪些数据发生了修改,并将这些信息提交给分发服务器。 2、分发服务器:   分发服务器负责把从发布服务器拿来的数据传送至订阅服务器。 3、订阅服务器: 订阅服务器就是发布服务器数据的副本,接收维护数据。 4、订阅类型 ...

weixin_30655569的博客 318

SQL Server与SQL CE数据库同步发布订阅源码实战

在现代分布式系统架构中,数据的实时同步与一致性保障成为关键需求之一。发布-订阅模式作为SQL Server提供的一种核心复制技术,广泛应用于企业级数据分发场景。本章将深入剖析发布与订阅的基本概念、架构组成及其在实际业务中的价值定位。是创建合并发布的核心入口,负责设定发布级别参数,如发布名称、描述、冲突解决策略等。GO@sync_mode = N'native', -- 原生快照格式@retention = 14, -- 订阅保留天数。

weixin_31869917的博客 401

SQL server 数据库同步(发布与订阅)【解决办法】

介绍SQLserver服务器的数据库订阅与发布的办法

神秘人的博客 7066

保姆级教程:用Kalibr搞定Intel D435i三目(RGB+双目)相机联合标定,附完整ROSbag录制避坑指南

本文详细介绍了如何使用Kalibr工具对Intel D435i三目相机(RGB+双目)进行高精度联合标定,包括硬件准备、ROSbag录制技巧、Kalibr标定实战及结果验证。特别针对实际工程中的常见问题提供了解决方案,帮助开发者提升SLAM和三维重建等应用的精度。

weixin_42524762的博客 405

MIT 6.824分布式 LAB4A:ShardCtrler

lab 4要求实现一个使用raft共识算法的分片存储系统。而在lab 4a中,我们仅需实现分片控制器的功能。lab4中的分片存储系统有多个分片,这些数据分布在众多分片上,而每个分片都对应着一个集群组,可能一个集群组负责多个分片,一个集群组内的所有服务器都会使用raft共识算法进行状态的复制。而本实验的重点为分片控制器,主要负责的工作是对集群组和分片之间关系的管理,我们仅需在/src/shardctrler文件夹中对client.go,server.go,common.go这三个文件进行修改即可。注意事项(实

MarksSa的博客 832

SQLServer 实时同步、发布、订阅

SQLServer 数据库 实时同步数据、定时同步数据库、发布 订阅服务;保姆级教程,非常详细。文章详细的介绍了数据库安装、账户设置方式、角色权限、映射、映射权限、文件夹设置方式、数据库同步、数据库管理设置方式、发布方式、订阅方式、实时同步、同步合并、安全设置、发布状态、代理服务、推送订阅、发布服务器、订阅服务器, 以及 遇到的网络相关错误、特定实例错误、订阅服务器和发布服务器连接异常问题、发布项目异常、添加项目异常、实时传输不成功等等异常问题,还包括测试和卸载相关内容。

断点 6216

[Ethernet in CANoe]4--CANoe工程中SOME/IP报文的详细介绍(二)

介绍了SOME/IP报文的SD报文(ServiceDiscovery),本片文章开始继续介绍SOME/IP报文。

汽车ECU自动化测试 1113

(摘抄)SQLServer 中发布与订阅

 在对数据库做迁移的时候,会有很多方法,用存储过程,job,也可以用开源工具kettle,那么今天这些天变接触到了一种新的方法,就是SqlServer中自带的发布与订阅。   首先说明一下数据复制的流程。如下图A是(192.168.210.170)上的数据库,B是(172.23.100.109)上的数据库。把B当作数据源,然后A从B上获取数据。 发布前准备:首先两个服务器之间要能...

雨水霂 768

AD24-层次原理图的设计

4)在原理图关联对话框中双击需要放置方块图的子图,即激活方块图的放置,单击母图的空白处进行放置。3)设计-Create Sheet From Sheet,进入原理图关联对话框。4)放置-添加图纸入口,放置方块图的内部I/O端口并进行名称更改。2)放置-页面符,放置页面符,并执行Table完成属性设置。5)执行Ctrl+W,端口和内部I/O端口对应连接。1)创建一个工程并完成子图的每页原理图的设计。1)新建项目,创建Main原理图页。3)放置-的端口,放置方块图的端口。以上,就是层次原理图页的设计。

qq_52761962的博客 4918

YOLO格式数据集划分

YOLO格式的数据集划分 标题标签格式txt import os import cv2 import random from PIL import Image # os.makedirs('labels_train') # os.makedirs('labels_val') img_train_path ='./img_train/' #图片训练集保存路径 img_val_path = './img_val/' #图片验证集保存路径 labels_train_path = './labels_t

weixin_51154380的博客 3307

SQL Server 2008 数据库同步的两种方式(发布、订阅)

数据库发布订阅份为两个步骤:1、发布。2、订阅。首先在数据源数据库服务器上对需要同步的数据进行发布,然后在目标数据库服务器上对上述发布进行订阅。发布可以发布一张表的部分数据,也可以对整张表进行发布。下面分别介绍发布、订阅的过程。   一、发布      发布需要用实际的服务器名称,不能使用服务器的IP地址进行。能发布的信息包括【表】、【存储过程】、【用户函数】如果        使用I

summer 1万+

杰理SDK入门教程(五):按键使用配置

摘要 杰理SDK提供IO按键和AD按键两种方案。IO按键通过GPIO电平检测实现,配置时需要设置板级宏定义和硬件连接,默认使用PB1引脚。AD按键基于ADC电压采样,通过电阻分压区分按键,需配置功能使能、硬件通道和键值适配。按键功能通过修改SDK中的key_table文件实现。两种方案适用于不同硬件场景,开发者可根据需求选择。

qq_42014563的博客 775

Sql Server 2012 数据库同步方式 (发布、订阅)

上篇中说了通过SQL JOB的方式对数据库的同步,这一节作为上一节的延续介绍通过发布订阅的方式实现数据库之间的同步操作。发布订阅份为两个步骤:1、发布。2订阅。首先在数据源数据库服务器上对需要同步的数据进行发布,然后在目标数据库服务器上对上述发布进行订阅。发布可以发布一张表的部分数据,也可以对整张表进行发布。下面分别介绍发布、订阅的过程。   1、发布。发布需要用实际的服务器名称,不能...

banquanchi1764的博客 1520

【MicroPython编程-ESP32篇:设备驱动】-SHT31温度湿度传感器驱动

SHT31 是 Sensirion 的下一代温湿度传感器。 它建立在一个新的 CMOSens® 传感器芯片之上,该芯片是 Sensirion 新湿度和温度平台的核心。

视觉与物联智能 229

论文必备 - YOLO26热力图可视化,支持指定模型,指定显示层,设置置信度,以及9种可视化实现方式

本文带来的是YOLO26热力图可视化功能,支持指定模型,指定显示层,设置置信度,以及9种可视化实现方式。我们经常看到一些论文里绘制了不同的热力图,一方面能够直观的感受其模型的有效性,另一方面也丰富了论文内容。特别是在使用了注意力模块的网络中,热力图就可以验证注意力机制是否真正聚焦到了预期的重要特征上,以便对模型的有效性和合理性进行评估。例如Centralized Feature Pyramid for Object Detection这篇文章中展示的,就很能够表达作者改进后的模型相比之前模型的优越性。在项目

Limiiiing的博客 433

SQL Server 2008 数据库同步 (发布、订阅)

1、找到数据库服务器下的【复制】--【本地发布】,选择【新建发布】。如下图:   2、选择待发布的数据库。如下图:   3、选择发布类型。这里选择的默认类型【快照发布】。几种发布类型的区别,SQL SERVER都在下面给出了说明。如下图:   4、选择待发布的类容。如下图:   上图中右侧就是筛选的SQL语句。   5、设置快照代理。如下图:   更改同步频率如下图

5612

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【SQL】SQL Server数据库间的数据同步——复制(发布和订阅)

SQL server数据库间的数据同步

陈学姐只会增删改查的博客 3459

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

SQL SERVER 2008 利用发布订阅方式实现数据库同步

数据库同步方式有很多种,这里以SQL Server 2008 为例利用数据库发布和订阅的方式来演示数据库的同步技术。由于就有一台计算机,只能在同一个服务器下两个不同的数据库之间进行数据同步进行演示。 发布订阅分为两个步骤:1、发布。2订阅。首先在数据源数据库服务器上对需要同步的数据进行发布,然后在目标数据库服务器上对上述发布进行订阅。发布可以发布一张表的部分数据,也可以对整张表进行发布,还...

selaginella的专栏 2704

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

mysql数据库中发布与订阅_SQL SERVER 使用订阅发布同步数据库 【推送订阅】

一、数据库复制涉及1、发布服务器:数据的来源服务器,维护源数据,决定哪些数据将被分发,检测哪些数据发生了修改,并将这些信息提交给分发服务器。2、分发服务器:分发服务器负责把从发布服务器拿来的数据传送至订阅服务器。3、订阅服务器:订阅服务器就是发布服务器数据的副本,接收维护数据。4、订阅类型推订阅推订阅是指由发布服务器将所有发生修改过的数据复制给订阅者,这种在数据同步性价比较高的场合,推荐使用推订阅...

weixin_32817047的博客 1287

SQL SERVER 2012 使用订阅发布同步数据库(四)

这次我们要用事务发布做一次测试(图1) 点击下一步,我们发现[Product] 表不能选中错误提示为:此表不能发布,因为它没有主键列。事务发布中的所有表都需要主键列。(图2) 添加主键,继续...... 我们来看看事务发布与快照发布的区别,现在[Publish]表中有3条记录(图3) [Subscribe]表中有2条记录(图4) 现在我更改[Publish]表中的第1条数...

认真搞技术 3132

Sql Server 2008 实现不同数据库-表实时同步 本地发布/订阅

SQL server 不同数据库之间的表实时同步 图片大部分来自Sql Server 2008 实现不同数据库-表实时同步 本地发布/订阅 - 简书 有做适当的内容增加解释。 本地发布 1.新建发布 2.选择要同步出去的数据库 3.选择同步类型,有几种可以百度了解一下,根据需求选择哪种 以下快照复制、事务复制、合并复制的使用场景供参考: 4.选择要发布的表,存储过程,视图。。 5.修改快照属性 这里改的是每10秒执行,根...

grfstc的博客 2573

SQL Server 2008 数据库同步的两种方式 (发布、订阅)

  上篇中说了通过SQL JOB的方式对数据库的同步,这一节作为上一节的延续介绍通过发布订阅的方式实现数据库之间的同步操作。发布订阅份为两个步骤:1、发布。2、订阅。首先在数据源数据库服务器上对需要同步的数据进行发布,然后在目标数据库服务器上对上述发布进行订阅。发布可以发布一张表的部分数据,也可以对整张表进行发布。下面分别介绍发布、订阅的过程。   一、发布。发布需要用实际的服务器...

weixin_30266829的博客 90
上一篇: VUE ElementUI table CheckBox 获取所有选择的行
下一篇: .NETCore 简单且高级的库 csredis v3.0.0
vimanas
博客等级 码龄11年 25粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值