news 2026/8/30 11:39:09

从零到一:基于SQL Server的用友NC6.5企业级部署实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从零到一:基于SQL Server的用友NC6.5企业级部署实战

1. 环境准备:兵马未动,粮草先行

大家好,我是老张,一个在企业IT圈里摸爬滚打了十多年的老兵。最近公司业务要上马一套新的管理系统,决定基于用友NC6.5做二次开发,这个光荣而艰巨的“开荒”任务就落到了我头上。说实话,虽然经验不少,但每次面对这种大型ERP系统的全新部署,心里还是会有点打鼓,毕竟一步错可能就得折腾好几天。网上关于NC6.5的安装教程不少,但大多是基于Oracle数据库的,而我们公司技术栈更偏向微软系,所以这次我决定全程使用SQL Server 2008 R2来搭建。这篇文章,我就把我从零开始,踩了无数坑,最终成功部署NC6.5的全过程,掰开了揉碎了分享给大家。目标就一个:让你照着做,也能一次成功,避开我走过的所有弯路。

部署NC6.5,第一步不是急着双击安装包,而是要把地基打牢。这个“地基”就是你的服务器环境。我强烈建议你准备一台干净的Windows Server 2008 R2或Windows 7/10专业版以上的64位操作系统虚拟机或物理机。为什么强调干净?因为NC6.5对运行环境要求比较苛刻,尤其是路径和权限,如果系统里装了一堆乱七八糟的软件,很容易出现各种灵异问题。内存最好给到8GB以上,CPU核心数也别太少,毕竟后面要跑应用服务器和数据库。硬盘空间预留个100GB比较稳妥,因为安装文件、数据库文件、日志文件加起来也不小。

接下来是软件“三件套”:JDK、SQL Server和NC6.5安装包。JDK是NC6.5运行的心脏,必须用1.7版本(也就是JDK 7),千万别用更高的版本,否则服务根本启动不起来。你可以去Oracle官网找历史版本下载,安装路径要牢记一个铁律:绝对不要有中文和空格!我图省事第一次装在了“C:\Program Files\Java”里,结果后面启动服务时疯狂报错,排查了半天才找到原因。后来我统一改成了“C:\Java\jdk1.7.0_80”这种纯英文、无空格的路径,一劳永逸。安装完JDK,记得配置系统环境变量JAVA_HOME,指向你的JDK安装目录,并把%JAVA_HOME%\bin添加到Path变量里,在命令行里输入java -version能正确显示版本信息才算成功。

数据库方面,我用的SQL Server 2008 R2企业版,其他如2008、2012等版本理论上也支持,但建议用R2及以上,稳定性更好。安装SQL Server时,身份验证模式记得选择“混合模式(SQL Server身份验证和Windows身份验证)”,并给sa账户设置一个强密码,这个密码后面配置数据源时会用到。安装过程比较常规,这里就不赘述了。最后是主角——NC6.5的安装包,这个通常由用友的实施顾问或从官方渠道获取,确保其完整性即可。

2. 数据库的特殊配置:为NC6.5量身定做表空间

很多朋友觉得,在SQL Server里为NC6.5创建数据库,不就是右键“新建数据库”完事了吗?如果你真这么做了,那恭喜你,已经踩进了第一个大坑。NC6.5对数据库的文件组和文件有非常特定的要求,这是为了优化其海量数据的存储和查询性能。直接使用默认配置,初期可能没问题,但随着数据量增长,性能瓶颈和运维复杂度会让你头疼不已。所以,我们必须按照NC6.5的“喜好”,手动创建多文件组和数据文件。

打开SQL Server Management Studio,连接上你的数据库实例。首先,我们不是直接创建数据库,而是要先规划好文件组。在对象资源管理器中,右键点击“数据库”文件夹,选择“新建数据库”。在弹出的窗口中,给数据库起个名字,比如就叫nc65关键步骤来了:切换到“文件组”页。在这里,我们需要点击“添加”按钮,依次创建6个新的文件组,它们的名字是固定的,必须严格按照以下名称来:

  • nnc_data01
  • nnc_data02
  • nnc_data03
  • nnc_index01
  • nnc_index02
  • nnc_index03

你可以这样理解:nnc_data开头的三个文件组是用来存放实际业务数据的,而nnc_index开头的三个文件组则是专门存放数据库索引的。这种物理上的分离,能大幅提升查询效率。添加完这6个文件组后,先别急着点确定,我们还要为每个文件组分配至少一个数据文件。

现在,切换到“常规”页面的下半部分,也就是“数据库文件”的网格里。你会看到一个默认的主数据文件(nc65.mdf)和日志文件(nc65_log.ldf)。我们需要修改主文件,并新增多个文件。首先,点击nc65那一行,将其“文件组”从默认的PRIMARY修改为nnc_data01。这意味着主数据文件将归属于第一个数据文件组。接着,我们点击“添加”按钮,来创建剩下的文件。

我建议你按照下面的表格来创建和配置,这样最清晰:

逻辑名称文件类型文件组初始大小自动增长
nc65行数据nnc_data01500 MB按100 MB增长,不限制
nc65_data02行数据nnc_data02500 MB按100 MB增长,不限制
nc65_data03行数据nnc_data03500 MB按100 MB增长,不限制
nc65_index01行数据nnc_index01200 MB按50 MB增长,不限制
nc65_index02行数据nnc_index02200 MB按50 MB增长,不限制
nc65_index03行数据nnc_index03200 MB按50 MB增长,不限制
nc65_log日志不适用500 MB按10%增长,限制到2048 GB

注意,所有数据文件的物理路径,最好指定到一个有足够空间的独立磁盘或分区,不要都挤在C盘。比如可以放在D:\SQLData\目录下。全部配置完成后,点击“确定”,SQL Server就会开始创建这个符合NC6.5规范的数据库了。这个过程可能需要一两分钟。完成后,在对象资源管理器中刷新一下,就能看到崭新的nc65数据库了。右键点击它,选择“属性”,在“文件组”和“文件”页面里核对一下,确保6个文件组和对应的7个文件(1个日志+6个数据)都正确无误。至此,数据库这个“仓库”我们就按照最高标准建好了,只等NC6.5这个“管家”入驻了。

3. NC6.5安装与初始配置:避开那些“一闪而过”的坑

数据库准备好后,终于可以请出主角NC6.5了。找到你的安装包,解压到一个没有中文、没有空格的目录下,比如D:\NC65_Install。进入该目录,找到并双击运行setup.bat这个安装引导程序。如果系统弹出用户账户控制(UAC)提示,请务必选择“是”,给予管理员权限。安装界面启动后,首先是一个语言选择,直接中文简体下一步。接下来会显示许可协议,勾选“我接受许可协议中的条款”,继续下一步。

这时会进入一个非常关键的界面:“选择安装的产品”。这里千万别一股脑全选,我们是为二次开发搭建环境,只需要安装最核心的服务器组件。务必勾选“UAP Server”(这是NC的核心应用服务器)和“智能客户端应用平台”。其他如“企业建模工具”、“报表服务器”等,除非你的开发需求明确涉及,否则可以先不装,以后有需要再通过修改安装的方式添加。保持环境纯净能减少很多不必要的麻烦。选好后点击下一步。

接下来是设置安装目录,也就是NCHome。这是整个NC6.5系统的根目录,所有程序文件、配置文件、日志都会放在这里。请再次默念我们的铁律:路径不能有中文和空格!默认路径通常是C:\yonyou\home,我个人习惯把它改到非系统盘,比如D:\yonyou\home。确认路径无误后,点击下一步,安装程序就会开始复制文件。这个过程视机器性能而定,一般需要10到20分钟。安装快结束时,会弹出一个选项框,询问你是否“继续选择应用服务器”。这里一定要勾选上!这样安装程序结束后会自动启动系统配置工具(SysConfig),这是我们接下来配置的重中之重。如果你不小心关掉了,也没关系,可以手动到NCHome\bin目录下双击SysConfig.bat来启动它。

系统配置工具的界面可能第一眼看上去有点复杂,但别慌,我们一步一步来。首先映入眼帘的是“服务器信息配置”。这里主要填写你的服务器标识和地址。“服务器标识”可以自定义一个名字,比如NC65_DEV。“本机IP地址”如果你的服务器只有一块网卡,一般会自动识别,如果是多网卡或者有虚拟网卡,务必在下拉框里选择那个用于内部通信的真实IP地址,不要选127.0.0.1或虚拟IP,否则客户端可能连不上。“端口号”保持默认的80即可,除非80端口被其他程序(如IIS)占用了。

配置完服务器信息,点击顶部的“数据源”标签页,这才是核心中的核心。首先在“数据库类型”里选择“SQL Server”。然后点击右下角的“读取”按钮,这时配置工具会尝试连接你本机的SQL Server实例。连接成功后,下方会列出已有的数据库。找到我们刚才精心创建的nc65数据库,选中它。然后点击“添加”按钮,这时会弹出一个数据源配置窗口。你需要填写以下几项关键信息:

  • 数据源名称:一般就用nc65
  • 数据库类型:已自动识别为SQL Server。
  • 数据库实例名:如果是默认实例,就写你的机器名或IP;如果是命名实例,则写机器名\实例名
  • 数据库名nc65
  • 用户名sa(或者你专门为NC创建的一个具有dbowner权限的SQL账号)。
  • 密码:填写对应用户的密码。

填好后点击“确定”,系统可能会提示有些信息不完整,它会自动补全,再次确认即可。这样,一个指向nc65数据库的数据源就配置好了。接着,我们还需要配置一个“安全数据源”,步骤和上面一模一样,再点一次“读取”,选中nc65数据库,再点“添加”,名称可以叫nc65_security,其他信息相同。这个安全数据源用于NC系统的权限认证等安全模块。至于旁边的“文件服务器”配置,在单机部署或初级开发环境下,可以先不用管它,直接留空或默认,这不会影响核心服务的启动。

4. 部署EJB与启动服务:见证成果的关键一步

所有配置检查无误后,我们来到了最后也是最激动人心的一步:部署EJB。在系统配置工具(SysConfig)的界面,确保“数据源”和“安全数据源”都显示为绿色对勾的已配置状态。然后,大胆地点击工具栏上的“部署EJB”按钮。点击后,下方日志窗口会开始滚动输出大量的部署信息。这个过程可能会持续5到15分钟,期间请不要进行任何操作,更不要关闭窗口。你会看到它依次初始化数据源、创建表、部署各种业务模块的EJB组件。如果一切顺利,最终日志会停留在类似“EJB部署成功”或“服务器启动完成”的信息上。

部署完成后,你可以点击“退出”按钮关闭系统配置工具。这时,它很可能会弹出一个警告,提示“文件服务器未配置”。别紧张,直接点“确定”或“忽略”退出即可。正如前面所说,在基础开发环境中,文件服务器不是必须项,不会阻碍我们启动核心服务。

现在,让我们去启动NC6.5的应用服务器。进入你的NCHome目录(比如D:\yonyou\home),找到startServer.bat这个文件。很多新手(包括我第一次)会直接双击它,然后发现命令行窗口一闪而过,什么都没发生。这就是最经典的“坑”。不要急,这是因为启动脚本在遇到错误(比如环境变量不对、JDK路径有空格)时会直接退出。正确的打开方式是:按住Shift键,同时右键点击startServer.bat文件,选择“在此处打开命令窗口”或“打开PowerShell窗口”。这样,命令行窗口会保持打开状态,任何错误信息都会显示出来。

在打开的命令行窗口中,直接输入startServer.bat并回车。这时,你会看到真实的启动日志。如果启动失败,最常见的错误就是“JAVA_HOME”找不到或者路径包含非法字符。请根据错误提示,回头检查你的JDK安装路径和环境变量。另一个常见错误是端口被占用,如果80端口被占用,你需要回到SysConfig里修改服务器端口(比如改成8080),然后重新部署EJB。当你在命令行里看到服务器初始化完成,最后几行出现“Server startup in xxxxx ms”这样的字样时,恭喜你,NC6.5的应用服务器已经成功在后台运行了!

服务启动后,我们就可以尝试访问了。打开浏览器,在地址栏输入http://你的服务器IP:端口。例如,如果你的IP是192.168.1.100,端口是80,就输入http://192.168.1.100。如果配置正确,你会看到用友NC的登录页面。不过,我更推荐使用客户端进行管理,体验更好。你可以在其他电脑上安装NC的“智能客户端”,安装时服务器地址就填你刚才配置的IP和端口,然后就可以用默认账号(如管理员)登录了。第一次登录可能会比较慢,因为要加载元数据,请耐心等待。当登录成功,看到NC6.5的主界面时,那一刻的成就感,足以抵消之前所有踩坑的疲惫。整个从零到一的部署实战,到这里就基本圆满完成了。记住,耐心和仔细是成功的关键,尤其是路径和配置信息,一个字符都不能错。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/30 11:38:50

SonarLint+SonarQube组合拳实战:用Gradle脚本实现Android项目自动化代码审查

SonarLintSonarQube组合拳实战:用Gradle脚本实现Android项目自动化代码审查 在团队协作开发Android应用时,代码质量的一致性是个老生常谈却又时常被忽视的问题。每个开发者都有自己的编码习惯,偶尔的疏忽或对规范理解的不同,都可能…

作者头像 李华
网站建设 2026/8/30 11:39:08

PyFluent后处理实战:从数据文件到专业可视化图表

1. 为什么你需要PyFluent后处理自动化? 如果你和我一样,是个经常和Fluent打交道的工程师,肯定经历过这样的场景:项目评审会前半小时,老板突然说,“把那个温度云图换个配色,再把出口截面的速度分…

作者头像 李华
网站建设 2026/8/30 11:38:24

NIFI实战:基于时间戳的MySQL增量数据同步方案

1. 为什么选择基于时间戳的增量同步? 在数据同步这个老生常谈的话题里,全量同步就像搬家时把所有家当一股脑儿全搬走,简单粗暴但效率低下,尤其是当你的“家当”是TB级别的数据时,每次搬动都耗时耗力。而增量同步则聪明…

作者头像 李华
网站建设 2026/7/14 17:16:17

别再瞎画类图了!3个真实案例解析建模中的逻辑陷阱

别再画“假”类图了:三个真实案例,拆解建模中的逻辑陷阱与破局之道 每次看到那些线条规整、方框林立,却让人一头雾水的UML类图,你是不是也曾在心里默默吐槽:“这图到底想表达什么?” 我们花费大量时间绘制模…

作者头像 李华
网站建设 2026/7/14 17:16:19

智能客服升级指南:用影刀RPA自动处理重复咨询(含避坑技巧)

智能客服升级指南:用影刀RPA自动处理重复咨询(含避坑技巧) 你是否也经历过这样的场景?客服团队每天被海量的“订单到哪了”、“怎么退货”、“密码忘了怎么办”这类重复性问题淹没,员工疲惫不堪,响应速度却…

作者头像 李华