本人新书上市,请多多关照:《SQL Server On Linux运维实战 2017版从入门到精通》
SQL Server 2019已经正式公布,虽然只是preview版,但是不影响我们追求新的技术。接下来的一个系列,随着本人的研究,尽量让这个系列成为“教程”,真正的入门到精通。
不废话,先把研究环境搭建起来。由于某些原因(晚点再说),本系列首先使用CentOS 7作为操作系统。官方指引中支持的Linux平台及文件系统中并没有指出CentOS,但是作为与Red Hat同源的Linux发行版,几乎与Red Hat无差别地使用。所以这里使用CentOS 7作为演示,下图是官方要求里面的部分截图。
安装CentOS可以很简单,也可以很复杂,这里不想那么快提升复杂度,所以读者可以自行找一个虚拟机(今时今日没几台虚拟机在手很难学习这些系统级别的东西)然后安装CentOS即可。下面是本系列中使用的一些信息:
在安装之前我们还需要习惯性检查一下环境,下面对上图的信息进行检查,分别对OS版本、文件系统、CPU和内存进行检查。
一般可以使用cat /etc/*-release
、cat /proc/version
和lsb_release -a(不是每个Linux都预装)
来获取。下面演示第一和第二个命令,第三个命令由于在CentOS 7 中未预装,所以也就不额外安装演示。
这里要查询的是是否为XFS或EXT4及其空间大小是否足够,作者使用df -Th
来实现,命令解释可以使用man df
来获取,本机结果如下图,Type表示文件系统类型,Size是大小,不过注意由于df命令使用了h选项使其human-readable,所以在从KB转换成GB过程产生少量误差(即Size≠Used+Avail),但是这个无伤大雅。
还可以用lsblk
来实现,并且可能在某些情况下比df更直观:
作者比较喜欢lscpu
,查看CPU信息的命令有很多,包括查询其他信息,在Linux中很容易让初学者混乱,作者建议“够用就好”,然后在过程中收集一些命令并逐步完善一个列表,什么时候用什么命令。这可能是成长的最快方式,要相信“你的努力,时间看得见”。
上面的信息中的细节的东西以后再说。这里只演示如何获取必要的信息。
接下来我们进行默认安装,SQL Server On Linux可以在线、脱机(下载安装包)和无人值守安装,这里使用最常见的在线安装做演示,所以首先你的操作系统能访问公网。另外说一句,操作系统安装好之后,强烈建议更新Linux的软件版本。Ubuntu使用sudo apt-get update && sudo apt-get upgrade
实现。CentOS使用su -c 'yum update'
实现,如果不是使用***root***执行,则需要输入root密码。
SQL Server On Linux的安装分3步:
说明
假设你已经在Windows上安装过SQL Server 2008或以上版本(2005和2000有所不同,年代也久远,这里不讨论),那么在接下来你会感受得到很多不一样的地方,这里先做个概要说明:
接下来就实际演示安装过程,非常简单,本操作为了减少不必要的麻烦,均以root执行,如果读者不以root执行,请在各命令前加上sudo 并输入对应的密码
# curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-preview.repo
# yum install -y mssql-server
部分过程略过,毕竟Linux的刷屏能力还是很强的
如果看到下图的两个红框部分,证明成功完成:
根据提示,要执行sudo /opt/mssql/bin/mssql-conf setup
来完成真正的安装。
# /opt/mssql/bin/mssql-conf setup
命令执行后会看到下图中的提示,这是需要交互的,首先是选择版本,用过SQL Server的人应该都清楚,这里就不多说,一般建议使用评估版或者开发版,但是注意真正跟企业版完全一致的只有评估版,开发版有点差异,但是对大部分人来说这个差异没什么影响。同时注意有一个需要输入“yes”接受License。然手是sa的密码,这个密码强度当然要足够高,最后就是选择SQL Server的语言,如果是新装的环境,作者还是建议使用(1)即英语,毕竟这是老外的产品,在Windows上的SQL Server,作者也很少用简体中文,除非是直接升级当前系统(前提是这个系统也使用简体中文)。
接下来Linux会继续安装步骤,当完成时会看到下图。
到此为止,SQL Server引擎的安装就完成了,你可以用SSMS或者另外一个作者最近在研究的跨平台工具“SQL Operations Studio”来访问。如果发现访问不了,那很可能是防火墙的问题。
# firewall-cmd --zone=public --add-port=1433/tcp --permanent
# firewall-cmd --reload
下面是本人使用SQL Operations Studio进行连接访问的截图:
按照官方的顺序,还需要配置sqlcmd等,但是这里作为快速入门,不打算介绍,毕竟有SSMS等工具的情况下,sqlcmd几乎没有什么存在的必要(唯一可能要用到的场景可以看本人另外一篇文章:使用SQLCMD在SQLServer执行多个脚本)。
作为本文的最后一步,就是检查一下SQL Server的服务状态:
# systemctl status mssql-server
暂时不要关注太多命令细节,接下来的路还长着呢,本人写这系列的文章是为了深究技术细节,所以很快就会~
本文为了后续研究,快速地在CentOS 7 上安装了SQL Server 2019,这个过程忽略了官方教程中的其他部件,但是在需要的时候,也会一起安装上去。
由于网上资料已经很多,所以本文不打算用一篇的篇幅来安装一个完整的SQL Server On Liunx环境,而是从逻辑上拆分出来,先有一个“可用”环境为主,接下来就要开始对这个环境进行折腾。折腾的内容从本文的截图红框开始。敬请期待!SQL Server On Linux(2)——SQL Server 2019 For Linux安装过程细节研究
作为非Linux专业人士,作者只能多练习,多总结,不管你觉得有没有用,作者还是打算在每篇文章中,尽可能列出用到的Linux命令,用于快速查找和整理。
OS 版本:`# cat /etc/*-release`、`# cat /proc/version`
文件系统:`# df -Th`、`# lsblk`
CPU信息:`# lscpu`
内存信息:`# free -m`
更新软件:`sudo apt-get update && sudo apt-get upgrade` 、`su -c 'yum update'`
开放端口:`# firewall-cmd --zone=public --add-port=1433/tcp --permanet` 然后 `# firewall-cmd --reload`
这部分的用处也是快速查找,因为作者对Linux还不够熟悉,很多信息需要反反复复查找,所以作者也对此进行总结: