学习: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. Html5 canvas创意特效合集

    Canvas就像一块画布,我们可以通过调用脚本在Canvas上绘制任意形状,甚至是制作动画.本文就是收集了很多非常富有创意的一些canvas动画特效例子,这些例子都非常适合大家学习.更多源码可在在这里 ...

  2. 无法从“System.ReadOnlyMemory<byte>”转换为“byte[]”

    1.问题复现 RabbitMQ的官方示例:RabbitMQ消费端(接收端)获取消息时抛出异常,具体代码如下 var consumer = new EventingBasicConsumer(chann ...

  3. Activiti-25张表对应的关系以及常用接口

    Activiti-25张表对应的关系以及常用接口 Activiti工作流25张表的含义: 其他表 act_evt_log: 流程事件日志记录表 act_procdef_info: 流程定义动态变更信息 ...

  4. day05-mybatis配置文件和SQL映射文件

    Mybatis配置文件&SQL映射文件 1.配置文件-mybatis-config.xml 1.1基本说明 mybatis的核心配置文件(mybatis-config.xml),它的作用如配置 ...

  5. CF884E - Binary Matrix

    题意:对于一个使用十六进制读入的 \(01\) 矩阵,求其中 \(1\) 的连通块个数,空间限制 16MB .\(n\le 2^{12},m\le2^{14}\) 我们认为如何读入是比较基础的内容,不 ...

  6. Linux 一次性创建多个文件

    创建多个文件,文件名数字编号是递增的,在文件名后面加上{n..m}: touch file-{1..10}.txt

  7. 重磅!flink-table-store 将作为独立数据湖项目重新加入 Apache

    数据湖是大数据近年来的网红项目,大家熟知的开源数据湖三剑客 Apache hudi.Apache iceberg .Databricks delta 近年来野蛮生长,目前各自背后也都有商业公司支持,投 ...

  8. CMakeLists.txt模板

    编译动态库的模板 add_library 生成可执行程序换成add_executable 不需要调试信息的去掉 -g 不需要警告信息的去掉 -Wall 这应该是 -W all的组合 cmake_min ...

  9. 免费ASP空间

    free免费asp空间的申请方法: free免费asp空间的ftp使用方法: sise.host3v.vip/1

  10. 问题记录——nginx加载lua 模块,启动报错找不到 libluajit-5.1.so.2

    环境:SUSE 12 SP3 问题说明:根据工作需求,重新编译nginx加载 lua 模块后启动报错如下: 首先是尝试在 /etc/profile 配置文件中添加环境变量并 source /etc/p ...