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的主从同步是一个很成熟的架构,优点为: ①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力: ②在从主服务器进行备份,避免备份期间影响主服务器服务: ③当主服务器出现问题时 ...
随机推荐
- 选择 FreeBSD 而不是 Linux 的技术性原因4
Linux 二进制兼容性 FreeBSD 提供了与 Linux 的二进制兼容.这使得用户可以在 FreeBSD 系统上安装和运行许多 Linux 二进制文件, 而无需首先修改二进制文件.在某些特定情况 ...
- 记一次jstack命令定位问题
今天天气不错,但是赶上恶意加班心情就不爽,怀着不爽的心情干活,总能创造出更多的问题,这不,今天就自己挖了一个坑,自己跳进去了,好在上来了 经过是这样的,开始调试canal采集binlog时,由于添加了 ...
- 从yield到yield from再到python协程
yield 关键字 def fib(): a,b = 0,1 while 1: yield b a,b = b,a+b yield是在:PEP 255 -- Simple Generators 这个p ...
- 开发C语言的3款神器,VS2019、VScode和IntelliJ Clion
一.Visual Studio 2019环境安装配置+代码调试 环境安装配置 首先我们要在Visual Studio官方网站去下载安装包 进入官网后会发现有三种版本可供下载,分别是社区版.专业版和企业 ...
- JS 字符数组和数字数组转换
var newArr = ['1','2','3'].map(Number):// [1,2,3] var newArr =[1,2,3].map(String):// ['1','2','3']
- 递归实现1-n的全排列(JAVA语言)
思路: For example: 123的全排列= 1在最前面 23的全排列 + 2在最前面 13的全排列 + 3最前面 12的全排列 所以只需交换和最前面元素的位置,生成剩余元素的全排列即可. im ...
- java例题_35 找到最大值和最小值并交换位置
1 /*35 [程序 35 最大最小交换] 2 题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组. 3 */ 4 5 /*分析 6 * 1.先初始化一个数组,然后从键盘获得值 ...
- Android Studio 之 EditText
EditText 简介 •简介 EditText是一个非常重要的组件,可以说它是用户和Android应用进行数据传输窗户: 有了它就等于有了一扇和Android应用传输的门,通过它用户可以把数据传给A ...
- Cloudreve 自建云盘实践,我说了没人能限得了我的容量和速度!
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 为啥要用自建网盘,市面上的云盘不香了? 每一个用户需求的背后都是因为有场景存在,而这 ...
- leetcode 刷题(数组篇)1题 两数之和(哈希表)
题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一个元 ...