iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >SQL Server搭建主从同步实现读写分离
  • 856
分享到

SQL Server搭建主从同步实现读写分离

SQLServer搭建主从同步实现读写分离 2016-01-18 05:01:54 856人浏览 才女
摘要

一、概念简介 1.1、基本概念 1)读写分离概念:是把对数据库的读操作和写操作分离开。在一定程度上,读写分离可以缓解读写操作并发时产生锁的问题。 2)读写分离原理:是让主数据库处理事务性增、删、改操作(INSERT、DELETE、UPDA

SQL Server搭建主从同步实现读写分离

一、概念简介

1.1、基本概念

1)读写分离概念:是把对数据库的读操作和写操作分离开。在一定程度上,读写分离可以缓解读写操作并发时产生的问题。

2)读写分离原理:是让主数据库处理事务性增、删、改操作(INSERT、DELETE、UPDATE),而从数据库处理查询操作(SELECT)。

1.2、技术简介

 SQL Server提供了三种技术来实现读写分离,分别是:日志传送、事务复制、Always On。以下是三种技术的比较:

  日志传送 事务复制 Always On
原理

通过sql Server Agent调度作业进行日志

的备份、复制、还原实现同步

由复制代理同步发布数据上的

增删改操作到订阅服务器

主数据库的事务日志记录发送并

运用到每个辅助数据库

版本功能支持

SQL Server 2000 企业版

SQL Server 2005 及以后标准版、企业版

标准版、企业版 SQL Server 2012 企业版
操作系统要求 无限制 无限制

windows 企业版

故障转移群集

限制 要求数据库必须是完整恢复模式 要求表必须有主键 要求数据库必须是完整恢复模式
同步粒度 数据库级 表级 数据库级
数据差异 取决于备份、复制、还原的作业设置 几秒 几秒
副本数量 无限制 无限制 4个
副本读取 间歇性,在还原时会中断查询。 正常 正常
自动故障转移 不支持 不支持 支持

事务复制没有Always On的要求那么高,只需要主从服务器能通过tcp进行通讯即可,主从服务器操作系统和SQL Server版本可以不完全一致(生产环境建议一致),同时,主从服务器也不需要加入域。

注:本文主从同步实现方式采用事务复制方式。

二、实战准备

2.1、网络环境

1)主从服务器需在同一个局域网内,而且要互相ping得通,可以是不同网段。

2)以下是本文的测试环境:

  计算机名 IP地址 操作系统 数据库
主服务器 IT01 192.168.2.174 Windows 10 SQL Server 2016
从服务器 HW01 192.168.2.242 Windows Server 2012 SQL Server 2016

2.2、数据库主机名

1)SQL Server数据库实例主机名需与本地服务器名称一致:

--本地服务器名称
SELECT @@SERVERNAME
--数据库实例主机名
SELECT SERVERPROPERTY("ServerName")

2)若出现SQL Server数据库实例主机名与本地服务器名称不一致的情况,可通过以下语句来更改:

IF (SERVERPROPERTY("SERVERNAME")<>@@SERVERNAME)
BEGIN
    DECLARE @SERVER SYSNAME
    SET @SERVER=@@SERVERNAME
    EXEC SP_DROPSERVER @SERVER=@SERVER
    SET @SERVER=CAST(SERVERPROPERTY("SERVERNAME") AS SYSNAME)
    EXEC SP_ADDSERVER @SERVER=@SERVER,@LOCAL="LOCAL"
END

更改完成后请重启SQL Server服务:

2.3、同步账号

主从服务器都需要建立一个账号及密码都相同的本地管理员用户如sync:

2.4、SQL Server 代理

主从服务器都需要启动SQL Server代理,另外登录账号都设为同步账号如sync:

2.5、同步说明

1)以数据库AdventureWorks为例。

2)在AdventureWorks上执行以下SQL语句,否则后续会出现【进程无法在“IT01”上执行“sp_replcmds”】报错。 

sys.sp_changedbowner "sa"

3)主从搭建,实际是分发->分布->订阅的过程。本文分发与发布使用的是同一台服务器IT01。

2.6、同步规则

1)新增的表一定要有主键,否则不能进行同步。

2)从库上一定不能有任何的数据修改,这个原则一定要遵守。

三、实战操作

3.1、分发配置

1)在IT01主服务器上,对着SQL Server的"复制"右键->点击"配置分发"。

2)点击"下一步"。

3)默认选择,点击"下一步"。

4)快照文件夹应使用网络路径,因此要先设置文件夹共享。

5)打开"D:Program FilesMicrosoft SQL ServerMSSQL13.MSSQLSERVERMSSQL"->对着"repldata"文件夹"右键"->点击"属性"。

6)选择"共享"页签->点击"共享"。

7)添加"Everyone"用户。

8)授予"Everyone"用户"读取/写入"权限->点击"共享"。

9)共享成功后,在快照文件夹中输入网络路径"\IT01ReplData",点击"下一步"。

10)默认选择,点击"下一步"。

11)默认选择,点击"下一步"。

12)默认选择,点击"下一步"。

13)点击"完成"。

14)完成后,点击"关闭"即可。

3.2、发布配置

1)在IT01主服务器上,点击SQL Server的"复制"->对着"本地发布"右键->点击"新建发布"。

2)点击"下一步"。

3)选择要发布的数据库如"AdventureWorks"->点击"下一步"。

4)选择"事务发布"->点击"下一步"。

5)选择要发布的对象如"表"(也可以选择某个具体表)->点击"下一步"。 

6)默认选择,点击"下一步"。

7)勾选"立即创建快照并使快照保持可用状态,以初始化订阅"->点击"下一步"。

8)点击"安全设置"。

9)由于本测试环境为非域环境,因此只能选择"在 SQL Server 代理服务账号下运行"。同时,录入SQL Server登录名及密码,点击"确定"。

10)点击"下一步"。

11)默认选择,点击"下一步"。

12)起个发布名称,点击"完成"。

13)执行成功后,点击"关闭"即可。

14)对着发布名称"右键"->点击"属性"。

15)点击"快照"->取消勾选"将文件放入默认文件夹",勾选"将文件放入下列文件夹",并录入网络地址"\IT01ReplData"->点击"确定"。

3.3、订阅配置

1)在HW01从服务器上打开运行->输入"\IT01"。

2)确保能正常访问主服务上的共享文件夹"repldata"。

3)对着数据库"右键"->选择"新建数据库"。

4)输入数据库名如"AdventureWorks"->点击"确定"。

5)打开"复制",对着本地订阅"右键"->点击"新建订阅"。

6)默认选择,点击"下一步"。

7)在下拉框中选择"查找 SQL Server 发布服务器..."。

8)输入主服务器名称及身份验证,同时勾选"记住密码",最后点击"连接"。

9)默认选择,点击"下一步"。

10)选择"在其订阅服务器上运行每个代理(请求订阅)"->点击"下一步"。

11)选择订阅数据库"AdventureWorks"->点击"下一步"。

12)点击"..." 。

13)选择"在 SQL Server 代理服务账户下运行"->输入连接到分发服务器的登录账号及密码->点击"确定"。

14)点击"下一步"。

15)选择"连续运行"->点击"下一步"。

16)初始化时间选择"立即"->点击"下一步"。

17)默认选择,点击"下一步"。

18)点击完成。

19)创建成功后,点击"关闭"。

20)对着订阅名称"右键"->点击"属性"。

 22)在快照项中,快照位置选择"备份文件夹"->快照文件夹输入"\IT01epldata"->点击"确定"。

四、异常检查

1)对着发布名称"右键"->点击"启动复制监视器"。

2)记录行"右键",可以"停止代理"再"启动代理",这样就可以发现执行过程中的报错。也可以点击"查看详细信息",查看执行的过程日志等。

五、新增项目内容

1)假如有新的表或其它新的项目内容需要同步,可以对着发布名称"右键"->点击"属性"。

2)选择"项目"->勾选新增的表等项目内容->点击"确定"。

3)对着发布名称"右键"->点击"查看快照代理状态"。

4)点击"启动"。

六、删除发布服务器上的主从复制

1)先删除发布服务器上的订阅和发布。

2)执行以下命令,删除distribution分发数据库。

USE master
Go
EXEC sp_dropdistributiondb @database=N"distribution"
GO
EXEC sp_dropdistributor @no_checks=1,@ignore_distributor=1
GO

 

您可能感兴趣的文档:

--结束END--

本文标题: SQL Server搭建主从同步实现读写分离

本文链接: https://www.lsjlt.com/news/8846.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Django搭建MySQL主从实现读写分离
    目录一、MySQL主从搭建操作步骤二、Django实现读写分离自动指定一、MySQL主从搭建 主从配置原理: 主库写日志到 BinLog 从库开个 IO 线程读取...
    99+
    2024-04-02
  • MYSQL主从和ATLAS读写分离的搭建
    本篇内容介绍了“MYSQL主从和ATLAS读写分离的搭建”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、...
    99+
    2024-04-02
  • MySQL主从同步和读写分离如何配置
    这篇文章主要为大家展示了“MySQL主从同步和读写分离如何配置”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL主从同步和读写分离如何配置”这篇文章吧。 ...
    99+
    2024-04-02
  • mysql主从配置实现一主一从读写分离
    主从介绍Mysql主从又叫Replication、AB复制。简单讲就是A与B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,实现数据实时同步 mysql主从是基于binlog,主上需开启binlo...
    99+
    2024-04-02
  • MySQL数据库的主从同步配置与读写分离
    使用mysql主从复制的好处有: 1、采用主从服务器这种架构,稳定性得以提升。如果主服务器发生故障,我们可以使用从服务器来提供服务。 2、在主从服务器上分开处理用户的请求,可以提升数据处理效率。 3、将主服...
    99+
    2024-04-02
  • MySQL 搭建主从同步实现操作
    目录一、MySQL 8.0 主从同步二、MySQL主从搭建2.1 Master 上的操作2.2 Slave 上的操作一、MySQL 8.0 主从同步 主从同步的流程(原理): mas...
    99+
    2024-04-02
  • Mycat中间件实现Mysql主从读写分离
    环境规划: IP地址 主机名 角色 备注 10.4.132.50 k8s01 mycat,master 10.4.132.42 k8s02 slave ...
    99+
    2024-04-02
  • Redis读写分离搭建的完整步骤
    目录1、概述2、读写分离的搭建2.1 场景说明2.2 修改从服务器A和从服务B的Redis配置2.3 删除从服务器A和从服务器B的数据文件2.4 重启从服务器A和从服务器B2.5 查...
    99+
    2024-04-02
  • MyCat怎么实现MySQL一主两从读写分离
    这篇文章主要介绍“MyCat怎么实现MySQL一主两从读写分离”,在日常操作中,相信很多人在MyCat怎么实现MySQL一主两从读写分离问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2024-04-02
  • MyCat如何实现MySQL双主一从读写分离
    这篇文章给大家分享的是有关MyCat如何实现MySQL双主一从读写分离的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1)配置server.xml<user nam...
    99+
    2024-04-02
  • MySQL中怎么实现主从复制及读写分离
    MySQL中怎么实现主从复制及读写分离?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、相关概述主从复制:主数据库(Master)发送更新事件到从数据库(Slave),从数...
    99+
    2023-06-14
  • Linux如何使用 MyCat 实现 MySQL 主从读写分离
    目录Linux-使用 MyCat 实现 MySQL 主从读写分离 一、MySQL 读写分离1、MySQL 读写分离的概述2、读写分离工作原理3、为什么要读写分离3、实现读写分离的方式...
    99+
    2024-04-02
  • MySQL中如何实现主从复制与读写分离
    MySQL中如何实现主从复制与读写分离,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1,mysql的配置CentOS 5.x,6.0编译安装N...
    99+
    2024-04-02
  • SpringBoot环境-MySQL主从复制,读写分离的实现
    目录 概述 环境 主从复制 读写分离 概述  记录在MySQL数据库中主从复制以及SpringBoot环境操作MySQL数据库读写分离的实现步骤。  背景 :因为我们在对数据库进行操作时,如果读写操作都由一台数据库承担的话压...
    99+
    2023-09-06
    mysql 数据库 java linux
  • MySQL如何搭建主从同步实现操作
    小编给大家分享一下MySQL如何搭建主从同步实现操作,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、MySQL 8.0 主从同步主从同步的流程(原理):mast...
    99+
    2023-06-29
  • 怎么在Mysql中实现主从复制与读写分离
    这期内容当中小编将会给大家带来有关怎么在Mysql中实现主从复制与读写分离,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。文章思维导图为什么使用主从复制、读写分离主从复制、读写分离一般是一起使用的。目的很简...
    99+
    2023-06-14
  • springboot结合mysql主从来实现读写分离的方法
    这篇文章主要介绍springboot结合mysql主从来实现读写分离的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.实现的功能    基于springboot框架,applica...
    99+
    2023-06-14
  • 虚拟机搭建负载均衡,mysql主从复制和读写分离(一、搭建虚拟机)
            由于内容比较长,因此分成了多个部分         虚拟机搭建负载均衡,mysql主从复制和读写分离(一、搭建虚拟机)         虚拟机搭建负载均衡,mysql主从复制和读写分离(二、克隆虚拟机)         虚拟...
    99+
    2023-09-03
    运维 php mysql 负载均衡 linux
  • MySQL主从复制搭建流程分步实现
    目录主从复制主从搭建配置主从复制的命令测试总结主从复制 主从也叫做(AB复制),允许一个服务器从一个服务器数据库(主服务器)的数据复制到一个或者多个mysql数据库服务器。 主从复制的优点有很多,包括横向扩展解决方案,数...
    99+
    2024-04-02
  • 实现↝Mysql数据库主从复制搭建与同步
    实现↝Mysql数据库主从复制搭建与同步 🔻 一、mysql 同步复制有关概述⛳ 前言、何为主从复制⛳ 1.1 mysql支持的复制方式⛳ 1.2 mysql支持的复制类型1....
    99+
    2023-09-17
    数据库 mysql msyql主从复制 linux 运维 服务器 centos
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作