SQL Server 2019 为 SQL Server 引入了 大数据群集。 它还为 SQL Server 数据库引擎、SQL Server Analysis Services、SQL Server 机器学习服务、Linux 上的 SQL Server 和 SQL Server Master Data Services 提供了附加功能和改进。
相对于SQL Server 2017 新增以下功能
新增功能或更新 | 详细信息 |
---|---|
新建容器注册表 | 开始使用 Docker 上的 SQL Server 容器 |
复制支持 | Linux 上的 SQL Server 复制 |
支持 Microsoft 分布式事务处理协调器 (MSDTC) | 如何在 Linux 上配置 MSDTC |
OpenLDAP 支持第三方 AD 提供商 | 教程:对 Linux 上的 SQL Server 使用 Active Directory 身份验证 |
Linux 上的机器学习 | 在 Linux 上配置机器学习 |
tempdb 改进: |
默认情况下,Linux 上的 SQL Server 新安装会根据逻辑内核数创建多个 tempdb 数据文件(最多 8 个数据文件)。 这不适用于就地次要版本或主版本升级。 每个 tempdb 文件的大小为 8MB,且自动增长大小为 64MB。 此行为类似于 Windows 上的默认 SQL Server 安装。 |
Linux 上的 PolyBase | 在 Linux 上为非 Hadoop 连接器安装 PolyBase。 PolyBase 类型映射。 |
变更数据捕获 (CDC) 支持 | Linux 上的 SQL Server 2019 现在支持变更数据捕获 (CDC)。 |
一、使用 Docker 安装并运行 SQL Server 2019
1. 拉取MSSQL2019-CTP3.2版本镜像
sudo docker pull mcr.microsoft.com/mssql/rhel/server:2019-CTP3.2
2. 运行容器
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=Passw0rd" -p 1433:1433 -v /data/mssql:/var/opt/mssql -d mcr.microsoft.com/mssql/rhel/server:2019-CTP3.2
docker run
的参数说明:
参数 | 描述 |
---|---|
-e 'ACCEPT_EULA=Y' | 固定值,用以确认接受用户许可协议 |
-e "MSSQL_SA_PASSWORD=Passw0rd" | 指定SQLSERVER的密码(至少包含 8 个字符的强密码) |
-p 1433:1433 | 将物理机的IP地址映射到容器端口 |
-v /data/mssql:/var/opt/mssql | 将物理机的 /data/mssql 目录映射到容器中 |
--name sql1 | 为容器指定一个自定义名称(不设置时是系统自动随机生成) |
mcr.microsoft.com/mssql/rhel/server:2019-CTP3.2 | SQL Server 2019 CTP3.2 容器镜像 |
3. 查看运行状态
docker ps -a
二、使用 sqlcmd 连接到 SQL Server
1. 下载 Microsoft Red Hat 存储库配置文件
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo
2. 安装 mssql-tools
sudo yum install mssql-tools unixODBC-devel
如果安装了早期版本的 mssql-tools,使用下面的命令删除旧的 unixODBC 包
sudo yum remove mssql-tools unixODBC-utf16-devel
想要在 bash shell 中运行 sqlcmd,需要向 PATH 环境变量添加 /opt/mssql-tools/bin/
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
3. 连接到 SQL Server
使用 sqlcmd 连接到本地Docker上运行的SQL Server,连接账号 sa,密码是运行容器时设置的密码。
sqlcmd -S 127.0.0.1 -U SA -P 'Passw0rd'
连接成功后,就可以使用 SQL 语句来操作数据库了。