ESAP达摩院 思想有多远,我们就能走多远

使用linux版mssql打造磐石般的JU系统


两年前,微软着手拥抱开源,开放自家平台,甚至搞出mssql运行在Linux上的震惊计划。

为什么用linux + mssql

  • mssql是使用最为广泛的一种企业级数据库,linux是整个服务器领域的操作系统霸主,强强联手,稳如磐石。

  • 而相较于 windows + mssql 动辄 20G+ 的基本空间占用,linux + mssql 才 2G,堪称神器,这也是为什么国内很多银行开始纷纷采用该方案。

实践linux + mssql

安装部署centos7

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

  • 然后配置自动分区后即可下一步安装了,安装过程中可以配置root密码。

  • 安装完成后重启,输入root和密码登陆,使用命令df -h查看一下空间占用情况,总共才1.3G,是不是很惊艳?

安装部署mssql on linux

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

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

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

  • OK,现在我们就获得了一台稳如磐石的linux版mssql服务器了,村长这台服务器IP为 192.168.1.222

  • 我们可以通过其他网内的计算机连接该sqlserver,村长创建了一个 ju 数据库备用

安装部署聚表服务器

  • 目前ES平台百花齐放,村长准备用聚表(Juable,以下简称JU)来代替以前的X哲,X表平台,首先安装2.3.22版

  • 进入【服务器端配置】,设置数据源服务器到linux版sql服务器IP,输入之前配置的sa密码,测试连接

  • 接下来要把JU的blank.bak上传到centos7,简单起见,村长给centos7安装了samba,直接挂载本地C盘给centos。
sudo yum install -y samba samba-client
sudo mkdir -p /mnt/tmp
sudo mount -t cifs -o username=administrator,password=123 //192.168.1.200/c$ /mnt/tmp
sudo mv /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空间,神图镇楼: