sql server 本地复制订阅 实现数据库服务器 读写分离

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
日志服务 SLS,月写入数据量 50GB 1个月
简介: 原文:sql server 本地复制订阅 实现数据库服务器 读写分离再前段echosong 写了一遍关于mysql 数据同步实现业务读写分离的文章,今天咱们来看下SQL Server的复制订阅实现数据的读写分离 比起mysql的复制,SQL server 复制相对强大 一、 名词解释 1、复制的 机构组成(类比报纸流通):   1)、发布服务器(报社出版)       生产维护数据源,审阅所有出版数据的更改 发送给 分发服务器(邮局)   2)、分发服务器 (邮局)       分发服务器包括分发数据库,并且存储元数据、历史数据和事务。
原文: sql server 本地复制订阅 实现数据库服务器 读写分离

再前段echosong 写了一遍关于mysql 数据同步实现业务读写分离的文章,今天咱们来看下SQL Server的复制订阅实现数据的读写分离

比起mysql的复制,SQL server 复制相对强大

一、 名词解释

1、复制的 机构组成(类比报纸流通):

  1)、发布服务器(报社出版)

      生产维护数据源,审阅所有出版数据的更改 发送给 分发服务器(邮局)

  2)、分发服务器 (邮局)

      分发服务器包括分发数据库,并且存储元数据、历史数据和事务。

  3)、订阅服务器(订报人,读者)

      保持数据的副本,并接收对所修改出版的更改。取决于所实现的复制选项,可能还允许更新者更新数据,并将其复制回服务器或者其它订阅者。

2、复制类型

    1)快照复制

      快照复制是完全按照数据和数据库对象出现时的状态来复制和分发它们的过程。快照复制不需要连续地监控数据变化,因为已发布数据的变化不被增量地传播到订阅服务器,而是周期性的被一次复制。  适用于 数据主要是静态的,比如将数据仓库复制到数据集市中一段时间内允许有已过时的数据拷贝的情况

  2)事务复制

      使用事务复制,初始快照数据将被传播到订阅服务器,因此该订阅服务器就具有了一个所谓的初始负载,这是可以开始工作的内容。当出版服务器上发生数据修改时,这些单独的事务会被及时捕获并复制到订阅服务器。并保留事务边界,当所有的改变都被传播后,所有订阅服务器将具有与传播服务器相同的值         需要数据修改经常在其发生的几秒钟内被传播到订阅服务器需要事务是原子性的         订阅服务器在通常是连接到出版服务器上的         应用程序不能忍受订阅服务器接收改变的高延迟

  3)合并复制

          合并复制允许一组站点自治工作,在线或离线。然后在将来的某个时刻,数据按照在多个已复制站点上发生的修改或插入情况被合并成一个统一的结果。在订阅服务器上应用初始快照,作为其初始负载,然后SQL Server跟踪在出版服务器上和订阅服务器上已发布数据的更改。数据按照预先定义或调度的时间,或者按需在服务器间同步。然后更新被独立应用在多个服务器上。这意味着相同的数据可能由出版服务器或多个订阅服务器进行了更新,因而当数据更新合并时将发生冲突。  多个订阅服务器需要在不同时刻更新数据,并将这些数据传播到出版服务器和其他订阅服务器。  订阅服务器需要接收数据,脱机更改数据,然后将更改同步到出版服务器和其他订阅服务器  应用程序的延迟需求可高可低  站点的自治性很关键

3、复制模式

  1)、推模式(Push)  

    分发代理程序在分发服务器上运行,即为推模式   

  2)、拉模式(Pull)   

       分发代理在订阅服务器运行,即为拉模式

二、工作流程

1、快照复制

    

  1)、发布服务器,将要发布的数据库整个做一个快照,

  2)、订阅服务器的快照代理程序把发布服务器的快照读取过来,放在本地的快照文件夹内

  3)、订阅服务器的发布代理程序把快照文件夹中的快照发布到订阅服务器上。历史记录和快照记录在分发服务器中。

   

2、事务复制

  1)、初始数据和架构(通过快照复制来完成),从这里可以体现出来快照复制,是所有复制的基础 。快照复制在订阅服务器上建立了订阅数据库。

  2)、发布服务器的数据修改后,写事务日志,

  3)、分发服务器的日志读取代理读取发生改变的数据的事务日志,把这些事务日志保存在发布服务器的发布数据库中。

  4)、分发服务器的分发代理程序 将分发数据库中的事务日志分发到各个订阅服务器上,然后把历史记录和错误记录在分发数据库中

三、具体操作流程

 1、发布复制(推送模式)

  1)、展开SQL Server 2008 服务器下的 【复制】 节点,会发现有【本地发布】和【本地订阅】两个节点,右击【本地发布】节点,选择【新建发布】

    

  2)、设置分发服务器和发布服务器为同一台(推送模式)

           

  3)、选择数据元位置

       

  4、选择同步的数据库对象

        

     5、发布复制类型

      

    6、设置同步计划

  

   7、设置代理安全性

          

    8、发布完成取名字

             

 2、订阅复制

  1)、右键点击【本地订阅】节点,打开,【新建订阅向导】对话框

    

 2)搜索发布服务器去订阅

      

  3)、由于上面发布的和分发的是同一台服务器所以选择推送订阅

    

  

    4)、选择订阅接受的对象(也就是获取数据的数据库,上面发布了 test 库 pce_admin_info,这里用本机的test1来接受,同步时如果没有表会自动在test1库创建表)

     

    5)、设置连接安全性

             

         6)后面一直默认点下一步,完成订阅

            

 

   3、查看效果  

         同步上面步骤,把 A服务器的 test 库 的 pce_admin_info 表同步到 B服务器的 test1 ,在第一次执行订阅后自动创建了表,之后会根据计划设置同步的更新表pce_admin_info

        

        

      

  

四、注意事项

1、无论是发布复制还是订阅服务 一定要在sql server安装的服务器本机操作,不能是远程连接操作

2、将这个文件夹共享出来,然户用共享文件夹的UNC路径作为快照文件夹路径。这个文件夹要赋予SQL Server Service和Agent Service读写权限。

3、sql server 另外一种镜像实现数据副本,镜像是只能主服务器读写,从服务器是不支持读写的,而复制是可以从服务器读 主服务器写。所以我们实现读写分离往往是通过数据库的复制来实现。

4、UNC 可以做的网络驱动映射或者FTP连接

5、再发布服务器设置订阅的时候 系统会提示使用计算机名,而在不同的网络内计算机名不可以直接访问,这个时候需要设置别名,别名要注意64 client 和32client都要加

五、补充

 同步复制的时候订阅服务器会生成相应的表的删除,修改,添加的存储过来来执行数据

-->

左边的存储过程由右边的调用存储过程控制,选项可以选择其他的就不会生成存储过程

当我们业务需要 需要对存储过程进行修改,我们修改存储过程后,如果改变了源数据的结构,这个时候存储过程又会初始化,如果我们想让存储过程保持不变可以做以下修改

上面右图的true 改为false 就 ok

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
16天前
|
SQL 数据库
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
SQL Server附加数据库出现错误823,附加数据库失败。数据库没有备份,无法通过备份恢复数据库。 SQL Server数据库出现823错误的可能原因有:数据库物理页面损坏、数据库物理页面校验值损坏导致无法识别该页面、断电或者文件系统问题导致页面丢失。
82 12
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
|
3天前
|
SQL 存储 移动开发
HTML5 Web SQL 数据库详解
Web SQL 数据库是 HTML5 中的一种本地存储技术,允许在浏览器中使用 SQL 语言操作本地数据,支持离线访问和事务处理,适用于缓存数据和小型应用。然而,其存储容量有限且仅部分现代浏览器支持,标准已不再积极维护,未来可能被 IndexedDB 和 localStorage 等技术取代。使用时需谨慎考虑兼容性和发展前景。
|
7天前
|
存储 数据挖掘 数据库
服务器数据恢复—raid磁盘故障导致数据库数据损坏的数据恢复案例
存储中有一组由3块SAS硬盘组建的raid。上层win server操作系统层面划分了3个分区,数据库存放在D分区,备份存放在E分区。 RAID中一块硬盘的指示灯亮红色,D分区无法识别;E分区可识别,但是拷贝文件报错。管理员重启服务器,导致离线的硬盘上线开始同步数据,同步还没有完成就直接强制关机了,之后就没有动过服务器。
|
8天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
58 5
|
11天前
|
SQL 关系型数据库 MySQL
创建包含MySQL和SQLServer数据库所有字段类型的表的方法
创建一个既包含MySQL又包含SQL Server所有字段类型的表是一个复杂的任务,需要仔细地比较和转换数据类型。通过上述方法,可以在两个数据库系统之间建立起相互兼容的数据结构,为数据迁移和同步提供便利。这一过程不仅要考虑数据类型的直接对应,还要注意特定数据类型在不同系统中的表现差异,确保数据的一致性和完整性。
22 4
|
25天前
|
SQL 存储 数据管理
SQL Server数据库
SQL Server数据库
41 11
|
20天前
|
SQL 监控 关系型数据库
MySQL数据库中如何检查一条SQL语句是否被回滚
检查MySQL中的SQL语句是否被回滚需要综合使用日志分析、事务状态监控和事务控制语句。理解和应用这些工具和命令,可以有效地管理和验证数据库事务的执行情况,确保数据的一致性和系统的稳定性。此外,熟悉事务的ACID属性和正确设置事务隔离级别对于预防数据问题和解决事务冲突同样重要。
30 2
|
22天前
|
SQL 安全 Oracle
SQL Server 链接服务器(Linked Servers)
【9月更文挑战第12天】SQL Server 的链接服务器功能强大,可让你在一个实例中访问其他数据源,包括其他 SQL Server 实例、Oracle 数据库等。它支持数据集成、分布式查询和数据同步,无需复制数据。创建链接服务器需在 SQL Server Management Studio 中进行,并配置名称、类型及安全性。使用时需注意权限、性能和安全性问题,确保系统稳定和数据安全。
|
23天前
|
存储 负载均衡 数据库
探索后端技术:从服务器架构到数据库优化的实践之旅
在当今数字化时代,后端技术作为支撑网站和应用运行的核心,扮演着至关重要的角色。本文将带领读者深入后端技术的两大关键领域——服务器架构和数据库优化,通过实践案例揭示其背后的原理与技巧。无论是对于初学者还是经验丰富的开发者,这篇文章都将提供宝贵的见解和实用的知识,帮助读者在后端开发的道路上更进一步。
|
1月前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
61 0
下一篇
无影云桌面