Windows2012配置SQLServer2014AlwaysOn的图解

SQLserver 2014 AlwaysOn增强了原有的数据库镜像功能,使得先前的单一数据库故障转移变成以组(多个数据)为单位的故障转移。同时可以支持多达9个复制伙伴,可读性辅助副本服务器等多个特性。对于以组为单位的数据库,主要是解决应用对于多个数据库之间存在的依赖性,从而进行整体转移。其次,可以将那些报表或者只读需求转移到只读辅助副本,从而大大减少主副本的负载,使得主副本更加容易扩展,更好地支持生产负载,以及对请求提供更快的响应。本文描述了基于虚拟环境Windows 2012 + SQLserver 2014 AlwaysOn配置过程。

     对DBA而言,不需要域就可以搭建SQL Server AlwaysOn是Windows Server 2016中最令人兴奋的功能了,它不仅可以降低搭建的成本,而且还减少了部署和运维的工作量。

一、配置环境描述

     上篇博客已给大家分享过:要在没有域的环境中搭建AlwaysOn需要两个步骤,

code 基于Vmware workstation 12,4台虚拟机,其中一台域控,3个SQL节点,使用NAT模式,关闭DHCP 此处为简化演示,先安装2个节点的AlwaysOn,即SQLnode1,SQLnode2 机器名称 IP GateWay DNSSQLDC 192.168.171.20 192.168.171.2 127.0.0.1SQLnode1(主) 192.168.171.21 192.168.171.2 192.168.171.20SQLnode2(辅) 192.168.171.22 192.168.171.2 192.168.171.20SQLnode3(辅) 192.168.171.23 192.168.171.2 192.168.171.20AlwaysOnWSFC 192.168.171.18 /code

      1).搭建基于windows server 2016 工作组环境的故障转移集群;

二、配置AlwaysOn前提

      2).搭建AlwaysOn;

code  [安装Windows 2012域控(For SQLServer 2014 AlwaysOn)]()[Windows 2012配置故障转移(For SQLServer 2014 AlwaysOn)]()[安装SQLserver 2014(For AlwaysOn)]()/code

      步骤1已在上篇博客中介绍了,因此本文将分享AlwaysOn的搭建方法:

三、开启AlwaysOn

图片 1

1)使用与账户启动sqlserver(2节点)

 

确保2节点使用了域用户账号启动

 

2)启用AlwaysOn可用性组(2节点)

1.安装SQL Server 2016

打开SQLserver配置管理器,找到SQLserver服务,勾选启用AlwaysOn可用性组

    在所有节点上安装SQL Server 2016。

3)重启SQLserver使AlwaysOn生效(2节点)

2.启用AlwaysOn功能

4)验证AlwaysOn开启(2节点)

    在所有节点上启用AlwaysOn功能,方法:

右单击SQLserver服务器选择属性,可以看到启用HADR为True,即表明AlwaysOn已生效

    打开SQL Server配置管理器,在对应的SQL Server实例属性中,勾选【启用AlwaysOn可用性组】,如下图:

5)在主节点上创建演示库及表

图片 2

code code 此处演示我们基于SQLnode1,作为主副本 CREATE DATABASE AlwaysonDB1; GO CREATE DATABASE AlwaysonDB2; GO USE AlwaysonDB1; GO CREATE TABLE t1 (id INT ,dbname VARCHAR(20)); INSERT INTO t1 VALUES ( 1, 'AlwaysonDB1' ); USE AlwaysonDB2; CREATE TABLE t2 (id INT ,dbname VARCHAR(20)); INSERT INTO t2 VALUES ( 1, 'AlwaysonDB2' ); /code/code

 

6)创建共享文件夹,用于存放备份以及辅助节点读取备份

3.在每个节点上创建alwaysOn的通讯端点(镜像端点)

如下图,创建了共享文件夹

     在windows server 2016之前,配置端点的加密的方式有两种:域用户授权和证书加密,升级到windows server 2016后,如果不使用域搭建AlwaysOn,那么就只能选择证书加密的方式了。

7)为共享文件夹分配合适的权限

     3.1创建一个共享目录,允许AlwaysOn的所有节点均可以读写该目录;

8、备份数据库

           共享目录用来存放端点通讯的证书,在后续的步骤中将会用到。示例为:\WIN-JBRHIAJPMG2file

此步骤可以省略,可以在初始化的时候有SQLserver自行备份及还原backup database AlwaysonDB1 to disk='C:AlwaysonBAKAlwaysonDB1.BAK';backup database AlwaysonDB2 to disk='C:AlwaysonBAKAlwaysonDB2.BAK';

     3.2创建端点

四、配置AlwaysOn可用性组

          为了方便,我把创建证书和安装证书的过程用两个存储来实现。(这个两个存储过程来自网上,不是我写的)

1)使用可用性组向导,如下图

          3.2.1将如下两个存储过程在每个节点的SQL Server实例中执行一遍:

喎"//" target="_blank" vcD4NCjxwPjxjb2RlIGNsYXNzPQ=="hljs scss"2)指定可用性组名称
CREATE PROCEDURE CreateEndpointCert
 @ShareName SYSNAME ,
 @StrongPassword SYSNAME
AS BEGIN

--This must be executed in the context of Master
 IF (DB_NAME() <> 'master')
 BEGIN
  PRINT N'This SP must be executed in master.  USE master and then retry.'
  RETURN (-1)
 END

    DECLARE @DynamicSQL varchar(1000);
    DECLARE @CompName varchar(250);
 DECLARE @HasMasterKey INT;
    SELECT @CompName = CONVERT(SysName, SERVERPROPERTY('MachineName'));

-- Only create a master key if it doesn't already exist

 SELECT @HasMasterKey = is_master_key_encrypted_by_server from sys.databases where name = 'master'
 IF (@HasMasterKey = 0)
 BEGIN
 --Create a MASTER KEY to encrypt the certificate.
  SET @DynamicSQL = CONCAT('CREATE MASTER KEY ENCRYPTION BY PASSWORD = ' ,  QUOTENAME(@StrongPassword, ''''));
  EXEC (@DynamicSQL)
 END

--Create the certificate to authenticate the endpoint
SET @DynamicSQL = CONCAT('CREATE CERTIFICATE ', QUOTENAME(@CompName + '-Certificate'), ' WITH SUBJECT = ', QUOTENAME(@CompName, ''''),',EXPIRY_DATE=',QUOTENAME(20991231 ,'''') )

EXEC (@DynamicSQL);


--Create the database mirroring endpoint authenticated by the certificate.
    SET @DynamicSQL =
        CONCAT('CREATE ENDPOINT Endpoint_Mirroring
            STATE = STARTED
            AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
            FOR DATABASE_MIRRORING (AUTHENTICATION = CERTIFICATE ',QUOTENAME(@CompName + '-Cert'), ' , ENCRYPTION = REQUIRED ALGORITHM AES, ROLE = ALL)');
    EXEC (@DynamicSQL);

   --Back up the certificate to a common network share for import into other nodes in the cluster
    SET @DynamicSQL = CONCAT('BACKUP CERTIFICATE ',QUOTENAME(@CompName + '-Cert'),' To FILE = ', QUOTENAME( @ShareName + 'SQL-' + @CompName + '.cer', ''''));
    EXEC (@DynamicSQL);
END
GO

3)为可用性组选择数据库,即哪些数据库为为当前可用性组

说明:

4)添加辅助节点

         CreateEndpointCert 接受2个参数,分别为共享路径和证书密码,其作用:创建证书,创建基于证书加密通讯的端点,备份证书到共享路径;

5)配置转移模式以及提交模式,可读等

CREATE PROCEDURE InstallEndpointCert
    @CompName SYSNAME,
 @ShareName SYSNAME,
 @StrongPassword SYSNAME
AS BEGIN
    DECLARE @DynamicSQL varchar(1000);
    DECLARE @MyCompName varchar(250);
    SELECT @MyCompName = CONVERT(SysName, SERVERPROPERTY('MachineName'));
   --Don't need to create LOGINs for the local system
    IF (@MyCompName <> @CompName)
    BEGIN
        SET @DynamicSQL = CONCAT('CREATE LOGIN ', QUOTENAME (@CompName + '-Login'), ' WITH PASSWORD= ', QUOTENAME( @StrongPassword, ''''));
        EXEC (@DynamicSQL);

        SET @DynamicSQL = CONCAT('CREATE USER ', QUOTENAME( @CompName + '-User'), ' FOR LOGIN ', QUOTENAME(@CompName + '-Login'));
        EXEC (@DynamicSQL);

        SET @DynamicSQL = CONCAT('CREATE CERTIFICATE ', QUOTENAME(@CompName +'-Cert'), ' AUTHORIZATION ', QUOTENAME(@CompName +'-User'), ' FROM FILE = ', QUOTENAME(@ShareName + 'SQL-' + @CompName + '.cer' , ''''));
        EXEC (@DynamicSQL);

        SET @DynamicSQL = CONCAT('GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO ', QUOTENAME(@CompName +'-Login'));
        EXEC (@DynamicSQL);
 END
END
GO

相关选项项目有描述,可参考。如副本模式等

说明:

6)端点配置,保留缺省即可

       InstallEndpointCert  接受3个参数,分别为主机名、共享路径(必须跟CreateEndpointCert的共享路径相同)和密码。其作用:在SQL Server中为每个节点(除自身外)创建一个对应的登录用户和数据库用户(为了便于管理),然后利用共享路径中证书来授予该数据库用户可以访问对应节点的端点;

此处的端点配置等同于数据库镜像时的端点

 

7)备份首选项

3.2.2 创建端点

主要是用于设定那个副本具有优先备份的权限

        首先依次在每个节点上执行CreateEndpointCert,创建证书,

此处忽略了侦听器的配置,可以在后续进行配置

        然后在每个节点上执行InstallEndpointCert,InstallEndpointCert的第一个参数就是主机名,也就是说,除了自身外,需要将其他所有节点的主机名作为参数都执行一次InstallEndpointCert。

8)选择数据同步方式

 图片 3

本文由美高梅官方网站发布于数据统计,转载请注明出处:Windows2012配置SQLServer2014AlwaysOn的图解

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。