采用自动种子的方式搭建sqlserver alwaysOn,和备份恢复模块

本文详细介绍如何采用自动种子方式搭建SQLServer AlwaysOn高可用集群,包括配置思路、流程及测试方法。自动种子简化了次要副本的初始化过程,节省磁盘空间和时间,但需注意网络流量和单线程限制。

什么是自动种子,他的优点和缺点是什么

在 SQL Server 2012 和 2014 中,初始化 SQL Server Always On 可用性组中的次要副本的唯一方法是使用备份、复制和还原。

在一个高可用组里面添加一个数据库需要很多手动任务和一些必要条件。需要完成的这些工作中,有一些是有些困难的,比如:

  • 我们需要从主副本中备份数据库,并将这个备份分发到可用组的其他副本中。这是基于手动操作的,因为这需要你从主数据库备份还原数据库到次要副本。
  • 有时候,我们不能通过网络防火墙在副本之间传送数据库备份文件。这种情况下,需要开放SMB协议端口,以便能在节点间传输备份文件。
  • 通常,复制一个备份文件会占用更多空间,这是额外的需求,更多的磁盘空间。
  • 特别是针对第三方备份的方案,会导致备份/还原链的中断。但是这又取决于数据库的备份策略。
  • 分发和还原数据库是耗时并且不透明的过程。

为了更好的帮助DBA们处理这些问题,微软引入了可用组的自动增长数据库。即SQL Server 2016 引入了用于初始化次要副本的新功能 - 我一般称之为数据库自增长(自动种子设定)

综上所述,使用自动填充的优势有如下几点:

  • 操作过程简单.
  • 节省磁盘空间.
  • 节省备份还原事件,因为SQLServer复制数据库使用网络.
  • 使用追踪标记9567,能够大大减少同步时间。

在可用组中使用自动增长的缺点:

  • 在同步过程中需要巨大的网络流。
  • 处理需要一些手动处理步骤

为什么要使用自动种子

SQL Server 2016 推出了可用性组的自动种子设定。 自动种子设定使用日志流传输,使用 VDI 备份并将备份传输到使用endpoints配置的次要副本的每个数据库【若要加入 Always On 可用性组 或数据库镜像,服务器实例上必须创建自己专用的“数据库镜像端点” (database mirroring endpoint)。 此端点用途特殊,专门用于接收来自其他实例的连接。数据库镜像端点使用TCP协议在参与数据库镜像会话或承载可用性副本的实例之间发送和接收消息。 数据库镜像端点在唯一的 TCP 端口号上进行侦听。但注意客户端与主服务器或主副本的连接不使用数据库镜像端点。】。 创建具有自动种子设定的可用性组时,SQL Server 将自动为该组中每个数据库创建次要副本。 你不再需要手动备份和还原次要副本。
使用自动种子可以简化sqlserver AlwaysOn的搭建过程,而且如果要对数据库做备份恢复的话,自动种子也可以起到自动恢复的作用。
在某些情况下,自动种子设定可能不是初始化次要副本的最优选择。 自动种子设定过程中,SQL Server 通过网络执行备份以进行初始化。 如果数据库非常大或者次要副本是远程副本,此过程会很缓慢。 在备份过程中,无法截断这些数据库的事务日志,因此,如果繁忙的数据库初始化过程耗时冗长,则可能导致事务日志大幅增加。 在将数据库添加到具有自动种子设定的可用性组之前,请先评估数据库大小、负载和副本之间的站点距离。
自动种子设定是单线程进程,最多可处理五个数据库。 单线程可能会影响性能,尤其是在可用性组具有多个数据库的情况下。
但是总体来看,自动种子的使用已经是一种趋势。

配置思路

我们采用的时windows无域配置方式,因此选用了一台linux服务器作为见证节点。可以采用samba的方式配置linux和window之间的通信。
两台window机器的sqlserver互通采用证书认证的方式,自动种子采用window认证的方式。【我这边的环境貌似只有这样可以行得通,一般都采用windows认证方式就可以搭建成功】

配置流程

服务器操作

1- 配置主机域名映射:

Linux - /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 mssql-witness linuxName
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 mssql-witness

Windows- C:\Windows\System32\drivers\etc\

192.168.1.01 node1Name
192.168.1.02 node2Name
192.168.1.03 cluster
192.168.1.04 listener

2- 创建群集

new-itemproperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name LocalAccountTokenFilterPolicy -Value 1
New-Cluster -Name FCCluster -node name1,name2 -AdministrativeAccessPoint Dns -StaticAddress 192.168.1.03 (cluster的ip)

3- 添加共享文件

Set-ClusterQuorum -FileShareWitness \\192.168.1.05(linux IP)\wfsc-cluster -AccountName wfsc-cluster -AccessKey unicloud

以下是关于 SQL Server 的相关操作

1- 在sqlserver服务中勾选可用性组选项,并重启服务。

2-使用sa登录sqlserver,密码在guest_Info.conf中获取

3- start to build

-- Create Master Key
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password!';
-- Change the Certificate Name and Subject to meet your environment
CREATE CERTIFICATE [SQL01Cert] WITH SUBJECT = 'SQL01Cert';
-- Create Login 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值