两年前,微软着手拥抱开源,开放自家平台,甚至搞出mssql运行在Linux上的震惊计划。
为什么用linux + mssql
mssql是使用最为广泛的一种企业级数据库,linux是整个服务器领域的操作系统霸主,强强联手,稳如磐石。
而相较于 windows + mssql 动辄 20G+ 的基本空间占用,linux + mssql 才 2G,堪称神器,这也是为什么国内很多银行开始纷纷采用该方案。
实践linux + mssql
安装部署centos7
linux发行版,村长选择了centos7
下载后,用hyper-v进行安装,虚拟内存设置要大于2G,其他安装设置默认即可,村长在【软件选择】中勾选了【开发工具】

在【网络和主机名】中配置虚拟网卡启用和IP(也可用DHCP)

然后配置自动分区后即可下一步安装了,安装过程中可以配置root密码。
安装完成后重启,输入root和密码登陆,使用命令df -h查看一下空间占用情况,总共才1.3G,是不是很惊艳?

安装部署mssql on linux
sudocurl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo

运行以下命令,安装 SQL Server
sudoyum install -y mssql-server
软件包安装完成后,运行mssql-conf 安装命令设置 SA 密码,并选择版本,村长选择的是developer版(数字2)
sudo /opt/mssql/bin/mssql-conf setup

配置完成后,请验证服务是否正在运行:
systemctl status mssql-server
打开防火墙上的 SQL Server 端口。 默认为 1433,使用以下命令:
sudofirewall-cmd --zone=public --add-port=1433/tcp --permanent
sudofirewall-cmd --reload

OK,现在我们就获得了一台稳如磐石的linux版mssql服务器了,村长这台服务器IP为 192.168.1.222
我们可以通过其他网内的计算机连接该sqlserver,村长创建了一个 ju 数据库备用

安装部署聚表服务器
目前ES平台百花齐放,村长准备用聚表/慧表(Juable/Nxcells,以下简称JU)来代替以前的X哲,X表平台,首先安装2.3.22版
进入【服务器端配置】,设置数据源服务器到linux版sql服务器IP,输入之前配置的sa密码,测试连接

接下来要把JU的blank.bak上传到centos7,简单起见,村长给centos7安装了samba,直接挂载本地C盘给centos。
sudoyum install -y samba samba-client
sudomkdir -p /mnt/tmp
sudomount -t cifs -o username=administrator,password=123 //192.168.1.200/c$/mnt/tmp
sudomv /mnt/tmp/blank.bak /var/opt/mssql/data/ju.bak
解析:上面命令首先安装了samba,samba-client文件共享协议和客户端,然后创建了/mnt/tmp目录用来挂载我本机C盘,其中192.168.1.200是我本机IP,事先我已把JU的blank.bak复制到了c盘根目录,方便拷贝,最后一个命令就是将bak移动到了centos的/var/opt/mssql/data目录下,并重命名为ju.bak

OK,接下来就可以在JU上恢复备份了,路径里手动填入/var/opt/mssql/data/ju.bak,恢复即可。

完毕,有了linux版mssql的强力支持,村长要开始快乐地撸JU了~!

后记
感谢 @Juable-杨工 提供的特别版JU服务器配置管理程序。
目前经过一系列测试,linux版sql基础性能与sql2008r2相仿,只需要2G空间,神图镇楼:
