×

sql server 主从配置

hqy hqy 发表于2024-12-27 09:20:23 浏览8 评论0

抢沙发发表评论

sql server 作为目前主流的数据库,用户遍布世界各地。sql server也有一些比较成熟的主备方案,目前主要有:复制模式(发布-订阅模式)、镜像传输模式、日志传输模式、故障转移集群。后面会一一介绍介绍各自的优缺点。

(一)复制模式

  复制模式也被称为发布-订阅模式,是由主服务器进行发布消息,备份服务器进行订阅,当主服务器数据发生变更时,就会发布消息,备份服务器读取消息进行同步更新,中间过程延迟比较短。

  复制方式是以前很常见的一种主备,速度快,延迟小,可以支持部分同步等优点,但是也有一个很明显的缺点,因为是部分同步,如果是表修改,可以主动同步,但是如果是新增表、视图等操作,必须在发布属性中,将新加的表或者视图添加到同步配置中,否则对这个表做的任何操作都不会同步。

  复制模式同步,要求数据库名称和主机名称必须一致,否则查找不到数据库主机;要求数据库不能使用端口,必须是可以通过ip直接访问的;

  主要分为以下4种发布方式:

  1.快照发布

    快照发布,就是将所有要发布的内容,做成一个镜像文件,然后一次性复制到订阅服务器,两次快照之间的更新不会实时同步。这种方式占用带宽较多,因此比较适用内容不是很大,或者更新不需要很频繁的场景

  2.事务发布/具有可更新订阅的事务发布

    事务发布,是在第一次设置好事务复制之后,所有发布的内容都会进行镜像快照,订阅服务器收到已发布数据的初始快照后,发布服务器将事务流式传输到订阅服务器。当主服务器数据发生变更时,会通过日志传递同步给订阅服务器,数据近似于同步更新。

    此方式会对主服务器性能造成很大影响(实时同步每次变更,而不是最终变更),适用于对数据及时性要求比较严格主备方案,但是目前已被微软提供的集群Always On所取代。

 

  3.合并发布

    合并发布是相当于两台都是主服务器,都可以对数据进行更新修改等操作,然后定时将发布服务器上的内容与订阅服务器上的内容进行合并,并根据配置保留相应内容,此种很少用。

(二)镜像传输模式

  数据库镜像传输,严格来说不是主从架构,而是主备架构,将两台数据库服务器通过一台中间监控服务器关联起来,两台服务器通过镜像文件,实时同步数据(有延迟,延迟很短)。当主服务器宕机之后,监控服务器自动切换到备份服务器上。

  此方案优点是可以快速的切换主备方案,相比较Always on集群,可以不用共享磁盘即可实现,避免了数据库集群存储单点故障,导致整个集群崩溃。

  缺点也很明显,无论是主备服务器,要实现同步操作,都是依赖于性能低的那一端,因此两台服务器都要是高性能的才可以保证同步的及时性;同时备份服务器只是备份和故障转移,不能提供从服务器的只读访问,因此才说是主备服务器,而且是一对一,只能有一台备份服务器。

(三)日志传输模式

  与镜像传输模式类似,是将主数据库日志备份,发送到从服务器上,然后从服务器还原日志,更新数据。

  此方式优点在于从服务器可以有多台从服务器,而且当主服务器脚本操作异常后,只需要在日志同步之前,及时拦截日志传输,即可保留从服务器数据,减少灾难损失;此方式相较于“复制发布”模式,还有一个有点就是无论是新增表、视图等等,都会通过日志同步给从服务器,而复制模式不行

  而相应的缺点就是通过日志备份传输,在还原,会有较大的时间延迟。而且无法自动转移故障,只能手动转移。

(四)故障转移集群

  集群技术是微软提供的,可用性最高的主备方案。它是将多台服务器通过一个共享的外部存储区域(SAN),连接成一个资源共享的服务器群体,数据库文件和实例,都存放并运行在该共享区域节点上,每台服务器相当于一个节点,共同访问共享的节点实例。服务器只有一个节点处于活动状态,当活动节点出现故障,会有其他节点主动启动,取代当前故障点,整个过程只需要几秒钟,用户无法感知。

  集群有很多优点,是目前最高效的高可用技术,但是他也有很明显的缺点,所有的节点,都依赖于共享节点实例,如果共享节点出现故障,将会导致整个集群失去作用,且很难恢复。

 

 

首先配置需要注意些东西:

  1.打开sqlserver配置管理器,启动sqlserver代理,设置属性中,启动模式为自动启动(两台服务器都需要配置),具体如图:

  mportant; max-height: fit-content !important;"/>

  2.在sqlserver中新建查询,输入sql语句 select @@SERVERNAME,查询到本服务器的别名,(因为一台电脑上的sqlserver连接其他电脑的sqlserver在数据库同步的连接时候会报错,已经试过错误了,所以这里提前说明),查询到本sqlserver的别名后,将本机外网ip和别名写入hosts文件中,(C:\Windows\System32\drivers\etc\hosts),两台服务器需要互相在其hosts文件中写入对方的ip和别名。

  

  3.接下来就开始主要部分吧,建立一个数据库DB_test,在数据库中建立一个表tb1,写入几个字段,但是一定要加一个设为主键的字段

  4.点击sqlserver左侧的复制 -> 本地发布,会提示你配置分发服务器,这里在D盘建一个名为ReplData的文件夹,将地址写成这个文件夹的地址即可。

  

  5.本地发布流程:(发布服务器上进行)

  点击复制中的本地发布,右键新建发布,选择你要发布的数据库,此时有4种发布类型可供选择,现在选择事务发布,选择你要同步的数据库的表,点击下一步,点击右侧添加,可以重写筛选的条件,点击下一步,选择立即创建快照并使用快照保持可用状态,以初始化订阅,点击下一步,右侧安全设置,输入相应信息,一直点下一步,直至发布成功。具体如图示:

  

  

  

  

  

  6.本地订阅流程:(订阅服务器上进行)

  

                                      

 

  输入别名,sa和密码连接发布数据库                        这时便可以看到刚发布过的数据库的发布名称“test_8.15”

  选择一个 订阅数据库与发布数据库同步

  

  

  

  

  这时你就可以看到订阅服务器的 你选择的数据库中已经有你发布服务器的那个数据库和表及其表中数据了,到此,同步完成。

  我认为需要注意的问题有:

  本文中的两台机器必定是可以使用sqlserver客户端互联(在sqlserver studio中设置'允许远程链接',同时要设置相应的ip地址,以及在配置管理器中开启tcp/ip协议即可)。

 快照的存储目录要有,要有读写访问权限

 

 

 

https://blog.csdn.net/roy_88/article/details/70332108

 

默认安装路径:C:\Program Files\Microsoft SQL Server

      C:\Program Files(x86)\Microsoft SQL Server


SQL Server强制删除发布

 

可使用语句:
 
EXEC SP_REMOVEDBREPLICATION '发布数据库名称'


打赏

本文链接:https://www.kinber.cn/post/4406.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客