Linux安装MSSQL2017使用mssql-conf配置参数

痞子三分冷 提交于 2020-04-25 01:40:35

Linux上安装SQL Server 2017

1.下载 Microsoft SQL Server 2017 Red Hat 存储库配置文件:

sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo

2.运行以下命令以安装 SQL Server:

sudo yum install -y mssql-server

3.包安装完成后,运行 mssql-conf setup,按照提示设置 SA 密码并选择版本。

sudo /opt/mssql/bin/mssql-conf setup

4.systemctl status mssql-server

systemctl status mssql-server

5.防火墙上打开 SQL Server 端口。 默认的 SQL Server 端口为 TCP 1433

sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload

 

安装方法 2 :

wget https://packages.microsoft.com/rhel/7/mssql-server-2017/mssql-server-14.0.3281.6-2.x86_64.rpm
yum install bzip2 gdb libsss_nss_idmap cyrus-sasl cyrus-sasl-gssapi
rpm -ivh mssql-server-14.0.3281.6-2.x86_64.rpm
/opt/mssql/bin/mssql-conf setup

*********************************************************************************
只有2G的内存,需要修改以后才能安装:

[root@localhost bin]# mv sqlservr sqlservr.old
[root@localhost bin]# python
>>> a = open("sqlservr.old", "rb").read()
>>> b = a.replace("\x80\x10\xb7\xc1", "\x00\x80\x84\x1e")
>>> open("sqlservr", "wb").write(b)

[root@localhost bin]# chmod +x sqlservr
[root@localhost bin]# /opt/mssql/bin/mssql-conf setup
*********************************************************************************

 

安装命令行工具

1.下载 Microsoft Red Hat 存储库配置文件。

sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo

2.如果安装了早期版本的 mssql-tools,请删除所有旧的 unixODBC 包。

sudo yum remove unixODBC-utf16 unixODBC-utf16-devel

3.运行以下命令,以使用 unixODBC 开发人员包安装 mssql-tools。

sudo yum install -y mssql-tools unixODBC-devel  msodbcsql17

4.向 PATH 环境变量

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc

5.使用 sqlcmd 本地连接到新的 SQL Server 实例

sqlcmd -S localhost,1433 -U SA -P '<YourPassword>'

 

安装SQLSERVER代理

1.2017CU4及更高版本,启用代理方法

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

2.2017CU3及更低版本,需安装代理

sudo yum install mssql-server-agent
sudo systemctl restart mssql-server

已安装,需要更新

sudo yum check-update
sudo yum update mssql-server-agent
sudo systemctl restart mssql-server

 

 

mssql-conf进行参数配置

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 设置服务使用的跟踪标识

 

 

.查看当前设置

cat /var/opt/mssql/mssql.conf

 

[sqlagent]

enabled = true

[EULA]
accepteula = Y

[network]
tcpport = 15559

[telemetry]
customerfeedback = false

[filelocation]
defaultdatadir = /data/mssqlserver/data

 

0.修改需要重启服务

systemctl stop mssql-server.service

systemctl start mssql-server.service

1.启用SQL Server代理(默认,SQL Server代理是禁用的)
/opt/mssql/bin/mssql-conf set sqlagent.enabled true

2.修改SQL Server排序规则(默认,对于所有版本该值设置为true)
/opt/mssql/bin/mssql-conf set-collation

3.配置客户反馈
/opt/mssql/bin/mssql-conf set telemetry.customerfeedback false

4.修改默认数据和日志目录位置
mkdir /data/mssqlserver/data -p
chown mssql /data/mssqlserver/data
chgrp mssql /data/mssqlserver/data
/opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /data/mssqlserver/data


5.修改默认master数据库文件目录位置
mkdir /data/mssqlserver/masterdatabasedir -p
chown mssql /data/mssqlserver/masterdatabasedir
chgrp mssql /data/mssqlserver/masterdatabasedir
/opt/mssql/bin/mssql-conf set filelocation.masterdatafile /data/mssqlserver/masterdatabasedir/master.mdf
/opt/mssql/bin/mssql-conf set filelocation.masterlogfile /data/mssqlserver/masterdatabasedir/mastlog.ldf
mv /var/opt/mssql/data/master.mdf /data/mssqlserver/masterdatabasedir/master.mdf
mv /var/opt/mssql/data/mastlog.ldf /data/mssqlserver/masterdatabasedir/mastlog.ldf


6.修改master数据库文件的名字
/opt/mssql/bin/mssql-conf set filelocation.masterdatafile /var/opt/mssql/data/masternew.mdf
/opt/mssql/bin/mssql-conf set filelocation.mastlogfile /var/opt/mssql/data /mastlognew.ldf
mv /var/opt/mssql/data/master.mdf /var/opt/mssql/data/masternew.mdf
mv /var/opt/mssql/data/mastlog.ldf /var/opt/mssql/data/mastlognew.ldf


7.修改默认的DUMP目录位置(DUMP,当遇到故障时内存和SQL DUMP生成的默认位置)
mkdir /data/mssqlserver/dump -p
chown mssql /data/mssqlserver/dump
chgrp mssql /data/mssqlserver/dump
/opt/mssql/bin/mssql-conf set filelocation.defaultdumpdir /data/mssqlserver/dump


8.修改默认错误日志目录位置
mkdir /data/mssqlserver/logs -p
chown mssql /data/mssqlserver/logs
chgrp mssql /data/mssqlserver/logs
/opt/mssql/bin/mssql-conf set filelocation.errorlogfile /data/mssqlserver/logs/errorlog


9.修改默认备份目录位置
mkdir /data/mssqlserver/backup -p
chown mssql /data/mssqlserver/backup
chgrp mssql /data/mssqlserver/backup
/opt/mssql/bin/mssql-conf set filelocation.defaultbackupdir /data/mssqlserver/backup

10.指定核心DUMP设置(默认值为false)
/opt/mssql/bin/mssql-conf set coredump.captureminiandfull <true or false>
/opt/mssql/bin/mssql-conf set coredump.coredumptype <dump_type>

coredump.coredumptype的值:mini、miniplus、filtered、full

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设置的控制。


11.设置默认数据库邮件配置
sudo /opt/mssq/bin/mssql-conf set sqlagent.databasemailprofile <profile_name>


12.高可用性
/opt/mssql/bin/mssql-conf set hadr.hadrenabled 1


13.设置本地审核目录
mkdir /data/mssqlserver/audit -p
chown mssql /data/mssqlserver/audit
chgrp mssql /data/mssqlserver/audit
/opt/mssql/bin/mssql-conf set telemetry.userrequestedlocalauditdirectory /data/mssqlserver/audit


14.修改SQL Server本地化
/opt/mssql/bin/mssql-conf set language.lcid 1036


15.设置内存限制(默认是物理内存的80%)
/opt/mssql/bin/mssql-conf set memory.memorylimitmb 3328

 

16.修改TCP端口
/opt/mssql/bin/mssql-conf set network.tcpport <new_tcp_port>


17.指定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文件路径


18.启用/禁用跟踪标志(单或者多个禁止或启用)
/opt/mssql/bin/mssql-conf traceflag 1234 on
/opt/mssql/bin/mssql-conf traceflag 2345 3456 on
/opt/mssql/bin/mssql-conf traceflag 1234 2345 3456 off


19.移除一个设置
/opt/mssql/bin/mssql-conf unset network.tcpport

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!