SqlServer数据库主从同步
分发/订阅模式实现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数据库主从同步的更多相关文章
- mysql数据库主从同步
环境: Mater: CentOS7.1 5.5.52-MariaDB 192.168.108.133 Slave: CentOS7.1 5.5.52-MariaDB 192.168. ...
- MySQL-5.7数据库主从同步实战教程
主从形式 MySQ主从复制原理(主库写入数据,从库读取数据) MySql常用命令: MySQL5.7设置密码 ') where user='root': MySQL5.6设置密码 ') WHERE U ...
- mysql数据库主从同步读写分离(一)主从同步
1.mysql数据库主从同步读写分离 1.1.主要解决的生产问题 1.2.原理 a.为什么需要读写分离? 一台服务器满足不了访问需要.数据的访问基本都是2-8原则. b.怎么做? 不往从服务器去写了 ...
- MySQL数据库主从同步延迟分析及解决方案
一.MySQL的数据库主从复制原理 MySQL主从复制实际上基于二进制日志,原理可以用一张图来表示: 分为四步走: 1. 主库对所有DDL和DML产生的日志写进binlog: 2. 主库生成一个 lo ...
- Linux下MySQL数据库主从同步配置
说明: 操作系统:CentOS 5.x 64位 MySQL数据库版本:mysql-5.5.35 MySQL主服务器:192.168.21.128 MySQL从服务器:192.168.21.129 准备 ...
- MySQL数据库主从同步实战过程
Linux系统MySQL数据库主从同步实战过程 安装环境说明 系统环境: [root@~]# cat /etc/redhat-release CentOS release 6.5 (Final) ...
- linux shell mysql 数据库主从同步状态检查告警
需求: 1.监测数据库主从状态 2.获取数据库主要参数 3.可读取配置文件 4.部署位置自适应. 参考资料: http://blog.csdn.net/yf210yf/article/detail ...
- 【转】MySQL数据库主从同步管理
MYSQL主从同步架构是目前使用最多的数据库架构之一,尤其是负载比较大的网站,因此对于主从同步的管理也就显得非常重要,新手往往在出现主从同步错误的时候不知道如何入手,这篇文章就是根据自己的经验来详细叙 ...
- MySQL数据库主从同步安装与配置总结
MySQL的主从同步是一个很成熟的架构,优点为: ①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力: ②在从主服务器进行备份,避免备份期间影响主服务器服务: ③当主服务器出现问题时 ...
随机推荐
- 「NOIP 2020」微信步数(计数)
「NOIP 2020」微信步数(Luogu P7116) 题意: 有一个 \(k\) 维场地,第 \(i\) 维宽为 \(w_i\),即第 \(i\) 维的合法坐标为 \(1, 2, \cdots, ...
- 攻防世界 csaw2013reversing2 CSAW CTF 2014
运行程序 flag显示乱码 IDA打开查看程序逻辑 1 int __cdecl __noreturn main(int argc, const char **argv, const char **en ...
- 【java框架】SpringBoot(4)--SpringBoot实现异步、邮件、定时任务
1.SpringBoot整合任务机制 1.1.SpringBoot实现异步方法 日常开发中涉及很多界面与后端的交互响应,都不是同步的,基于SpringBoot为我们提供了注解方式实现异步方法.使得前端 ...
- C语言之动态内存管理
C语言之动态内存管理 大纲: 储存器原理 为什么存在动态内存的开辟 malloc() free() calloc() realloc() 常见错误 例题 柔性数组 零(上).存储器原理 之前我们提到了 ...
- Java 学习记录
•Eclipse相关 Eclipse常用设置 解决 Eclipse 项目中有红色感叹号的详细方法(图文) JRE System Library [JavaSE-1.8](unbound) •Java ...
- vue 快速入门 系列 —— 初步认识 vue
其他章节请看: vue 快速入门 系列 初步认识 vue vue 是什么 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架. 所谓渐进式,就是你可以一步一步.有阶段 ...
- SCIP:构造数据抽象--数据结构中队列与树的解释
现在到了数学抽象中最关键的一步:让我们忘记这些符号所表示的对象.不应该在这里停滞不前,有许多操作可以应用于这些符号,而根本不必考虑它们到底代表着什么东西. --Hermann Weyi <思维的 ...
- C++并发与多线程学习笔记--基本概念和实现
基本概念 并发 可执行程序.进程.线程 学习心得 并发的实现方法 多进程并发 多线程并发 总结 C++标准库 基本概念 (并发.进程.线程)区分C++初级编程和中高级编程 并发 两个或者更多的任务同时 ...
- 在ASP.NET Core中使用ViewComponent
前言 在之前的开发过程中,我们对于应用或者说使用一些小的组件,通常使用分布页(partial view),再往前在Web Form中我们会进行应用WEB Control,好吧提及一个关键性代码TagP ...
- 【CTF】CTFHub 技能树 彩蛋 writeup
碎碎念 CTFHub:https://www.ctfhub.com/ 笔者入门CTF时时刚开始刷的是bugku的旧平台,后来才有了CTFHub. 感觉不论是网页UI设计,还是题目质量,赛事跟踪,工具软 ...
