客户的 ERP 用的是十几年前的老系统,只认 SQL Server 2008 R2。新服务器到手,装到一半弹窗提示需要 .NET Framework 3.5,装完又卡在实例配置。
老数据库不是装上就能用,环境和实例两项没弄对,后面连不上还是白折腾。
安装包和补丁要分开找
官方早就停止提供下载,现在能拿到的多是 SP3 集成版,文件名里带 SP3 的那份更省事。装完再打一遍最新的安全补丁,老版本对 TLS 1.2 支持不全,客户端连不上会报协议错误。
系统层面的依赖
- Windows Server 2019 默认不带 .NET 3.5,要在功能里勾选在线安装
- 先装好 MSXML 和 Visual C++ 运行库,缺一个安装程序就回滚
- 关闭 UAC 或者以管理员身份运行 setup,否则实例创建失败
实例名决定了连接串
默认实例连 127.0.0.1 就行,命名实例要写 主机名 加反斜杠 加实例名。端口方面,默认实例走 1433,命名实例一般开动态端口,得在配置管理器里固定,再在防火墙放行。
兼容级别别急着往上调
老库的兼容级别是 100,对应 2008。恢复到 2016 以上实例后,级别不调,某些语法还是照旧跑;调上去可能让旧查询计划变差。上线前拿一份备份在测试库跑一圈,再决定改不改。
登录方式与授权
安装时选混合模式,sa 密码设复杂点,装完在属性里留 Windows 和 SQL 两种登录。老系统常用 sa 连库,禁用 sa 会直接让它连不上。授权按 CPU 核数算,虚拟化环境看清许可条款。
备份格式和还原顺序
备份用 bak 文件,别用分离附加的方式拷 mdf,日志文件对不上会一直挂起。还原前建好同名库,勾选覆盖现有数据库,再在选项里改还原路径,否则会往原机器的盘符写。跨版本还原只能从低到高,2008 的备份能进 2019,反过来不行,降级只能导脚本。
那台机器最后装的是 SP3 版本,实例名固定成 ERP,端口 1433 写死。老库能跑就别动,能迁新版本的窗口期,一定先做兼容性测试。