sqlserver date类型和字符串比较_基于SQL Server数据库搭建主从复制实现读写分离实战演练...

6caf802d15e3c4d8576a69a948ed8466.png

一、课程介绍

读写分离(主从同步)从字面意思就可以理解,就是把对数据库的读操作和写操作分离开。读写分离在网站发展初期可以一定程度上缓解读写并发时产生锁的问题,将读写压力分担到多台服务器上。读写分离的基本原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。随着系统的业务量不断增长数据多了之后,对数据库的读、写就会很多。分库减少单台数据库的压力。本文以MS SQL Server数据库为例主库负责写数据、读数据。读库仅负责读数据。写库就一个,读库可以有多个。

在上一节分享课程中《.NET Core基于SQL Server数据库实现读写分离实战演练》我们已经学会了如何在.NET Core代码层面如何通过数据库中间件来操作我们的读写分离的数据库。本节课程接着上一节课程中遗留的问题,废话不多说直接进入本次课程的主题。

.1、本次分享课程适合人群如下
1)、有一定的.NET Core开发基础。
2)、有一定的SQL SERVER基础知识。
3)、学习和了解.Net Core跨平台开发技术。
如果您同样对本次分享《基于SQL Server数据库搭建主从复制实现读写分离实战演练》课程感兴趣的话,那么请跟着阿笨一起学习吧。一句话总结今天我们学习达到的目标?如何基于SQL Sever数据库搭建主从同步实现读写分离。
废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。

94afc1d742fae1045b2fea299ea66673.png

二、Microsoft SQL Server常见的几种实现读写分离方案

2.1、SQL Server提供了三种技术实现读写分离

SQL Server提供了三种技术,可以用于读写分离的实现:日志传送、事务复制和SQL Server 2012以上版本中新增的功能Always On技术。这三种技术的比较如下:

fd7bba74364a802ebc90ee3af0ad5ac0.png

.NET高级进阶之基于SQL Server搭建主从复制实现读写分离实战演练

配置复制就没有数据库镜像和AlwaysOn的要求那么高,只需要两台服务器能通过TCP进行通讯即可,两台服务器操作系统和SQL版本都可以不完全一致,而且两台服务器也不需要加入域,所以配置复制订阅就简单多了,但是复制订阅主要是针对数据表而不能像镜像和AlwaysOn那样配置整个数据库,这也是它的缺点吧。

综上:考虑到简单性和实用性,这里阿笨推荐采用事务复制技术来实现SQL SERVER读写分离。

三、Microsoft SQL Server 2014主从复制环境搭建实战演练

1)、同台服务器不同数据库实现主从复制

在《.NET Core基于SQL Server数据库实现读写分离实战演练》分享课程中已经演示过。

2)、不同服务器不同数据库实现主从复制(由于篇幅较长,单独课程进行分享)

afc2fb76ad5bc81cff921d1c70462ca9.png

.NET高级进阶之基于SQL Server搭建主从复制实现读写分离实战演练

   读写分离就是主从集群,一主多从或者一主一丛都是可以的,就是数据库主机复制写入操作,从机负责读的操作,主机写入以后再同步给从机;

四、思考与总结

4.1、总结:怎么开发中我们的程序使用数据库主从?

一个是主连接字符串,另外是一个或者多个从的字符配置,我们要实现读写分离就是去实现读取的时候用从库的连接字符串,写入的时候用主库的连接字符串,说到这里我想大家应该很明确自己的思路明确一点,那就是我们读的时候用从库,写的时候用主库。

1)、根据切换数据库连接字符串R/W来实现手动的读写分离。缺点:不灵活,扩展低,不具备高可用,稳定性差,侵入式太强,只适合小项目临时应急使用。
2)、第三方数据库中间件比如阿里巴巴的MyCat、 360开发的atlas  等等。缺点:重量级,入门门槛难度大,学习成本高。
3)、.NET Core开源数据库访问组件。优点:灵活,真真实现读写分离。 

4.2、思考:如何保证数据库主从复制的高可用呢?

0a3b5504c468f581d7102b41594ee8a3.png

基于SQL Server搭建主从复制实现读写分离实战演练

虚拟IP(VIP)。缺点:需要运维人员支持(基于VIP的keepalived高可用集群架构)!

1)、怎么实现故障检测的那?

心跳,采用定时发送一个数据包,如果机器多长时间没响应,就认为是发生故障,自动切换到热备的机器上去。

2)、怎么实现自动切换那?

虚IP。何为虚IP那,就是一个未分配给真实主机的IP,也就是说对外提供数据库服务器的主机除了有一个真实IP外还有一个虚IP,使用这两个IP中的 任意一个都可以连接到这台主机,所有项目中数据库链接一项配置的都是这个虚IP,当服务器发生故障无法对外提供服务时,动态将这个虚IP切换到备用主机。

.NET Core支持数据库读写分离的组件比较多,比如:FreeSql ,SmartSql,SqlSugar(在《.NET Core基于SQL Server数据库实现读写分离实战演练》中已经分享)等等。

最后送大家一句话:希望大家在.NET Core的学习道路上一直跟着阿笨坚持下去。

9d95341f1a11fd44459100a6cbe7dcda.png

腾讯课堂

1e7e8c7c6662451cd0e0f11563510737.png

网易云课堂

b42a17ffacbb01bfc9d539060b3ea115.png

不信的话,扫一扫

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533837.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux非标准头文件,Linux学习:unix的标准化的实现(Linux中各种限制-数据类型-各种标准化头文件介绍)...

作为Linux的前身,unix标准化是十分重要的。我在这里挑几个重要的点说明。1:Linux中各种限制。Linux中限制有编译时限制和运行时限制,另外有一些限制是由于我们的实现不同而不同,因此我们需要调用对应的函数获取对应的值不同。(eg&…

51单片机怎么显示当前时间_(进阶篇)51单片机之按键控制蜂鸣器、数码管、按键值移位显示...

一、实操演示- 按键控制蜂鸣器1、图文详细独立按键硬件电路蜂鸣器硬件电路2、连接方式:J20的第3号引脚连接到J7引脚,即P15连接J7。J29的第7、8号引脚连接到JP1的第1、2号引脚,即P31连接k1,P30连接k2。下载程序后,观察现…

linux怎么运行g77,Linux安装g77编译器的技巧

在Ubuntu10.10系统中,g77已经被gfortran完全替代了,但并不能完全兼容过去的g77,这样就不能使用一些用977编译的程序了。所以我们只能自己再安装g77了。今天华军小编给大家展示的是Linux安装g77编译器的技巧,精心挑选的内容希望大家…

vs使用未初始化的内存怎么解决_遇到C语言内存错误怎么办?一定要找准这六个原因...

一、没有为指针分配内存定义了指针变量,但是没有为指针分配内存,即指针没有指向一块合法的内存。浅显的例子就不举了,这里举几个比较隐蔽的例子。1、结构体成员指针未初始化struct student { char *name; int score; }stu,*pstu; int main() …

cad求和插件_黑科技 | 无BIM建模下平面CAD自动生成门窗表

如果你接到的施工图既不是用天正出的,也不是用revit出的,还得统计门窗表,那么你需要读完这篇文章。为了能够让自己和所有底层同行们从这项无脑又烧脑的机械劳动中解脱,C君近期利用茶余饭后的时间开发了一个小插件,可以…

linux数据库实例开机启动,linux下数据库实例开机自启动设置

linux下数据库实例开机自启动设置 1、修改/oratab [rootorg54 ~]# vi/etc/oratab --把N改为Y,如下提示 # This file is used by ORACLEutilities. It is created by root.sh # and updated by the Database ConfigurationAssistant when creating # a datablinux下数…

tensorboard ckpt pb 模型的输出节点_算法工程化系列——模型固化

摘要基于tensorflow训练的模型一般被保存为ckpt形式的文件,随着当前深度学习模型网络越来越大,对应模型也会非常大。当对外提供服务的时候,如果采用ckpt的形式,服务进程被调起来非常困难,且推理服务一般速度也较慢(会达…

深度linux内核升级,深度操作系统 2020.11.11 更新发布:内核升级

原标题:深度操作系统 2020.11.11 更新发布:内核升级IT之家11月11日消息 今日,深度操作系统宣布2020.11.11 更新现已发布。本次更新包括升级内核、Debian 10.6 仓库以及系统安全性更新。系统安全方面,本次更新修复了 Firefox-ESR 安…

python爬电影_使用Python多线程爬虫爬取电影天堂资源

最近花些时间学习了一下Python,并写了一个多线程的爬虫程序来获取电影天堂上资源的迅雷下载地址,代码已经上传到GitHub上了,需要的同学可以自行下载。刚开始学习python希望可以获得宝贵的意见。 先来简单介绍一下,网络爬虫的基本实…

sentinel 端口_Sentinel原理:控制台是如何获取到实时数据的

Sentinel 系列教程,现已上传到 github 和 gitee 中:GitHub:https://github.com/all4you/sentinel-tutorialGitee:https://gitee.com/all_4_you/sentinel-tutorialSentinel 能够被大家所认可,除了他自身的轻量级&#x…

python 最小二乘回归 高斯核_「机器学习」一文读懂线性回归、岭回归和Lasso回归...

点击上方蓝色字体,关注AI小白入门哟作者 | 文杰编辑 | yuquanle本文介绍线性回归模型,从梯度下降和最小二乘的角度来求解线性回归问题,以概率的方式解释了线性回归为什么采用平方损失,然后介绍了线性回归中常用的两种范数来解决过…

优先队列默认是小顶堆吗_一分钟带你读懂什么是堆?

堆其实就是一种特殊的队列——优先队列。 普通的队列游戏规则很简单:就是先进先出;但这种优先队列搞特殊,不是按照进队列的时间顺序,而是按照每个元素的优先级来比拼,优先级高的在堆顶。 这也很容易理解吧,…

python 注释一段话_Python快速入门(一)

引言Python作为一个,目前最火的编程语言之一,已经渗透到了各行各业。它易学好懂,拥有着丰富的库,功能齐全。人生苦短,就用Python。这个快速入门系列分为六篇,包含了Python大部分基础知识,每篇阅…

linux ibus获取窗体位置,Ubuntu 12.04 显示ibus 的输入框

在虚拟机中安装了Ubuntu 12.04,系统是英文版本的,我能接受,但是苦于没有中文输入法。起先,我是安装SCIM,结果我折腾了半天,发现其只能在lib-office下使用。firefox,文字编辑器中都不能调出SCIM。无奈将其卸…

python批量下载文件教程_Python抓包菜鸟教程:批量下载图片的方法,电脑和手机都能用...

笔者看上了一组图集,然后准备一张一张下载时,瞄了一眼,这组图集还有100,好吧,我酸了。 笔者就是试试工具,你们别像我这样用,这么好的工具,做自媒体,那绝对了那如何批量下…

esxi挂载Linux的nfs盘,ESXi安装centos7挂载群晖NFS

前段时间折腾了ESXi,然后无尽的折腾接踵而来,今天要说的是如何安装centos7并挂载群晖虚拟机的NFS共享文件夹直接步入正题!先是下载centos7镜像,因为我是用来当服务器的,所以只需要minimal版即可【centos下载链接】自己…

传统的6d位姿估计fangfa1_李飞飞团队最新论文:基于anchor关键点的类别级物体6D位姿跟踪...

点击上方“3D视觉工坊”,选择“星标”干货第一时间送达简介作者提出了一种基于RGB-D的深度学习方法6PACK,能够实时的跟踪已知类别物体。通过学习用少量的3D关键点来简洁地表示一个物体,基于这些关键点,通过关键点匹配来估计物体在…

安卓system镜像分区_玩机爱好者想要的PT分区到底是什么?可以使现有的安卓系统更快!...

小编第一次看见PT分区这个词。就比较好奇他到底是什么神仙技术。今天,小编给大家科普一下,可能小编理解的也不是特别准确,请各位谅解!! 欢迎关注小编。各位玩机爱好者总是沉浸在各种ROM包、第三发Rec,以及各…

python求和1到100_python等差数列求和公式前 100 项的和实例

python等差数列求和公式前 100 项的和实例 最近跑去学了下python,一个很简单的题,结果发现数学公示忘了,在不用for循环的情况下居然有些懵,记录为下.. 题:等差数列可以定义为每一项与它的前一项的差等于一个常数,可以用…

jupyter kernel_新乡联通案例分享:Jupyter开发环境配置的常用技巧

Jupyter开发环境配置的常用技巧新乡联通网管中心 邢少华Python开发环境中,大部分人使用的是Jupyter,在Jupyter中有几个令人困扰的问题:1. Jupyter的默认打开目录如何修改2. Jupyter默认使用的浏览器如何修改3. 好用的Jupyter插件如何安装4.…