当前位置:首页 > 问答 > 正文

搞定mssql服务器架构,实例怎么设端口号到底咋配才靠谱

咱们得把“MSSQL服务器架构”这个听起来高大上的词儿掰开揉碎了说,说白了,它指的就是你怎么安排你的SQL Server服务器们,让它们既能好好干活,又不至于动不动就“趴窝”,这就像开一家公司,你不能把所有部门都塞在一个小房间里,总得分分谁在前台接业务,谁在后方搞生产。

一个比较靠谱的架构,通常会分成至少两个环境:一个叫“生产环境”,另一个叫“非生产环境”。(来源:基于常见的IT运维最佳实践)

生产环境,这就是你的主战场,是真正对外提供服务的那个数据库服务器,比如你做的网站,用户看到的数据、下的订单,都存在这里,这台服务器必须得稳,性能要好,安全级别要高,为了以防万一,生产环境的数据库最好不要只有一台机器,而是搞个“主从”或者“集群”,简单理解就是,一台主力机器(主库)负责处理所有的读写操作,另外一台或多台备用机器(从库)实时同步主库的数据,万一主库断电了或者硬盘坏了,可以立刻让备用的顶上去,保证网站或应用不中断,这叫高可用性。(来源:SQL Server官方文档中关于Always On可用性组、数据库镜像等概念的阐述)

非生产环境,这其实是个统称,它下面可能包括好几个具体环境:

  • 开发环境:给程序员们用的,他们在这里写代码、测试新功能,可以随便折腾,搞坏了也没关系,反正不是真实数据。
  • 测试环境:功能开发完了,就放到这里,由测试工程师模拟用户的操作,专门找茬挑毛病,这个环境的数据最好能模拟真实情况,但又不是真正的生产数据,以防泄露。
  • 预发布环境:这是上线前的最后一道关卡,它的配置要尽可能和生产环境一模一样,用来做最后的验证,确保新版本放到真正的生产环境里不会出乱子。

把生产和非生产环境严格分开,是靠谱架构的第一步,这样做的最大好处是,你在测试环境里怎么折腾,都不会影响到线上正在赚钱的业务。


我们说说“实例怎么设端口号到底咋配才靠谱”。

SQL Server安装的时候,会创建一个叫“实例”的东西,你可以把它理解成在一台电脑上安装的多个独立的SQL Server服务,你可以在同一台服务器上安装一个默认实例(没有单独的名字),再安装一个命名实例(比如叫SQLExpress),它们彼此是隔离的,就像一台电脑上可以同时运行微信和QQ一样。

搞定mssql服务器架构,实例怎么设端口号到底咋配才靠谱

每个实例要对外提供网络服务,就必须通过一个“端口号”,这就像公司有不同的部门,每个部门都有一个分机号,外面的人想联系哪个部门,就得拨对应的分机号。

默认端口号是1433,但这恰恰是“不靠谱”配置的开端!因为全世界都知道MSSQL的默认端口是1433,黑客们扫描服务器的时候,第一个试的就是这个端口,从安全角度讲,更改默认端口号是必须做的一步,这能大大降低被自动化攻击脚本扫中的概率。(来源:网络安全基本准则,如CIS安全基准中对SQL Server的配置建议)

那端口号到底咋配才靠谱呢?步骤如下:

  1. 选一个不容易被猜到的端口号:不要用1433,也不要用什么1434、3306(这是MySQL的默认端口)这些众所周知的数据库端口,选一个大于1024的、看起来比较随机的数字,比如54321、49152等,但要注意,别选那些已经被其他系统服务占用的端口。

    搞定mssql服务器架构,实例怎么设端口号到底咋配才靠谱

  2. 在SQL Server配置管理器里修改:你不能直接在数据库里改,得用一个叫“SQL Server Configuration Manager”的工具(来源:Microsoft官方工具)。

    • 打开这个工具,找到“SQL Server网络配置”。
    • 展开后,你会看到比如“MSSQLSERVER的协议”(这是默认实例)或“SQLEXPRESS的协议”(这是命名实例)这样的选项。
    • 右键点击“TCP/IP”,选择“属性”。
    • 在弹出的窗口里,切换到“IP地址”选项卡,这个界面可能有点复杂,因为列出了服务器上所有的IP地址(比如IP1、IP2...一直到IPAll)。
    • 最简单直接的方法是,拉到最下面的“IPAll”部分,你会看到“TCP动态端口”和“TCP端口”。
    • 把“TCP动态端口”里的内容清空(如果有的话),这个选项是让SQL Server每次启动时随机选一个端口,不利于我们固定配置。
    • 在“TCP端口”里,填上你精心挑选的那个数字,比如54321
    • 点击“确定”保存。
  3. 重启SQL Server服务:这一步非常关键!改完端口后,必须回到SQL Server配置管理器,在“SQL Server服务”里,找到对应的SQL Server服务(如SQL Server (MSSQLSERVER)),右键选择“重新启动”,新的端口号才会生效。

  4. 配置防火墙:光SQL Server自己换了端口还不行,服务器上的防火墙得给这个新开的“门”放行,你要在Windows防火墙的入站规则里,添加一条新规则,允许你设置的那个端口号(如54321)通过TCP协议通信,否则,外部的应用程序还是连不进来。

  5. 修改连接字符串:你的应用程序(比如网站后台)连接数据库的代码也得跟着变,原来可能写的是服务器IP,1433,现在要改成服务器IP,54321,就是IP地址后面用逗号跟上新的端口号。

搞定MSSQL架构的核心是“环境隔离”,而设置端口号的核心是“安全与稳定”——通过修改默认端口增强安全性,通过固定端口和正确配置防火墙确保稳定连接,把这些步骤老老实实做一遍,你的MSSQL服务器基础配置就相当靠谱了。