暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SQL Server 2017 Always ON在Linux操作系统下的安装和配置

原创 bingo 2023-02-22
554

一、在Linux系统下安装SQL Server 2017

从SQL Server 2017开始支持在Linux操作系统上面安装,下面将Linux操作系统安装过程进行介绍。

SQL Server 2017支持的版本介绍

https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-release-notes?view=sql-server-2017

1、检查操作系统是否支持。

[root@LinuxNode1 ~]# cat /etc/redhat-release

2、下载SQL Server Red Hat yum源配置文件。(如果是普通用户需要用sudo命令来执

行)

yum源的配置文件包含关于集合以及SQL Server将使用的依赖项的信息。

[root@LinuxNode1 ~]# curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo

[root@LinuxNode1 ~]# ll /etc/yum.repos.d/

[root@LinuxNode1 ~]# cat /etc/yum.repos.d/mssql-server.repo ---可以查看下载的yum源信息

3、安装SQL Server,执行yum安装后会从网上下载安装文件进行安装。

[root@LinuxNode1 ~]# yum install -y mssql-server

下载完成后,会自行安装好。

4、配置SQL Server

安装完成后会提示执行“sudo /opt/mssql/bin/mssql-conf setup”来配置SQL Server,根据执行的提示会配置sa密码。

[root@LinuxNode1 ~]# sudo /opt/mssql/bin/mssql-conf setup

输入对应的数据选择相应的版本,这里选择6,然后回车。

询问是否接受许可协议,选择“YES”回车。然后要求输入sa的密码,输入sa密码再次确认输入密码,回车。sa密码一定要超过八个字符不然设置不成功。

配置以后,会进行自行配置好。

注意:数据库服务器需要达到2G内存,否则配置是会报下面的错误。

5、启动SQL Server服务。

检查SQL Server服务是否启动,如果未启动手动进行启动。

[root@LinuxNode1 ~]# systemctl status mssql-server --检查状态

[root@LinuxNode1 ~]# systemctl start mssql-server --启动服务

[root@LinuxNode1 ~]# systemctl restart mssql-server --重启服务

6、启动SQL Server代理服务。

从SQL Server 2017 CU4开始,SQL Server代理使附带MSSQL Server打包并默认处于禁用状态,所以有需要的的话需要手动启动。手动启动的时候,提示需要重启数据库服务。

[root@LinuxNode1 bin]# /opt/mssql/bin/mssql-conf set sqlagent.enabled true

7、允许数据库端口通过防火墙。

[root@LinuxNode1 ~]# firewall-cmd --zone=public --add-port=1433/tcp --permanent

success

重新加载防护墙,允许刚加载的策略生效。

[root@LinuxNode1 ~]# firewall-cmd --reload

这样在Linux系统上面安装数据库就完成了,我们可以从Windows的操作系统通过SSMS进行连接数据库了。


二、启用SQL Server Always On特性和安装Linux资源代理

注:需要在每个数据库服务器上执行。

1、启用SQL Server Always On功能,启用以后会提示要求重启数据库服务。

注意:从SQL Server 2017开始可以在没有群集资源管理器(Windows Server Failover Clustering or Pacemaker)启用、创建和配置SQL Server Always On。

[root@LinuxNode1 ~]# /opt/mssql/bin/mssql-conf set hadr.hadrenabled 1

[root@LinuxNode1 ~]# systemctl restart mssql-server

2、安装Linux集群资源代理,集群资源代理使用于管理群集的。

[root@LinuxNode1 ~]# yum install mssql-server-ha -y

[root@LinuxNode1 ~]# yum info mssql-server-ha --验证安装情况

3、允许Always ON的端点使用的端口可以通过防火墙。

[root@LinuxNode1 ~]# firewall-cmd --zone=public --add-port=5022/tcp --permanent

[root@LinuxNode1 ~]# firewall-cmd --reload

4、创建数据库主密钥。

USE master

GO

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'a@123456';

5、创建证书用于加密Always On端点

USE master

GO

CREATE CERTIFICATE LinuxNode1_cert

WITH SUBJECT = 'LinuxNode1 certificate for Availability Group';

6、创建Always On端点

USE master

GO

CREATE ENDPOINT Endpoint_AG STATE = STARTED AS TCP ( LISTENER_PORT = 5022,

LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE

LinuxNode1_cert, ENCRYPTION = REQUIRED ALGORITHM AES, ROLE = ALL );

7、备份证书,然后将备份的证书复制到其他服务器节点上。

BACKUP CERTIFICATE LinuxNode1_cert TO FILE = '/var/opt/mssql/data/LinuxNode1_cert.bak'

8、授予SQL Server账号执行证书的权限。

[root@LinuxNode2 data]# chown mssql.mssql Linux*




LinuxNode1脚本.sql

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论