学习:https://www.bilibili.com/video/BV13B4y1h7Wu?p=12&spm_id_from=pageDriver&vd_source=3f21d2e208ef0bf2c49a9be7560735e5

学习:https://www.cnblogs.com/sdadx/p/6418871.html

学习:https://blog.csdn.net/songjuntao8/article/details/119942226

背景:

在实际应用项目开发中,应用数据基本上都存储在数据库中,针对数据库的操作有增删改查操作。

有时为了解决并发大数据访问问题,我们需要使用数据库读写分离,主库用来实现应用数据的增删改操作,而从数据库主要用来进行查询操作

一个主库:写操作服务器

多个从库:查询操作的服务器--承载80%的查询动作--查询动作由多个服务器来支撑--做到了负载均衡。

写库必然需要把操作同步到查询库中:

增删改:主控

查询库:从库

一主多从

数据如何复制,采用的是数据库日志(对于每一个操作都有1个记录)

1,数据同步有延迟,有办法解决的。

2,多个数据库之间,表结构,数据库输出的量都是一样的。

1,删除发布和订阅

如果之前配置过了,需要先删除

1、删除单个的发布 : 复制-->  本地发布--> 右击--> 删除,然后再把对应的订阅服务器删除掉

2、删除全部的发布: 复制--> 右击 --> 禁用发布和分发,这个会同时的把分发服务器的配置清掉,需要重新配置的哦

参考:https://www.cnblogs.com/zerocc/p/3200714.html

2,配置分发

准备工作:

【2.1】启动数据库的服务引擎(默认都是开启的)

【2.2】在开始菜单中找到Sql Server Configuration Manger页面配置,手动启动

【2.3】SQLServer要用本机名登录,不能Localhost

【2.4】布置分发

【2.5】快照地址这个文件夹要设置共享,不要方C盘。

【2.6】配置完成后,这个文件夹多了2个文件

3,发布

把某个数据库发布出去,你可以订阅我

把主库发布出去,从库可以订阅

【3.1】

【3.2】出现警告:无法启动快照代理,快照文件夹里面也没有多出来文件。

【3.3】在服务中把这个代理服务打开

【3.4】删除没成功的发布,重新执行3.1的步骤,就全部发布成功了。

【3.4】发布成功后,会多出unc这个文件夹

4,订阅

【4.1】

【4.2】从库中有主库的数据了

【4.3】重复4.1,再新建一个从站,实现一主两从

5,测试

【5.1】主库新增一条数据,2个从库也会自动同步更新。

主库删除数,2个从库也自动删除数据。

修改从库的数据,主库不会自动更新。

结果:主库增删改,从库会自动更新。从库增删改,主库不会自动更新。

问题:读写分离,对于我们写程序而言,增删改需要找主库,查询需要找从库,程序代码就很麻烦啦。

SQL Server 2012主从数据库的订阅和发布,实现数据库读写分离(主从备份)的更多相关文章

  1. SQL Server 2012实施与管理实战指南(笔记)——Ch4数据库连接组件

    4.数据库连接组件 访问数据库有多种不同的技术,包括ADO,ODBC,OLEDB,ADO.NET等这些都有一些共性.首先要建立连接(Connection),然后通过命令(Command)对数据库进行访 ...

  2. Microsoft SQL server 2012数据库学习总结(一)

    一.Microsoft SQL Server2012简介 1.基本概要 Microsoft SQL Server 2012是微软发布的新一代数据平台产品,全面支持云技术与平台,并且能够快速构建相应的解 ...

  3. Azure Backup (1) 将SQL Server 2012虚拟机中数据库备份到Azure Storage

    <Windows Azure Platform 系列文章目录> 本文介绍的是由国内世纪互联运维的China Azure,相比国外的Global Azure.主要区别是存储账号的DNS地址不 ...

  4. SQL Server 2012 复制(发布订阅的研究)

    原文:SQL Server 2012 复制(发布订阅的研究) 已实现发布订阅功能,可以实现局域网内双击备份. 一.注意事项: a) 使用[事务复制]功能 b) 必须是相同的SqlServer 帐号和密 ...

  5. SQL SERVER 2012 修改数据库默认位置不立即生效

    今天修改SQL SERVER 2012的数据库默认位置:即数据文件.日志文件默认位置时遇到一个问题,单击"服务器属性"(Server Properties)--> 数据库设置 ...

  6. SQL Server 2012 数据库笔记

    慕课网 首页 实战 路径 猿问 手记     Python 手记 \ SQL Server 2012 数据库笔记 SQL Server 2012 数据库笔记 2016-10-25 16:29:33 1 ...

  7. 在Vs2012 中使用SQL Server 2012 Express LocalDB打开Sqlserver2012数据库

    http://www.cnblogs.com/huangtailang/p/4221164.html 背景:个人电脑中使用的是VS2012,数据库为2008R2,最近需要打开一个SqlServer20 ...

  8. SQL Server 2012 连接到数据库引擎

    第 1 课:连接到数据库引擎 https://msdn.microsoft.com/zh-cn/library/ms345332(v=sql.110).aspx   本课将介绍主要的工具以及如何连接并 ...

  9. Microsoft SQL Server 2012 数据库安装图解教程

    本文部分引用以下文章: SQL Server 2012 安装图解教程(附sql2012下载地址)_MsSql_脚本之家 http://www.jb51.net/article/36049.htm SQ ...

  10. SQL Server 2012 数据库各个版本功能对比

    作为这篇SQL SERVER 2008数据库各版本功能对比 的姊妹篇,就写点SQL Server 2012 各个版本的区别以及物理以及逻辑上的限制. 个部分来分http://technet.micro ...

随机推荐

  1. Vue15 v-for和key的作用及原理

    部分转自https://blog.csdn.net/cun_king/article/details/120714227 1 v-for指令 1.1 简介 用于遍历. 当在组件中使用 v-for 时, ...

  2. springboot框架返回日期值少一天

    1 问题 一个请求,返回一个对象,对象里面有日期,返回的对象的日期却比实际的日期少了一天 如下图:在return返回的时候查看返回的对象的日期的值 postman返回的结果如下图,几个日期都少了一天 ...

  3. P13_协同工作_小程序权限管理的概念以及成员管理的两个方面

    协同工作和发布 - 协同工作 了解权限管理需求 在中大型的公司里,人员的分工非常仔细:同一个小程序项目,一般会有不同岗位.不同角色的员工同时参与设计与开发. 此时出于管理需要,我们迫切需要对不同岗位. ...

  4. spark数据清洗

    spark数据清洗 1.Scala常用语法 运用maven创建项目,需要导入如下依赖: <dependency> <groupId>org.apache.spark</g ...

  5. ransac拟合

    链接:https://zhuanlan.zhihu.com/p/62238520 RANSAC简介 RANSAC(Random Sample Consensus,随机采样一致)算法是从一组含有&quo ...

  6. openfoam UPstream类探索(二)

    前言 接上次的博文,本篇补全以下几个函数的介绍: Pstream::nProcs() Pstream::parRun() UPstream::exit() 简述几个常用的函数如下: Pstream:: ...

  7. 第一个webpack例子demo1

    1.运行webpack 在当前目录 管理员CMD下运行命令 : webpack PS: 只有安装webpack时才必须在管理员环境下运行,如今使用可以随便 问题1: 运行中会遇报错: 错误分析:HTM ...

  8. PostGIS之几何创建函数

    1. 概述 PostGIS 是PostgreSQL数据库一个空间数据库扩展,它添加了对地理对象的支持,允许在 SQL 中运行空间查询 PostGIS官网:About PostGIS | PostGIS ...

  9. LeetCode-846 一手顺子

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/hand-of-straights 题目描述 Alice 手中有一把牌,她想要重新排列这些牌,分成 ...

  10. asp多模块功能代码,单调用插入的case方法

    function getmodule(arg) select case arg case "pinyin" aaa="123" %><!--#插入页 ...