在Linux上使用mssql-conf工具配置SQL Server 2017

mssql-conf是在Linux上安装SQL Server 2017后的一个配置脚本。你可以使用这个实用工具设置以下参数:


Agent


启用SQL Server代理


Collation


设置一个新的排序规则


Customer feedback


选择是否发送反馈给微软


Database Mail Profile


设置默认数据库邮件配置


Default data directory


修改新的数据文件的默认路径


Default log directory


修改新的日志文件的默认路径


Default master database file directory


修改master数据库的默认路径


Default master database file name


修改master数据库文件的名字


Default dump directory


修改新的内存DUMP和其他排错文件的默认路径


Defalut error log directory


修改新的SQL Server错误日志文件、默认跟踪、系统健康会话扩展事件和Hekaton会话扩展事件文件


Default backup directory


修改新的备份文件的默认路径


Dump type


选择内存DUMP文件收集的DUMP类型


High availability


启用可用性组


Local Audit directory


配置一个添加本地审核文件的目录


Locale


配置SQL Server使用的地区(配置语言环境)


Memory limit


配置SQL Server内存限制


TCP port


修改SQL Server连接监听的端口


TLS


配置TLS(Transport Level Security)


Traceflags


设置服务使用的跟踪标识

使用贴士:

  • 对于AlwaysOn可用性组和共享磁盘集群,总是对每个节点做相同的配置修改。
  • 对于共享磁盘集群,不要尝试通过重启mssql-server服务应用修改。SQL Server作为一个应用运行。相应的,将资源离线然后上线。
  • 你可以指定完整路径运行mssql-conf:/opt/mssql/bin/mssql-conf。如果你导航到该路径,可以在当前路径上下文下运行mssql-conf:./mssql-conf。

启用SQL Server代理

sqlagent.enabled设置启用SQL Server代理。默认,SQL Server代理是禁用的。如果sqlagent.enabled没有出现在mssql.conf配置文件中,那么SQL Server内部认为SQL Server代理是禁用的。

按如下步骤修改配置:

1. 启用SQL Server代理:

sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true

2. 重启SQL Server服务:

sudo systemctl restart mssql-server

修改SQL Server排序规则

使用set-collation选项修改排序规则为任何支持的排序规则。

1. 首先备份实例上任何用户数据库。

2. 使用sp_detach_db分离用户数据库。

3. 运行set-collation选项并遵从提示:

sudo /opt/mssql/bin/mssql-conf set-collation

4. Mssql-conf使用工具将尝试修改为指定的排序规则,并重启服务。如果有任何错误,它将回滚排序规则到之前的值。

5. 恢复用户数据库备份。

对于支持的排序规则列表,运行sys.fn_helpcollations函数:

SELECT Name from sys.fn_helpcollations()

配置客户反馈

telemetry.customerfeedback设置修改是否SQL Server发送反馈给微软。默认,对于所有版本该值设置为true。运行如下命令,修改该值:

重要:你不能关闭免费版本的客户反馈,Express和Developer。

1. 对于telemetry.customerfeedback选项,以root用户通过set命令运行脚本mssql-conf。以下示例通过设置false来关闭客户反馈。

sudo /opt/mssql/bin/mssql-conf set telemetry.customerfeedback false

2. 重启SQL Server服务:

sudo systemctl restart mssql-server

修改默认数据和日志目录位置

filelocation.defaultdatadir和filelocation.defaultlogdir设置修改新的数据和日志文件创建的位置。默认,这个位置是/var/opt/mssql/data。使用如下步骤,修改该配置:

1. 对于新的数据和日志文件创建目标目录。以下示例创建一个新的/tmp/data目录:

sudo mkdir /tmp/data

2. 修改该目录的所有者和组为mssql:

sudo chown mssql /tmp/data
sudo chgrp mssql /tmp/data

3. 使用mssql-conf脚本执行set命令修改默认数据目录:

sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /tmp/data

4. 重启SQL Server服务:

sudo systemctl restart mssql-server

5. 现在对于新创建的数据库的数据文件将存储在新的位置。如果你想修改新数据库的日志文件位置,你可以使用以下set命令:

sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /tmp/log

6. 该命令也假设/tmp/log目录存在,并且隶属于mssql用户和组。

修改默认master数据库文件目录位置

filelocation.masterdatafile和filelocation.masterlogfile设置修改SQL Server引擎查找master数据库文件的位置。默认,这个位置是/var/opt/mssql/data。

通过如下步骤来修改这些设置:

1. 对于新的错误日志文件创建目标目录。以下示例创建一个新的/tmp/masterdatabasedir目录:

sudo mkdir /tmp/masterdatabasedir

2. 修改目录的所有者和组为mssql:

sudo chown mssql /tmp/masterdatabasedir
sudo chgrp mssql /tmp/masterdatabasedir

3. 对于master数据和日志文件,使用mssql-conf脚本的set命令修改默认master数据库目录:

sudo /opt/mssql/bin/mssql-conf set filelocation.masterdatafile /tmp/masterdatabasedir/master.mdf
sudo /opt/mssql/bin/mssql-conf set filelocation.masterlogfile /tmp/masterdatabasedir/mastlog.ldf

4. 停止SQL Server服务:

sudo systemctl stop mssql-server

5. 移动master.mdf和masterlog.ldf:

sudo mv /var/opt/mssql/data/master.mdf /tmp/masterdatabasedir/master.mdf
sudo mv /var/opt/mssql/data/mastlog.ldf /tmp/masterdatabasedir/mastlog.ldf

6. 启动SQL Server服务:

sudo systemctl start mssql-server

注意:

如果SQL Server在指定目录不能找到master.mdf和mastlog.ldf,在指定目录下系统数据库将会自动创建一个模板的拷贝,并且SQL Server会成功启动。然而,元数据像用户数据库,服务器登录,服务器证书,加密秘钥,SQL代理作业,或者旧的SA登录密码在新的master数据库将不会被更新。你不得不停止SQL Server并移动旧的master.mdf和mastlog.ldf到新的指定位置,并使用存在的元数据继续启动SQL Server。

修改master数据库文件的名字

Filelocation.masterdatafile和filelocation.masterlogfile设置修改SQL Server引擎查找master数据库文件的位置。默认位置是/var/opt/mssql/data。使用如下步骤修改这些设置:

1. 停止SQL Server服务:

sudo systemctl stop mssql-server

2. 使用mssql-conf脚本的set命令修改指定的master数据库的数据和日志文件的名字:

sudo /opt/mssql/bin/mssql-conf set filelocation.masterdatafile /var/opt/mssql/data/masternew.mdf

sudo /opt/mssql/bin/mssql-conf set filelocation.mastlogfile /var/opt/mssql/data /mastlognew.ldf

3. 修改master数据库数据和日志文件的名字:

sudo mv /var/opt/mssql/data/master.mdf /var/opt/mssql/data/masternew.mdf
sudo mv /var/opt/mssql/data/mastlog.ldf /var/opt/mssql/data/mastlognew.ldf

4. 启动SQL Server服务:

sudo systemctl start mssql-server

修改默认的DUMP目录位置

filelocation.defalutdumpdir设置修改当遇到故障时内存和SQL DUMP生成的默认位置。默认,这些文件生成在/var/log/mssql/log目录。

使用如下命令来配置新的位置:

1. 创建新的DUMP文件的目标目录。以下示例创建一个新的/tmp/dump目录:

sudo mkdir /tmp/dump

2. 修改该目录的所有者和组为mssql:

sudo chown mssql /tmp/dump
sudo chgrp mssql /tmp/dump

3. 使用mssql-conf脚本的set命令修改默认数据目录:

sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdumpdir /tmp/dump

4. 重启SQL Server服务:

sudo systemctl restart mssql-server

修改默认错误日志目录位置

filelocation.errorlogfile设置修改新的错误日志、默认Profiler跟踪、系统健康会话扩展事件和Hekaton会话扩展事件文件创建的位置。默认位置是/var/opt/mssql/log。SQL错误日志设置的目录成为其他日志的默认目录。

修改这些设置:

1. 对新的错误日志文件创建目标目录。以下示例创建一个新的/tmp/logs目录:

sudo mkdir /tmp/logs

2. 修改目录的所有者和组为mssql:

sudo chown mssql /tmp/logs

sudo chgrp mssql /tmp/logs

3. 使用mssql-conf脚本的set命令修改默认错误日志文件名:

sudo /opt/mssql/bin/mssql-conf set filelocation.errorlogfile /tmp/logs/errorlog

4. 重启SQL Server服务:

sudo systemctl restart mssql-server

修改默认备份目录位置

filelocation.defultbackupdir设置修改备份文件生成的位置。默认,这些文件产生于/var/opt/mssql/data。

使用如下命令来配置这个新位置:

1. 对于新的备份文件创建目标目录。以下示例创建一个新的/tmp/backup目录:

sudo mkdir /tmp/backup

2. 修改目录的所有者和组为mssql:

sudo chown mssql /tmp/backup
sudo chgrp mssql /tmp/backup

3. 使用mssql-conf脚本的set命令修改默认备份目录:

sudo /opt/mssql/bin/mssql-conf set filelocation.defaultbackupdir /tmp/backup

4. 重启SQL Server服务:

sudo systemctl restart mssql-server

指定核心DUMP设置

如果一个SQL Server进程发生意外,SQL Server创建一个内存DUMP。

有两个选项用于控制SQL Server收集的内存DUMP的类型:coredump.coredumptype和coredump.captureminiandfull。这些关系到核心DUMP捕获的两个阶段。

第一个阶段捕获通过coredump.coredumptype设置来控制,决定了在发生意外时DUMP文件产生的类型。当coredump.captureminiandfull设置时第二个阶段启用。如果coredump.captureminiandfull设置为true,被coredump.coredumptype指定的DUMP文件生成,并生成了一个微型DUMP。设置coredump.captureminiandfull为false禁止第二个捕获尝试。

1. 使用coredump.captureminiandfull设置决定是否捕获微型和完整DUMP。

sudo /opt/mssql/bin/mssql-conf set coredump.captureminiandfull <true or false>

默认值为false

2. 使用coredump.coredumptype设置指定DUMP文件的类型。

sudo /opt/mssql/bin/mssql-conf set coredump.coredumptype <dump_type>

默认值为miniplus

以下列表是可能的coredump.coredumptype的值:


类型


描述


mini


Mini是最小的DUMP文件类型。它使用Linux系统信息决定进程里的线程和模块。DUMP只包含主机环境线程栈和模块。它不包含间接内存参照或全局变量。


miniplus


Miniplus类似于mini,但是它包含其他内存。它理解SQLPAL和主机环境的内幕,添加内存区域到DUMP:

--各种全局变量

--64TB以上内存

--在/proc/$pid/maps发现的所有命名区域

--从线程到栈的间接内存

--线程信息

--相关的Teb’s和Peb’s

--模块信息

--VMM和VAD数


filtered


Filtered使用基于减法的设计进程中的所有内存位置都包含,除非专门排除。该设计理解SQLPAL的内幕和主机环境,从DUMP排除特定区域。


full


Full是一个位于/proc/$pid/maps的完整进程DUMP包含所有区域。它不受coredump.captureminiandfull设置的控制。

设置默认数据库邮件配置

Sqlpagent.databasemailprofile允许你对于邮件告警设置默认数据库邮件配置。

sudo /opt/mssq/bin/mssql-conf set sqlagent.databasemailprofile <profile_name>

高可用性

hadr.hadrenabled选项在SQL Server实例上启用可用性组。以下命令通过设置hadr.hardenabled为1启用可用性组。你必须重启SQL Server使配置生效。

sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled 1
sudo systemctl restart mssql-server

设置本地审核目录

telemetry.userrequestedlocalauditdirectory设置启用本地审核,让你本地审核日志创建的目录。

1. 对于新的本地审核日志创建目标目录。以下示例创建一个/tmp/audit目录:

sudo mkdir /tmp/audit

2. 修改所有者和组为mssql:

sudo chown mssql /tmp/audit
sudo chgrp mssql /tmp/audit

3. 对于telemetry.userrequestedlocalauditdirectory,以root运行mssql-conf脚本的set命令:

sudo /opt/mssql/bin/mssql-conf set telemetry.userrequestedlocalauditdirectory /tmp/audit

4. 重启SQL Server服务:

sudo systemctl restart mssql-server

修改SQL Server本地化

Language.lcid设置修改SQL Server本地化为任何支持的语言标识(LCID)。

1. 以下示例修改本地化为法语(1036):

sudo /opt/mssql/bin/mssql-conf set language.lcid 1036

2. 重启SQL Server服务来应用修改:

sudo systemctl restart mssql-server

设置内存限制

Memory.memorylimitmb设置控制SQL Server可用物理内存数量。默认是物理内存的80%。

1. 对memory.memorylimitmb以root运行mssql-conf脚本的set命令。以下示例修改可用内存为3.25GB(3328MB)。

sudo /opt/mssql/bin/mssql-conf set memory.memorylimitmb 3328

2. 重启SQL Server服务来应用修改:

sudo systemctl restart mssql-server

修改TCP端口

Network.tcpport设置修改SQL Server连接监听的TCP端口。默认,该端口设置为1433。运行如下命令修改这个端口:

1. 对于network.tcpport运行mssql-conf脚本的set命令:

sudo /opt/mssql/bin/mssql-conf set network.tcpport <new_tcp_port>

2. 重启SQL Server服务:

sudo systemctl restart mssql-server

3. 当现在连接到SQL Server,你必需用英文输入法下的逗号分隔在主机名或IP地址后来指定客户端口。例如,使用SQLCMD连接,你需要使用如下命令:

sqlcmd -S localhost,<new_tcp_port> -U test -P test

指定TLS设置

以下选项为运行在Linux上的SQL Server实例配置TLS。


选项


描述


Network.forceencryption


如果为1,SQL Server强制加密所有连接。默认,该选项为0.


Network.tlscert


SQL Server用于TLS的证书的完整路径。例如:/etc/ssl/certs/mssql.pem。证书必需通过mssql帐户访问。微软推荐使用chown mssql:mssql <file>; chmod 400 <file>限制访问文件。


Network.tlskey


SQL Server用于TLS的私钥文件的完整路径。例如:/etc/ssl/private/mssql.key。证书必需通过mssql帐户访问。微软推荐使用chown mssql:mssql <file>; chmod 400 <file>限制访问文件。


Network.tlsprotocols


SQL Server运行使用的以逗号分隔的TLS协议列表。SQL Server总是尝试协商最强允许的协议。如果客户端不支持任何允许的协议,SQL Server拒绝连接尝试。为了兼容性,默认允许所有支持的协议(1.2,1.1,1.0)。如果客户端支持TLS 1.2,微软推荐只允许TLS 1.2。


Network.tlsciphers


指定对于TLS,SQL Server允许的密码。该字符串必需以OpenSSL的密码列表格式格式化。通常,你不需要修改该选项。

默认,允许以下密码:

ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA


Network.kerberoskeytabfile


Kerberos keytab文件路径

启用/禁用跟踪标志

Traceflag选项对于SQL Server服务启动启用和禁用跟踪标志。使用如下命令启用/禁用跟踪标志:

1. 使用如下命令启用启用跟踪标志。例如,对于跟踪标志1234:

sudo /opt/mssql/bin/mssql-conf traceflag 1234 on

2. 你可以通过分别制定它们来启用多个跟踪标志:

sudo /opt/mssql/bin/mssql-conf traceflag 2345 3456 on

3. 以类似的方式,你可以通过制定它们并添加off参数来禁用一个或多个启用的跟踪标志:

sudo /opt/mssql/bin/mssql-conf traceflag 1234 2345 3456 off

4. 重启SQL Server服务来应用修改:

sudo systemctl restart mssql-server

移除一个设置

为了移除使用mssql-conf set的设置,使用unset选项和设置名称调用mssql-conf。它清理设置,有效的设为默认值。

1. 以下示例清理network.tcpport选项。

sudo /opt/mssql/bin/mssql-conf unset network.tcpport

2. 重启SQL Server服务。

sudo systemctl restart mssql-server

查看当前设置

为了查看任何配置设置,运行如下脚本输出mssql.conf文件的内容:

sudo cat /var/opt/mssql/mssql.conf

注意,任何使用默认值的设置不会显示在这个文件。

Mssql.conf格式

以下/var/opt/mssql/mssql.conf文件提供了对每个设置的一个示例。你可以使用这个格式手工按需修改mssql.conf文件。如果手工修改这个文件,你必需重启SQL Server服务来应用。为了在Docker使用mssql.conf文件,你必需有Docker持久化你的数据。首先添加一个完整的mssql.conf文件到你的主机目录并运行这个容器。

[EULA]
accepteula = Y
[coredump]
captureminiandfull = true
coredumptype = full
[filelocation]
defaultbackupdir = /var/opt/mssql/data/
defaultdatadir = /var/opt/mssql/data/
defaultdumpdir = /var/opt/mssql/data/
defaultlogdir = /var/opt/mssql/data/
[hadr]
hadrenabled = 0
[language]
lcid = 1033
[memory]
memorylimitmb = 4096
[network]
forceencryption = 0
ipaddress = 10.192.0.0
kerberoskeytabfile = /var/opt/mssql/secrets/mssql.keytab
tcpport = 1401
tlscert = /etc/ssl/certs/mssql.pem
tlsciphers = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
tlskey = /etc/ssl/private/mssql.key
tlsprotocols = 1.2,1.1,1.0
[sqlagent]
databasemailprofile = default
errorlogfile = /var/opt/mssql/log/sqlagentlog.log
errorlogginglevel = 7
[telemetry]
customerfeedback = true
userrequestedlocalauditdirectory = /tmp/audit
[traceflag]
traceflag0 = 1204
traceflag1 = 2345
traceflag = 3456

原文地址:http://blog.51cto.com/ultrasql/2152021

时间: 2024-11-06 03:33:58

在Linux上使用mssql-conf工具配置SQL Server 2017的相关文章

6.1 使用工具配置 SQL Server 产品

6.1  使用工具配置 SQL Server 产品 6.1.1 配置工具简介 为了配置SQL Server 产品的服务端和客户端,SQL Server 配置管理器(简称SSCM)是最合适的工具. SSCM 最早是从 SQL Server 2005 引入的,它不仅可以管理与SQL Server相关联的服务,还可以配置客户端的属性. 如果安装了多个实例,SQL Server 安装程序可能会在一台计算机安装多个版本的SSCM.每个版本的 SSCM 可以向下兼容.例如,SQL Server 2014 的

第6章 使用工具配置 SQL Server 产品

第6章  使用工具配置 SQL Server 产品 6.1  使用SQL Server 配置管理器 6.2  配置服务 6.2.1  服务列表 6.2.2  管理服务状态 6.2.3  配置登录与服务 6.2.4  配置启动参数 6.2.5  配置高级选项 6.3  配置网络协议的安全性 6.3.1  配置标志选项 6.3.2  配置证书选项 6.3.3  配置高级选项 6.4  配置网络协议 6.4.1  配置Shared Memory协议 6.4.2  配置Named Pipes协议 6.4

在Oracle Linux 7上通过官方Repo在线安装SQL Server 2017

挂载数据盘 #vgdispaly的Total PE 安装SQL Server服务端 1.下载SQL Server Red Hat Repository配置文件: curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo 2.安装SQL Server实例 yum install -y mssql-server 3.运行mssql-con

在Linux上使用环境变量配置SQL Server设置

你可以使用不同的环境变量在Linux上配置SQL Server 2017.这些变量用于两个场景: 使用mssql-conf setup命令配置初始化设置. 配置一个新的Docker容器中的SQL Server. 环境变量 环境变量 描述 ACCEPT_EULA 在设置为任何值(例如"Y")时接受 SQL Server 许可协议. MSSQL_SA_PASSWORD 配置 SA 用户密码. MSSQL_PID 设置 SQL Server 版本或产品密钥. 可能的值包括:Evaluatio

Configure Always On Availability Group for SQL Server on RHEL——Red Hat Enterprise Linux上配置SQL Server Always On Availability Group

下面简单介绍一下如何在Red Hat Enterprise Linux上一步一步创建一个SQL Server AG(Always On Availability Group),以及配置过程中遇到的坑的填充方法. 之前发表过一篇类似的文章是Configure Always On Availability Group for SQL Server on Ubuntu——Ubuntu上配置SQL Server Always On Availability Group,有对Ubuntu感兴趣的请看那一篇

Linux 上的数据可视化工具

Linux 上的数据可视化工具 5 种开放源码图形化工具简介 Linux® 上用来实现数据的图形可视化的应用程序有很多,从简单的 2-D 绘图到 3-D 制图,再到科学图形编程和图形模拟.幸运的是,这方面的工具有很多开放源码实现,包括 gnuplot.GNU Octave.Scilab.MayaVi.Maxima 等.每个工具都有自己的优缺点,并且都是针对不同的应用程序而设计的.对这些开放源码图形可视化工具进行一下探索,有助于我们更好地决定哪个工具最适合我 们的应用程序. 0 评论: M. Ti

在Linux上安装Elasticsearch Head工具.md

在Linux上安装Elasticsearch Head工具 1.修改elasticsearch的参数 编辑elasticsearch的配置文件elasticsearch.yml $ vim /data/elasticsearch/elasticsearch-5.5.3/config/elasticsearch.yml 添加如下配置 # 增加新的参数,这样head插件可以访问es http.cors.enabled: true http.cors.allow-origin: "*" 重启

配置SQL Server on Linux(2)

1. 前言 前一篇配置SQL Server on Linux(1),地址:http://www.cnblogs.com/fishparadise/p/8125203.html ,是关于更改数据库排序规则的.实现的原理跟在Windows平台差不多,都是需要备份用户数据库,重建系统数据库来实现的,不过操作过程简化了.下面的配置是一些常规的设置,比如最大内存,默认数据文件位置,等. 2. 环境 Linux: CentOS 7.4,SQL Server 2017 (RC2) - 14.0.900.75

在Red Hat Enterprise Linux 7.3上安装SQL Server 2017

必要条件: 1.在此快速安装过程中,您需要安装SQL Server 2017或SQL Server 2019上Red Hat Enterprise Linux (RHEL) 7.3 +.然后使用sqlcmd创建第一个数据库连接以及运行查询. 2.必须使用RHEL 7.3或7.4且必须拥有至少2GB的内存.如果以前已安装CTP或SQL Server 2017的RC版本,必须在执行以下步骤之前删除旧存储库.   在Red Hat Enterprise Linux 7.3上安装SQL Server 2