ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

金蝶K3 WISE 12.1虚拟机迁移实战:2008 R2与SQL Server关键配置避坑指南

金蝶K3 WISE 12.1虚拟机迁移实战:2008 R2与SQL Server关键配置避坑指南 金蝶 K3 WISE 12.1 这套 ERP在财务、制造、供应链领域的存量客户其实比很多人想象的多。Windows Server 2008 R2 虽然早就过了主流支持期但大量企业的账套数据、业务流程还压在这套组合上。这些年我接到的需求里有一类非常典型机房里的老物理机已经响了十多年硬件厂商早不提供 2008 R2 的驱动老板又不想花大几十万升级新 ERP于是让我把整套系统迁到虚拟机上。这篇文章就把我在这类迁移项目里反复踩过、也反复修正过的 5 个关键配置细节讲透附一份可以直接抄作业的避坑清单。很多人在虚拟机里装不好 2008 R2 SQL Server 金蝶并不是操作有多难而是掉进了几个看起来能装、跑起来就崩的配置坑。虚拟机默认用了 UEFI 导致 2008 R2 无法引导磁盘控制器选成 NVMe 导致安装程序找不到硬盘加密狗在虚拟机里认不到中间层组件死活连不上数据库——这些我都遇到过。下面按项目实操顺序一条条说清楚。1. 先弄清楚这套组合为什么非要虚拟机不可把 2008 R2 和金蝶 K3 WISE 12.1 迁进虚拟机通常不是出于想折腾而是被现实逼的。最常见的场景有三类第一物理服务器硬件老化或者停产买不到备件磁盘阵列卡或者电源一旦挂了整个 ERP 就直接瘫痪第二机房要做整合一台服务器上同时跑 ERP、文件服务、打印服务减少物理机数量降低电费和运维成本第三企业要迁移到新的虚拟化平台统一备份、统一快照方便以后做灾备。这三类需求里最忌讳的做法是拿着 vCenter Converter 直接把物理机一键转成虚拟机。物理机上积攒了十年的驱动、残留的杀毒软件、各种第三方服务P2V 之后经常出现蓝屏、SQL 启动异常、金蝶中间层服务起不来。我做过 N 次迁移之后最终的结论是有条件就全新安装一遍 Windows Server 2008 R2再装 SQL Server最后把金蝶账套恢复进去。虽然操作步骤长一点但结果可控出了问题也知道往哪个方向排查。还有一个必须提前和企业确认的问题2008 R2 已经结束生命周期SQL Server 2008 R2 同样如此。迁移到虚拟机里只是延续使用不代表安全风险消失。我的习惯是在方案里明确写一句系统已停止安全更新建议仅在内网使用并做好备份策略让客户知道这个前提后面出任何安全相关的问题都不至于扯皮。2. 搭建虚拟机前的三个硬性准备虚拟机没搭好后面装系统、装 SQL、装金蝶全都是坑。这一步不要图省事三个硬性准备缺一不可。2.1 宿主机打开虚拟化确认 VMware 不被 Hyper-V 干扰无论你用的是 VMware Workstation 还是 ESXi宿主机 CPU 的虚拟化开关都必须打开。Intel 平台是 VT-xAMD 平台是 AMD-V在 BIOS 里找到对应选项启用。现在的主板默认一般是开启的但有些品牌机出厂时会关掉尤其是笔记本。如果 BIOS 里没开VMware 启动虚拟机时直接报此主机支持 Intel VT-x但 Intel VT-x 已被禁用。更隐蔽的一个坑是 Windows 宿主机上同时开启了 Hyper-V、Windows 沙盒、内核隔离VBS或者 WSL2。这些功能会占用虚拟化层和 VMware Workstation 抢资源轻则虚拟机性能明显下降重则直接起不来。之前有个客户装完 VMware 17 之后所有虚拟机都卡在启动界面查了半天最后发现是 Windows 11 默认开启了内核隔离。处理方式很简单在Windows 功能里把 Hyper-V 相关组件关掉或者用管理员命令行执行bcdedit /set hypervisorlaunchtype off执行完重启宿主机。注意这一条只对 Windows 宿主机有效如果你用 ESXi不存在这个问题。2.2 找一个干净的原版 2008 R2 镜像规划好磁盘布局别用那些网上二次封装的精简版优化版镜像装服务器系统。金蝶和 SQL Server 都吃系统组件精简版经常砍掉 IIS、.NET 或者某些 MFC 运行库装到一半报错你根本不知道是系统缺了什么东西。我这边统一用带 SP1 的 Windows Server 2008 R2 官方镜像64 位版本。原因很简单2008 R2 只有 64 位你要是拿 2008不带 R2的 32 位镜像来装后续 SQL 2008 R2 和 K3 的 64 位组件全都对不上。磁盘布局也要提前规划。虚拟机里至少分两块盘C 盘装系统和程序60GB 够用D 盘专门放 SQL 数据文件、日志文件和备份文件给 100GB 起步具体看账套大小。账套多的企业建议 C 盘 80GB数据盘直接 200GB虚拟磁盘是稀疏增长的物理存储暂时用不了那么多不用心疼。2.3 创建虚拟机时固件选 BIOS系统类型选 Windows Server 2008 R2 x64这一步我每次都要盯着操作员确认因为 VMware Workstation 17 新建虚拟机时默认固件经常会被设成 UEFI而 Windows Server 2008 R2 对 UEFI 引导的支持非常别扭。安装阶段就可能报错装完系统后偶尔出现无法引导修复起来很麻烦。所以创建虚拟机时一定要在自定义硬件里把固件类型改成BIOS不要用 EFI。同时客户机操作系统类型要选Windows Server 2008 R2 x64。这个选项会影响 VMware 对虚拟硬件的默认匹配选对了磁盘控制器、网卡类型都会自动配到兼容性较好的型号上。如果你选错成 Windows 10 x64虚拟机可能默认生成 NVMe 磁盘控制器和 VMXNET3 网卡2008 R2 安装过程中很可能找不到硬盘或者装完系统后网卡驱动异常。3. 五个关键配置细节决定了能不能装进去、跑得稳不稳这是整篇文章的核心。前两个细节决定系统能不能顺利装上后三个细节决定金蝶和 SQL Server 能不能长期稳定运行。3.1 CPU 配置一槽多核最省心别乱开不兼容的加速项Windows Server 2008 R2 的 CPU 配置我推荐1 个插槽、4 个核心。对金蝶 K3 WISE 12.1 这种企业应用4 个 vCPU 绰绰有余。为什么不推荐 2 个插槽各 2 核因为 2008 R2 的授权模式是按物理插槽算的虚拟机上虽然不涉及物理授权但某些 Windows 组件和应用服务对多路 CPU 的识别会有异常SQL Server 2008 R2 在某些多路虚拟 CPU 环境里还会出现许可校验问题。单插槽多核心是最稳的。虚拟化加速选项里虚拟化 Intel VT-x/EPT 或 AMD-V/RVI这一项默认勾选就行。大部分情况下没有副作用而且如果你的 2008 R2 虚拟机里还要跑什么依赖硬件虚拟化的程序没开这个选项会直接失败。但要注意如果宿主机本身 CPU 比较老开这个选项后出现虚拟机频繁蓝屏那就把它关掉用纯软件虚拟化兼容模式跑。还有一个冷门问题如果金蝶的加密服务或者 SQL Server 在虚拟机里报指令引用的内存不能为 written之类的随机错误可以试试把 CPU 设置里的虚拟化 CPU 性能计数器关掉旧系统对性能计数器扩展的支持并不好。顺带说一句很多人在网上搜lsi mr9260 8i windows server 2008 r2 driver version 4.36.0.64那是物理机安装 2008 R2 时给 LSI RAID 卡装驱动的问题。在 VMware 虚拟机里虚拟磁盘由虚拟控制器接管跟宿主机物理 RAID 卡没有关系不需要额外装这个驱动。3.2 内存8GB 起步SQL Server 内存上限单独锁死Windows Server 2008 R2 是 64 位系统虚拟机上内存给多少都不会被系统本身的寻址限制卡住。我一般建议8GB起步。少于 8GBWindows、SQL Server、金蝶中间层服务和客户端组件挤在一起跑两三个并发账套就会卡。但给虚拟机 8GB 内存只是第一步真正容易忽略的是 SQL Server 的内存上限。SQL Server 2008 R2 默认会吃掉所有可用内存如果不设上限8GB 内存的虚拟机会被 SQL 占满Windows 自己反而要可怜巴巴地等内存释放金蝶中间层服务就可能因为内存不足启动失败或者打开账套时特别慢。正确做法是把 SQL Server 最大内存锁在 5GB 到 6GB给系统留出 2GB 左右的余量。在 SQL Server Management Studio 里右键服务器实例选择内存把最大服务器内存(以 MB 为单位)改成 5120 或 6144。也可以直接用 T-SQL 命令设置EXEC sys.sp_configure Nshow advanced options, 1; RECONFIGURE; EXEC sys.sp_configure Nmax server memory (MB), 6144; RECONFIGURE;注意这个值是我针对 8GB 虚拟机的经验值。如果你给了 16GBSQL 上限可以设到 12GB 左右原则就是留出四分之一给操作系统和中间层服务别让 SQL 把内存吃光。3.3 磁盘控制器老老实实用 LSI Logic SAS系统盘数据盘分离Windows Server 2008 R2 安装时找不到硬盘90% 的原因是虚拟机磁盘控制器选错了。在 VMware Workstation 17 里新建虚拟机默认磁盘控制器可能选 NVMe金蝶这种老系统根本不认识。创建虚拟机时I/O 控制器类型一定要手动选LSI Logic SAS这是 2008 R2 自带驱动的控制器类型安装系统时不需要额外加载驱动装完系统也能正常识别。数据盘和系统盘不要挤在同一个虚拟磁盘上。SQL Server 的数据库文件、日志文件、备份文件最好分开存放。我的做法是创建两块虚拟磁盘C 盘走 SCSI 0:0D 盘走 SCSI 0:1两块盘都格式化成 NTFS。如果账套数据的 IO 压力特别大可以把数据盘放到另外一个独立的 SCSI 控制器上减少总线竞争。不过说实话对绝大多数几十个并发用户以内的 K3 系统一块高速 SSD 上的两个分区就够了不用把存储搞得太复杂。磁盘创建方式方面在 Workstation 里我习惯选立即分配所有磁盘空间和将虚拟磁盘存储为单个文件。立即分配相当于 vSphere 里的厚置备性能更稳定也避免虚拟机运行过程中磁盘文件持续膨胀带来的碎片化单个文件便于备份和迁移但要注意别放在 FAT32 分区上单文件超过 4GB 会出问题。3.4 网络适配器E1000E 兼容性最好IP 和 MAC 必须锁死虚拟机网络适配器的选择很多人不重视但金蝶 K3 的中间层和客户端之间走的是 DCOM、命名管道这类老协议对网络稳定性非常敏感。我推荐直接用E1000E不要追求 VMXNET3。VMXNET3 性能确实更好但 2008 R2 需要额外安装 VMware Tools 驱动而且一旦 Tools 版本和虚拟机不匹配网卡可能时断时续金蝶客户端隔一会儿就报中间层服务器无法连接。E1000E 是 Intel 千兆网卡的虚拟型号2008 R2 自带驱动装完系统直接能上网不需要先装 VMware Tools。对于 K3 这类以稳定为第一诉求的场景E1000E 的性能完全够用。网络配置上最容易被忽视的是IP 地址和 MAC 地址要锁死。金蝶的账套配置、SQL Server 的远程连接、客户端的应用服务器地址全部是跟着 IP 走的。如果虚拟机被移动、克隆或者导出再导入MAC 地址变了Windows 可能会把网卡识别成新设备原有的静态 IP 设置会丢失重置为 DHCP。轻则 IP 变了要重新配置重则金蝶授权失效所有客户端连不上。锁 MAC 地址的方法关闭虚拟机编辑 vmx 文件找到网卡配置部分把ethernet0.addressType generated改成ethernet0.addressType static ethernet0.address 你原来的MAC地址这样无论虚拟机怎么迁移网卡 MAC 都不会变。我再强调一次这个动作一定要在系统装完、做完静态 IP 配置之后做否则没有意义。3.5 USB 加密狗把 USB 控制器版本降到 2.0手动直通金蝶 K3 WISE 12.1 很多客户的授权方式还是 USB 加密狗。这个狗在物理机上插着一直没事迁移到虚拟机里就各种认不到。排查下来多数是 USB 控制器版本不兼容。VMware Workstation 里新虚拟机默认的 USB 控制器可能是 USB 3.1而金蝶的加密狗驱动大多是十年前写的只支持到 USB 2.0有的甚至只支持 USB 1.1。虚拟机里看不到加密狗设备或者看到了但是驱动安装失败十有八九是这个问题。解决方法是在虚拟机设置里把 USB 控制器兼容性改成USB 2.0然后把加密狗插到宿主机后置 USB 2.0 接口再在虚拟机 → 可移动设备菜单里手动把加密狗连接到虚拟机。除了加密狗还有一种是网络加密锁。锁插在一台服务器或者某台客户机上其他客户端通过网络访问。这种模式下锁所在机器的 IP 必须是固定的迁移虚拟机的网络配置时必须保留原 IP 段。如果整个网段都变了那金蝶的授权服务端和客户端要全部重新配置工作量会大不少迁移前一定要先搞清楚企业用的是哪种授权模式。4. 金蝶 K3 WISE 12.1 完整安装实操记录前面虚拟机的硬件配置搞定了接下来就是系统层面一步步装。这一节所有步骤都是我实际复现过的照着做能避开大部分安装中途报错。4.1 装完系统先在角色和功能里补 .NET 3.5.1Windows Server 2008 R2 默认不带 .NET Framework 3.5.1 功能而 SQL Server 2008 R2 的安装程序强制要求这个组件。不装的话SQL 安装向导到安装程序支持规则环节就直接卡住提示缺少 .NET 3.5.1。在服务器管理器里选择功能 → 添加功能勾选.NET Framework 3.5.1 功能确定安装。如果你的 2008 R2 镜像已经挂载在虚拟机光驱里可以通过指定源文件的方式快速安装避免系统去 Windows Update 下载ServerManagerCmd -install NET-Framework-Core -AllSubFeatures -Source D:\sources\sxs这里的 D: 是 2008 R2 安装镜像所在的光驱盘符具体以实际为准。另外金蝶 K3 的 Web 功能依赖 IIS安装 IIS 角色时勾选 ASP.NETISAPI 扩展、ISAPI 筛选器这些子功能否则后面环境检测会一直报警。4.2 SQL Server 2008 R2实例、排序规则、服务账户一次配到位SQL Server 版本选择上我强烈建议装SQL Server 2008 R2 Standard 或 Enterprise并且打好 SP2 以上补丁。金蝶 K3 WISE 12.1 发布时主要适配的是 SQL Server 2008对 R2 的支持是通过后续补丁完善的。裸装一个没打补丁的 2008 R2金蝶的环境检测可能会不认。安装类型选SQL Server 功能安装功能勾选数据库引擎服务和管理工具-完整即可。实例名用默认实例 MSSQLSERVER不要用命名实例。命名实例虽然也能配置但金蝶中间层连接数据库时常常要手动指定实例名多一个环节就多一个出错点。身份验证模式选混合模式设置 sa 密码同时建议单独建一个k3adm登录名授予 sysadmin 角色专门给金蝶账套管理工具连接用。这样做的好处是如果金蝶中间层配置有改动不会直接动到 sa 密码。排序规则这一项很容易被忽略。新建实例时默认排序规则是按系统区域语言来的。如果系统是中文版默认一般是 Chinese_PRC_CI_AS这个和金蝶 K3 WISE 12.1 的默认需求一致。但如果你是从旧的 32 位 SQL Server 2008 物理机上迁移账套过来旧库的排序规则可能不是这个。恢复数据库的时候数据库自身的排序规则会优先于实例排序规则所以一般问题不大但如果搭建完成之后金蝶查询出现不能解析排序规则冲突的报错就要在恢复账套时用旧库的排序规则重建实例这个我在第五节排查表里再细说。4.3 金蝶中间层和客户端组件的安装顺序与常见弹窗处理SQL Server 装好之后正式装金蝶。注意安装顺序先装中间层组件再装客户端组件最后做账套管理配置。颠倒顺序环境检测和组件注册经常出错。安装程序启动后第一步是环境检测。它一般会检查四样东西操作系统版本、SQL Server 版本、IIS 组件、Office 组件。这里有个经验如果环境检测卡在 SQL Server 版本不识别先确认 SQL 实例已经启动、防火墙允许实例通信然后把系统区域语言统一成中文简体中国重试检测。区域语言设置路径是控制面板 → 区域和语言 → 管理 → 更改系统区域设置改成中文(简体中国)之后重启。这个动作对金蝶的安装包编码识别影响很大很多人中文软件装出乱码或者环境检测报错就是这里没设置对。装中间层组件过程中如果提示某个服务启动失败先别急着继续装。去 services.msc 里查看金蝶相关服务比如 KDService、K3 中间层服务、加密服务等把它们的登录身份改成本地系统账户再手动启动一次。很多情况下是默认安装用的服务账户权限不够导致组件写注册表或访问网络资源共享失败。装完客户端组件后打开金蝶 K3 账套管理创建或恢复企业账套。恢复时需要注意如果原来的账套数据库备份文件来自旧服务器先确认备份文件完整恢复完成后把账套路径指向新的数据文件位置再做一次数据库一致性检查。最后在系统设置里把中间层服务器地址更新为新虚拟机的 IP再测试客户端登录。如果客户端无法连接基本就是网络层或者 DCOM 配置问题看下一节排查表。5. 常见问题排查与经验速查表我在做这类迁移项目时踩过和帮人排查过的坑基本集中在下面这些场景。整理成表格方便直接对照。现象常见原因解决方案2008 R2 安装时报找不到任何磁盘虚拟机磁盘控制器为 NVMe 或 SATA系统不识别虚拟机设置里把控制器类型改成 LSI Logic SAS重新引导安装虚拟机开机后直接黑屏或提示找不到引导设备虚拟机固件是 UEFI2008 R2 引导异常关闭虚拟机编辑 vmx 文件将firmware efi改为firmware bios重启虚拟机宿主机浏览器访问虚拟机里的金蝶 Web 页面失败NAT 模式下宿主机无法直接访问虚拟机换成桥接模式给虚拟机配置同网段静态 IP或者配置 NAT 端口映射VMnet1 网卡带黄色感叹号VMware 主机虚拟网卡驱动或桥接协议异常以管理员身份重新安装 VMware Workstation或者修复 VMware Bridge Protocol 服务新版 VMware 17 右键虚拟机没有打开/配置选项虚拟机列表未正确加载或权限问题在主页用 CtrlO 直接选择 vmx 文件打开必要时以管理员身份运行 VMwareWindows 11 宿主机上虚拟机启动报虚拟化被占用Hyper-V、内核隔离、WSL2 与 VMware 冲突关闭 Windows 功能里的 Hyper-V执行bcdedit /set hypervisorlaunchtype off后重启SQL Server 2008 R2 安装程序提示缺少 .NET 3.5.12008 R2 默认未启用该功能在服务器管理器里添加 .NET Framework 3.5.1或用安装镜像 source 目录指定源文件金蝶客户端连不上中间层服务器DCOM 网络访问权限不足组件服务 → 计算机 → 我的电脑 → DCOM 配置找到金蝶组件添加 Everyone 和 Network Service 的本地访问与启动权限SQL Server 连接超时SQL 未启用 TCP/IP 协议SQL Server 配置管理器 → SQL Server 网络配置 → 启用 TCP/IP重启 SQL 服务防火墙放行 1433 端口加密狗在虚拟机里时好时坏经常掉线USB 控制器版本过高或加密狗接在 USB 3.x 接口USB 控制器改为 USB 2.0加密狗插宿主机 USB 2.0 口虚拟机可移动设备里手动连接恢复账套后金蝶查询报排序规则冲突实例排序规则与账套数据库不一致恢复前查询旧库排序规则用相同排序规则新建实例再恢复账套表格之外再补充两个不太起眼但很实用的小技巧。一个是备份策略。金蝶 K3 WISE 12.1 的账套存储在 SQL Server 里备份时除了 SQL 数据库备份还要把金蝶的安装目录、加密配置文件、注册表相关键值一起纳入备份。虚拟机的快照功能可以用来做迁移前的保护但绝不能替代 SQL 备份快照回滚会导致账套数据丢失。另一个是时间同步。金蝶授权对时间比较敏感虚拟机迁移到新宿主机后如果宿主机和客户机的系统时间不同步加密服务可能直接判定授权过期。建议在虚拟机上开启 VMware Tools 的时间同步或者把虚拟机加入域中通过域控统一同步时间。手动改时间是最坑的你会发现改完时间金蝶正常了但 SQL 的作业调度又乱了。6. 避坑清单直接抄作业版最后给你一份我在每次交付前都会逐条核对的清单照着做基本不会翻车[ ] 虚拟机固件为 BIOS不要用 EFI/UEFI[ ] 客户机操作系统类型选择 Windows Server 2008 R2 x64[ ] 磁盘控制器为 LSI Logic SAS不是 NVMe不是 SATA[ ] 系统盘 60GB 以上数据盘单独分配 100GB 以上[ ] 虚拟磁盘立即分配所有空间存为单个文件[ ] 内存不低于 8GBSQL Server 最大内存锁在 5GB 到 6GB[ ] 网络适配器选 E1000E设置静态 IP锁定 MAC 地址[ ] USB 控制器版本降到 USB 2.0加密狗使用 USB 2.0 接口直通[ ] 安装 .NET Framework 3.5.1并安装 IIS 角色及 ASP.NET 子功能[ ] SQL Server 使用默认实例混合认证模式排序规则注意与旧库一致[ ] 金蝶安装顺序中间层组件 → 客户端组件 → 账套管理配置[ ] 系统区域语言设置为中文(简体中国)完成后重启系统[ ] 金蝶服务无法启动时把服务登录身份改为本地系统账户[ ] 防火墙放行 SQL 1433 端口保留 DCOM/RPC 所需网络权限[ ] 迁移完成后测试客户端登录确认账套可正常打开再撤掉物理机这套配置流程看着琐碎但每一条背后都有真实故障支撑。如果你恰好也在折腾金蝶 K3 WISE 12.1 的虚拟机迁移可以对照这份清单一步一步来。我个人的习惯是在新虚拟机上线前至少做两次完整账套恢复演练确认数据库备份可用再通知业务部门切换。虚拟化解决的是硬件生命周期问题但数据安全永远只能靠备份和演练兜底。
返回列表