SQL Server在CentOS上的虚拟化部署方案
导读:SQL Server在CentOS上的虚拟化部署方案 一、方案总览与适用场景 原生安装:在CentOS 7/8虚拟机中直接安装SQL Server 2017/2019,适合需要完整系统控制、与宿主机深度集成的场景。 容器化:在CentOS...
SQL Server在CentOS上的虚拟化部署方案
一、方案总览与适用场景
- 原生安装:在CentOS 7/8虚拟机中直接安装SQL Server 2017/2019,适合需要完整系统控制、与宿主机深度集成的场景。
- 容器化:在CentOS上运行Docker容器部署 SQL Server,适合快速交付、弹性伸缩与多实例隔离。
- 高可用:基于Always On 可用性组实现主从/多副本,适合生产级高可用与读写分离(需企业版)。
二、原生安装部署步骤(VMware/KVM 通用)
- 基础准备
- 创建CentOS 7/8虚拟机,建议配置:内存≥4 GB、CPU≥2 核、系统盘≥40 GB;安装常用工具(如net-tools、vim、wget、curl),并配置静态IP与SSH。
- 开放防火墙端口(示例为1433/TCP):firewall-cmd --zone=public --add-port=1433/tcp --permanent & & firewall-cmd --reload。
- 安装 SQL Server(以 2019 为例)
- 导入 GPG 密钥:rpm --import https://packages.microsoft.com/keys/microsoft.asc
- 添加官方仓库:curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2019.repo
- 安装软件包:yum install -y mssql-server
- 初始化配置:/opt/mssql/bin/mssql-conf setup(选择版本并设置SA密码)
- 启动与开机自启:systemctl start mssql-server & & systemctl enable mssql-server
- 客户端工具
- 安装命令行工具:curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
- 如已存在旧版 ODBC,先卸载:yum remove unixODBC-utf16 unixODBC-utf16-devel
- 安装工具与驱动:yum install -y mssql-tools unixODBC-devel
- 加入 PATH:echo ‘export PATH=$PATH:/opt/mssql-tools/bin’ > > /etc/profile & & source /etc/profile
- 本地连接测试:sqlcmd -S localhost -U SA -P ‘YourStrong@Passw0rd’
- 远程连接
- 在客户端使用SSMS连接虚拟机 IP 的1433端口;确保云上安全组/物理防火墙已放行。
三、容器化部署步骤(Docker on CentOS)
- 环境要求
- Docker 引擎≥1.8,宿主机内存≥4 GB,可用磁盘空间≥4 GB。
- 快速启动
- 拉取并运行容器:docker run -e ‘ACCEPT_EULA=Y’ -e ‘SA_PASSWORD=YourStrong@Passw0rd’ -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest
- 多实例示例:docker run -e ‘ACCEPT_EULA=Y’ -e ‘SA_PASSWORD=YourStrong@Passw0rd’ -p 11433:1433 -d mcr.microsoft.com/mssql/server:2019-latest
- 云上访问
- 在云平台安全组/NSG 中开放对应端口(如1433、11433),即可从外部连接。
四、高可用与集群方案
- 拓扑建议
- 至少3 节点(建议同机房/同区域),操作系统CentOS 7.x,部署SQL Server 2019企业版,启用Always On 可用性组实现主从与自动故障转移。
- 自动化部署
- 使用Ansible批量配置仓库、安装 SQL Server、执行 mssql-conf setup,并下发 Always On 相关配置与验证脚本,提升一致性与效率。
- 客户端接入
- 通过可用性组侦听器连接,实现读写分离与透明故障切换。
五、虚拟化与性能优化要点
- CPU 与 NUMA
- 数据库负载建议 vCPU 超分≤1:1.2;启用host-passthrough与NUMA 亲和,减少跨 NUMA 访问带来的延迟抖动。
- 内存与缓存
- 启用透明大页(THP)可提升分配效率(约15%–20%),同时监控碎片;必要时结合KSM节省内存占用;避免频繁回收导致抖动。
- 存储与 I/O
- 优先使用virtio-scsi;写密集场景建议write-back缓存;混合负载可增大队列深度(如io=native,queues=4);结合NVMe/本地SSD与合适的调度策略提升 IOPS 与延迟稳定性。
- 网络
- 高吞吐/低时延场景启用SR-IOV或vhost-net;对关键实例进行中断绑定/亲和性优化,降低网络处理延迟。
六、部署核对清单
- 资源与兼容性:内存≥4 GB、CPU≥2 核、磁盘≥40 GB;选择与内核/平台匹配的SQL Server 2017/2019版本与仓库(如RHEL 7对应仓库)。
- 网络与安全:开放1433/TCP(或自定义端口);云上需配置安全组/NSG;生产环境禁用不必要的暴露面。
- 工具与连接:安装mssql-tools并配置 PATH;使用sqlcmd或SSMS完成连通性与权限验证。
- 高可用:生产级建议3 节点 + 企业版 + Always On,并通过侦听器对外提供接入。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: SQL Server在CentOS上的虚拟化部署方案
本文地址: https://pptw.com/jishu/775265.html
