分发/订阅模式实现SqlServer主从同步

在文章开始之前,我们先了解一下几个关键的概念:

分发服务器
分发服务器是负责存储在同步过程中所用复制信息的服务器。可以比喻成报刊发行商。 分发数据库
分发数据库用于存储发布数据库所做的更改。它还可以存储快照和合并发布的历史信息。存在于系统数据库中,默认为destribution. 发布服务器
使服务器能够成为发布服务器后使用此分发服务器。它通过复制向其他位置提供数据。可以比喻成报刊出版商,实际生产报刊的地方。 发布数据库
包含要发布的数据或对象的数据库,即主库。 订阅服务器
从库(slave节点)所在的数据服务器。可以比喻成阅读报刊的人

环境准备

1.SqlServer2008R2数据库

2.启动数据库服务器SQL Server 代理 (MSSQLSERVER)服务

配置分发

分发服务器可以和发布服务器是同一台服务器,也可以单独指定分发服务器。本文以同一台服务器为例。

1) 选择当前服务器作为分发服务器

2)启动SqlServer代理

3)配置快照文件夹

快照是可以存储主库数据架构和初始数据,也可以存储主库某一段时间内数据库发生的变化。

4)配置分发数据库

分发数据库以数据库文件的形式存储主库发布的数据变化。

新建发布

1)选择发布数据库

2)选择发布类型

SqlServer数据库提供了以下四种发布类型:

快照发布
发布服务器按预定的时间间隔向订阅服务器发送已发布数据的快照。
可以理解为发布数据库将一段时间间隔内的数据变化打包到数据文件中,一次性提交给订阅服务器。适用于数据量小,允许数据延迟的主从数据库同步。 事务发布
在订阅服务器收到已发布数据的初始快照后,发布服务器将事务流式传输到订阅服务器。
创建了初始快照后,接着在发布服务器上所做的数据更改和数据结构更改通常在修改后同步传递给订阅服务器,数据更改将按照其在发布服务器上的事务顺序应用于订阅服务器,保证了发布内的事务一致性。
事务发布能够将发布数据变化的信息及时传递给订阅服务,并在短时间内完成。数据近似于同步更新,适用于对数据实时性要求较高的场景。 具有可更新订阅的事务发布
在 SQL Server 订阅服务器收到已发布数据的初始快照后,发布服务器将事务流式传输到订阅服务器。来自订阅服务器的事务被应用于发布服务器。
在事务发布的基础上,支持订阅服务器向发布服务器提交更新。 合并发布
在订阅服务器收到已发布数据的初始快照后,发布服务器和订阅服务器可以独立更新已发布数据。更改会定期合并。Microsoft SQL Server Compact Edition 只能订阅合并发布。

3)选择要发布的数据库对象,可以是表,也可是某个字段

4)自定义数据过滤条件

5)快照代理

快照代理运行于分发服务器上,用于连接发布服务器,每个发布服务器都有专属于自己的一个快照代理。其主要作用是:将发布数据库的数据架构和初始数据同步到分发数据库中;存储快照文件并记录历史同步信息。

对于事务性发布,还存在日志读取器代理:该代理与事务性复制一起使用,运行于分发服务器上并与发布服务器连接。其主要作用是:将发布服务器上数据库事务日志中标记为复制的事务移至分发数据库中。

6)配置代理账户,用于连接发布服务器

新建订阅

1)选择订阅的发布

2)配置订阅模式

推送订阅

分发服务器接收到分发服务器变化的数据之后,主动像订阅服务器推送。(推荐)

请求订阅

订阅服务器主动向分发服务器订阅变化的数据。如果选择请求订阅,那么订阅服务器需要能够访问分发服务器存储的快照文件夹位置。

分发代理

分发代理与快照复制和事务性复制一起使用。其主要作用是:将发布数据库初始快照发送到订阅服务器,并将分发数据库中保存的数据库事务移至订阅服务器。分发代理既可以运行于分发服务器(推送订阅模式),也可运行于订阅服务器(请求订阅模式)

3)配置订阅服务器和从库

4)配置订阅服务器代理账户

5)配置同步计划模式

6)初始化发布数据库数据和架构

以上步骤就完成了分发服务器、发布服务器和订阅服务器的配置。

同步过程(事务性复制):

1.发布服务器选择关联对应的分发服务器,快照代理将发布数据库数据架构和初始化数据存储到分发服务器上

2.当发布数据库数据变动时,日志读取器代理会将变更的事务日志记录到分发服务器指定的分发数据库文件中(日志文件和数据文件、.MDF—存储数据,.LDF—存储数据更新)

3.分发代理将分发数据库中的初始信息和变更信息更新到订阅服务器。

SqlServer数据库主从同步的更多相关文章

  1. mysql数据库主从同步

    环境: Mater:   CentOS7.1  5.5.52-MariaDB  192.168.108.133 Slave:   CentOS7.1  5.5.52-MariaDB  192.168. ...

  2. MySQL-5.7数据库主从同步实战教程

    主从形式 MySQ主从复制原理(主库写入数据,从库读取数据) MySql常用命令: MySQL5.7设置密码 ') where user='root': MySQL5.6设置密码 ') WHERE U ...

  3. mysql数据库主从同步读写分离(一)主从同步

    1.mysql数据库主从同步读写分离 1.1.主要解决的生产问题 1.2.原理 a.为什么需要读写分离? 一台服务器满足不了访问需要.数据的访问基本都是2-8原则. b.怎么做?  不往从服务器去写了 ...

  4. MySQL数据库主从同步延迟分析及解决方案

    一.MySQL的数据库主从复制原理 MySQL主从复制实际上基于二进制日志,原理可以用一张图来表示: 分为四步走: 1. 主库对所有DDL和DML产生的日志写进binlog: 2. 主库生成一个 lo ...

  5. Linux下MySQL数据库主从同步配置

    说明: 操作系统:CentOS 5.x 64位 MySQL数据库版本:mysql-5.5.35 MySQL主服务器:192.168.21.128 MySQL从服务器:192.168.21.129 准备 ...

  6. MySQL数据库主从同步实战过程

       Linux系统MySQL数据库主从同步实战过程 安装环境说明 系统环境: [root@~]# cat /etc/redhat-release CentOS release 6.5 (Final) ...

  7. linux shell mysql 数据库主从同步状态检查告警

    需求: 1.监测数据库主从状态 2.获取数据库主要参数 3.可读取配置文件 4.部署位置自适应.   参考资料: http://blog.csdn.net/yf210yf/article/detail ...

  8. 【转】MySQL数据库主从同步管理

    MYSQL主从同步架构是目前使用最多的数据库架构之一,尤其是负载比较大的网站,因此对于主从同步的管理也就显得非常重要,新手往往在出现主从同步错误的时候不知道如何入手,这篇文章就是根据自己的经验来详细叙 ...

  9. MySQL数据库主从同步安装与配置总结

    MySQL的主从同步是一个很成熟的架构,优点为: ①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力: ②在从主服务器进行备份,避免备份期间影响主服务器服务: ③当主服务器出现问题时 ...

随机推荐

  1. Excel查分系统搭建小技巧

    推荐一个教师必备工具"Yichafen",是一个在线查分系统,全国8000所高校都在用,三分钟极速创建发布查分系统 在工作学习中,我们经常会遇到查分系统这样的问题.培根说过:读书足 ...

  2. WPF 应用 - WPF 播放 GIF 的两种方式

    1. 使用 Winform 的 PictureBox 1.1 引用 dll WindowsFormsIntegration.dll System.Windows.Forms.dll System.Dr ...

  3. LNMP配置——Nginx配置 ——Nginx防盗链

    一.配置 #vi /usr/local/nginx/conf/vhost/test.com.conf 写入: server { listen 80; server_name test.com test ...

  4. 关于ORACLE数据库跨库调用序列的解决办法

    问题  ORACLE  数据库   用户1   xscg  有序列      seq_S_ATTACHMENT_INFO.nextval         我要在  用户2   xsds   里面调用 ...

  5. C语言知识汇总,史上最全面总结,没有之一

    C语言基础 C语言学习路线 C语言入门笔记 初识C语言 简单的C程序示例 我们编写的C代码是怎样跑起来的? 简单示例,VS2019调试C语言程序 C语言基础-数据类型 深入理解变量,变量的声明,定义, ...

  6. css实现京东顶部导航条

    1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="U ...

  7. 【linux】驱动-1-环境准备

    目录 前言 1. 开发环境搭建 1.1 环境准备 1.1.1 安装工具 1.1.2 编译内核 1.1.2.1 获取内核源码 1.1.2.2 编译内核 1.2 内核驱动模块编译和加载 1.2.1 hel ...

  8. 五个问题,三大策略,手把手教你定制App性能监控方案

    作者:友盟+U-APM团队 Why? 为什么要做应用性能监控? 首先,我们要知道应用性能监控具体指什么?以及目的: 监控是一套完整的"监视+报警"的系统.对于像我们这样的App开发 ...

  9. RabbitMQ 入门 (Go) - 1. 简介和安装

    Message Broker(消息代理) 维基百科对 Message Broker 的定义是:Message broker 是一种中介程序模块,它把消息从发送方的正式消息传递协议转化为接收方的正式消息 ...

  10. asp.net core 2.0 web api + Identity Server 4 + angular 5 可运行前后台源码

    前台使用angular 5, 后台是asp.net core 2.0 web api + identity server 4. 从头编写asp.net core 2.0 web api 基础框架: 第 ...