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.pswp.cn/news/533837.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533837.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533837.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux非標準頭文件,Linux學習:unix的標準化的實現(Linux中各種限制-數據類型-各種標準化頭文件介紹)...

作為Linux的前身,unix標準化是十分重要的。我在這里挑幾個重要的點說明。1:Linux中各種限制。Linux中限制有編譯時限制和運行時限制,另外有一些限制是由于我們的實現不同而不同,因此我們需要調用對應的函數獲取對應的值不同。(eg&…

python怎么導入大小字母_python遍歷小寫英文字母的方法

python遍歷小寫英文字母的方法在c、c等語言中,可以用字符1的for循環來遍歷小寫的26個英文字母,但是由于python語言的特殊性,通過a 1這種代碼并不能成功遍歷,以下是在python中遍歷英文字母的簡潔代碼:import stringfor…

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編譯器的技巧,精心挑選的內容希望大家…

oracle 結果集已耗盡_java.sql.SQLException: 結果集已耗盡

編寫了jsp誰能幫忙看下有什么問題編寫了jsp 誰能幫忙看下 有什么問題技術交流ResultSet rsnull;String str"select publish_id,publish_name,publish_time,publish_text from comment_tb order by publish_time desc ";query.connect();rsquery.select(str);while(rs…

vs使用未初始化的內存怎么解決_遇到C語言內存錯誤怎么辦?一定要找準這六個原因...

一、沒有為指針分配內存定義了指針變量,但是沒有為指針分配內存,即指針沒有指向一塊合法的內存。淺顯的例子就不舉了,這里舉幾個比較隱蔽的例子。1、結構體成員指針未初始化struct student { char *name; int score; }stu,*pstu; int main() …

linux服務器如何設置雙網卡,linux服務器設置(雙網卡共享上網)

一、網絡拓補結構:服務器:兩網卡的設置:eth0:202.96.168.100 掩碼:255.255.255.0 網關:202.96.168.68 #與 Inte.Net 相聯eth1:192.168.1.1掩碼:255.255.255.0#與局域網相聯客戶機子網段:192.1…

pwn環境搭建_pwndbg、pwntools環境搭建(Unix系統)

目錄[TOC]pwndbg環境搭建項目地址https://github.com/pwndbg/pwndbg搭建過程1、安裝環境基礎gitpythonpython-pip2、安裝過程使用git命令克隆遠程項目到本地。git clone https://github.com/pwndbg/pwndbg進入項目根目錄并執行一鍵安裝腳本cd pwndbg && ./setup.sh該腳…

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下數…

panic 蘋果aop_Go Web開發之Revel - 攔截器

一個攔截器是一個框架在調用action方法前或后調用的函數. 它允許一種AOP的形式, 它經常被用于做下面幾種事情:Request loggingError handlingStats keeping在Revel里, 一個攔截器能接受兩種形式:1. 函數攔截器: 一個函數滿足沒有訪問特定的應用程序Controller被調用在應用程序中…

make找不到linux內核函數,linux內核make menuconfig出錯

今天實驗剛從服務器上遷移過來的維護的linux 9260的內核,使用make menuconfig時出錯,報錯為:yongtaoyongtao-desktop:~/public/linux_release/linux-2.6.24$ make menuconfigHOSTCC scripts/kconfig/conf.oHOSTCC scripts/kconfig/kxgettex…

tensorboard ckpt pb 模型的輸出節點_算法工程化系列——模型固化

摘要基于tensorflow訓練的模型一般被保存為ckpt形式的文件,隨著當前深度學習模型網絡越來越大,對應模型也會非常大。當對外提供服務的時候,如果采用ckpt的形式,服務進程被調起來非常困難,且推理服務一般速度也較慢(會達…

深度linux內核升級,深度操作系統 2020.11.11 更新發布:內核升級

原標題:深度操作系統 2020.11.11 更新發布:內核升級IT之家11月11日消息 今日,深度操作系統宣布2020.11.11 更新現已發布。本次更新包括升級內核、Debian 10.6 倉庫以及系統安全性更新。系統安全方面,本次更新修復了 Firefox-ESR 安…

unity 使用mysql實現登錄注冊_用mysql實現登錄注冊功能

1、創建用戶表表結構如下idunameupwdisdelete注意:需要對密碼進行加密。如果使用md5加密,則密碼包含32個字符。如果使用sha1加密,則密碼包含40個字符,這里使用這種方式。md5加密方式:import hashlibpwd 123456my_md5 …

python爬電影_使用Python多線程爬蟲爬取電影天堂資源

最近花些時間學習了一下Python,并寫了一個多線程的爬蟲程序來獲取電影天堂上資源的迅雷下載地址,代碼已經上傳到GitHub上了,需要的同學可以自行下載。剛開始學習python希望可以獲得寶貴的意見。 先來簡單介紹一下,網絡爬蟲的基本實…

打不開磁盤配額linux,九度OJ 1455 珍惜現在,感恩生活 -- 動態規劃(背包問題)...

題目描述:為了挽救災區同胞的生命,心系災區同胞的你準備自己采購一些糧食支援災區,現在假設你一共有資金n元,而市場有m種大米,每種大米都是袋裝產品,其價格不等,并且只能整袋購買。請問&#xf…

erp 維護費 要交嗎_ERP系統維護費

今年8月,SAP中國公司宣布2009年1月1日前將由傳統支持服務轉向企業級支持服務(SAP Enterprise Support)。同時將開始實施漸進式定價方案,并預計在2012年之前,逐漸將所有客戶從現行的SAP Standard/Premium Support的定價協議過渡為SAP Enterpri…

sentinel 端口_Sentinel原理:控制臺是如何獲取到實時數據的

Sentinel 系列教程,現已上傳到 github 和 gitee 中:GitHub:https://github.com/all4you/sentinel-tutorialGitee:https://gitee.com/all_4_you/sentinel-tutorialSentinel 能夠被大家所認可,除了他自身的輕量級&#x…

linux桌面時區設置,如何在Ubuntu 20.04上設置或更改時區

對于許多與系統相關的任務和進程,使用正確的時區至關重要。 例如,cron守護程序使用系統的時區執行cron作業,而日志文件中的時間戳基于系統的同一時區。在Ubuntu上,系統的時區是在安裝過程中設置的,但以后可以輕松更改。…