基于SQL SERVER 2016的简易数据库高可用配置方法

1、配置故障转移群集

主机名 IP 说明 win-138 192.168.66.138 服务器138,也就是节点138, win-139 192.168.66.139 服务器139,也就是节点139, mk-AlwaysOn 192.168.66.137 集群IP,虚拟的,自己随便写,同网段就行,后续会用到, mk-SQL 192.168.66.140 监听器IP,也是虚拟的,自己随便写

  • a、在服务器管理器中添加角色功能,默认下一步,添加故障转移群集,直到安装完成(两台计算机都要添加)
  • b、修改两台计算机计算机名并加入DNS后缀 ----在我的电脑中点击属性(也可以使用win+E进入文件夹,在此电脑中右键后点击属性)—>更改设置–>在弹出的窗口点击更改–>弹出的窗口点击其他–>最后点击确定(点击确定之后会重启电脑,点击立即重新启动)
  • c、修改两台计算机的host文件。在文件夹中 C:\Windows\System32\drivers\etc 打开文件hosts,在hosts以笔记本或写字板方式打开,并进行新增和保存(保存不了的,把hosts文件复制到桌面后进行修改,修改完再覆盖C:\Windows\System32\drivers\etc中的hosts)
    192.168.66.137 mk-AlwaysOn 192.168.66.138 win-138.bfbgj.com 192.168.66.139 win-139.bfbgj.com 192.168.66.140 mk-SQL
  • d、关闭两台计算机的防火墙,设置允许应用或功能通过windows防火墙,设置以下几项 wmi、远程服务管理、远程关机、远程计划任务管理、远程卷管理、远程事件监视器、远程事件日志管理、远程桌面
  • e、修改两台机器的dns 改为 集群IP 192.168.66.137
  • f、 新建故障转移集群,在任意一台计算机上 打开 pwoershell 运行 命令:
    New-Cluster -Name mk-AlwaysOn -Node win-138,win-139 -StaticAddress 192.168.66.137 -AdministrativeAccessPoint DNS
    :注意修改成自己的计算机名和ip
  • g、验证故障转移是否可用。 最好测试两台电脑(也可跳过不做这一步)
    如WIN-139关机(在服务器管理器–>工具–>故障转移群集–>右键故障转移群集管理器–>连接到群集(N)–>输入集群的名称,如:mk-alwayson)

2、配置Sql高可用

  • a、sqlserver安装:两台计算机的sql版本和安装选项全部相同

  • b、配置共享文件夹:两台计算机分别在C盘新建一个共享文件夹,如:bfbgj,文件夹的共享权限设置为everyone可读可写。

  • c、启用高可用:打开sql server服务,再点击sql server(ms...)服务,右键属性,Alwayson高可用性,勾选启动alwayson可用性组,点开登录选项,设置电脑的账号名、密码(电脑开机的密码)注意注意:两台电脑的开机密码一定要一样的!!!,点击确定按钮后,先停止sql server(ms...)服务,在启用服务

  • d、给第一个数据库安装证书:

    `USE master;
     GO
     --创建主密钥CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Abc123';
     --创建证书  这里有两个"CERT1",建议每台机器都改成不同的名称以作区分CREATE CERTIFICATE CERT1 WITH SUBJECT = 'CERT1', START_DATE = '2019-08-13',EXPIRY_DATE = '2099-12-30';
     --把刚才创建的证书备份到文件 这里也有两个CERT1要改BACKUP CERTIFICATE CERT1 TO FILE = 'C:\bfbgj\CERT1.cer';
     --创建终结点,设为证书验证 这里第二行有1个CERT1要改CREATE ENDPOINT [group0_endpoint] AUTHORIZATION [sa] STATE=STARTED AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)  FOR DATA_MIRRORING (ROLE = ALL,AUTHENTICATION = CERTIFICATE CERT1, ENCRYPTION = REQUIRED ALGORITHM AES) GO`
    
  • e、给第二个数据库安装证书:

      `USE master; 
      GO
      --创建主密钥
      CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Abc123'; 
      --创建证书  这里有两个"CERT1",建议每台机器都改成不同的名称以作区分
      CREATE CERTIFICATE CERT2 WITH SUBJECT = 'CERT2', START_DATE = '2017-01-01',EXPIRY_DATE = '2099-12-30';
      --把刚才创建的证书备份到文件 这里也有两个CERT1要改
      BACKUP CERTIFICATE CERT2 TO FILE = 'C:\bfbgj\CERT2.cer';
      --创建终结点,设为证书验证 这里第二行有1个CERT1要改
      CREATE ENDPOINT [group0_endpoint] AUTHORIZATION [sa] STATE=STARTED AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL) 
       FOR DATA_MIRRORING (ROLE = ALL,AUTHENTICATION = CERTIFICATE CERT2, ENCRYPTION = REQUIRED ALGORITHM AES) 
      GO`
    
  • f、载入证书:首先分别复制生成的证书文件粘贴到对方的共享文件夹中,然后使用下面的语句载入彼此的证书(也可以叫安装证书)
    节点1:WIN-138
    --载入其它节点证书
    --不用载入自己的证书!
    --不用载入自己的证书!
    --不用载入自己的证书!
    --CREATE CERTIFICATE CERT1 FROM FILE = 'C:\bfbgj\CERT1.cer';
    CREATE CERTIFICATE CERT2 FROM FILE = 'C:\bfbgj\CERT2.cer';
    GO

     节点2:WIN-139
         --载入其它节点证书
        --不用载入自己的证书!
        --不用载入自己的证书!
        --不用载入自己的证书!
        CREATE CERTIFICATE CERT1 FROM FILE = 'C:\bfbgj\CERT1.cer'; 
        --CREATE CERTIFICATE CERT2 FROM FILE = 'C:\bfbgj\CERT2.cer'; 
        GO 
  • g、新建高可用组:在数据库界面打开AlwaysOn高可用性,右键点击可用性组,点击新建高可用性组向导,填写可用组名称,选择满足先决条件的数据库,添加副本(提示链接另一个数据库),全部勾选,全部选是,备份首选项选择任意副本,选择同步首先项,指定所有副本的共享文件夹。下一步直到完成。

注意事项:停止ALwayson 打开主sql server 管理器,sqlserver服务 ,右键打开sqlserver实例属性 ,停用 AlwaysOn 并应用,
然后重启sqlserver 服务

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容