用友NC6.5下载安装实录,别踩我走过的这些坑
选版本和找资源时最容易犯的错
我当时准备上NC6.5,先是在网上搜了一圈,光看到一堆不靠谱的下载链接就头疼。有些站标着NC6.5,点进去是个精简版,还缺各种组件。后来摸到用友下载这个站,是因为同事随口提了一句,说里面东西比较全,但下载前你得先搞清楚自己到底要哪个版本。NC6.5有好多补丁包和模块包,比如财务模块、供应链模块,每个包下载时文件名长得像天文数字一样。我一开始没细看,直接点了本页下载按钮,结果解压后发现根本装不上,提示缺个核心数据库脚本,这才回头去查文件命名规则。那个站上的版本列表是按产品线分的,NC6.5下面还有子版本号,比如6021、6023这种小版本,别以为是越新的越好,实际要听项目经理的建议,因为有些BUG在特定小版本里才能稳定用。自己乱挑版本,后期升级会非常麻烦,我身边有人就因为跳了几个小版本,导致历史数据迁移时跑了一周。所以下载前,先确认好你们公司用的数据库是Oracle还是SqlServer,然后去用友下载的NC专区,对照着你的业务需求找对应的模块包。文件包里有时会附带一张txt说明,上面写明了依赖什么版本的中间件和数据库,重点看那个。
下载与安装步骤
拿到安装包后,第一步不是急着双击,而是检查系统环境。我当时的服务器是Windows Server 2012 R2,内存给了32G,CPU是8核,但NC6.5对JDK版本要求很死——必须用1.8.0_151以上的64位版本,低于这个就会在启动中间件时报ClassNotFoundException。先装好JDK,配置好JAVA_HOME和PATH,然后在用友下载站上找到NC6.5的主安装程序。点本页下载按钮后会弹出一个压缩包,大概2G左右,里面包含setup文件夹和一个readme文件。解压时要确保路径没有中文和空格,我朋友就因为解压到D盘下的“新建文件夹”,结果装到一半报路径错误,折腾半天才发现是编码问题。运行setup.exe后,安装向导会让你选择产品类型,一般是选“NC系统”而不是“NC Cloud”,别搞混。然后输入安装目录,我建议放到非系统盘,比如D:\yonyou\NC65,这样以后重装系统不会丢数据。关键一步是配置数据库连接,我第一次用了默认的localhost和1521端口,但实际生产环境用的是集群数据库,得把IP改为数据库服务器的内网地址,端口也要根据实际情况改。如果提示连接失败,先在服务器上用telnet测试数据库端口通不通,很多问题是防火墙拦了。装完后启动中间件,日志里如果出现“NC6.5启动成功”就恭喜你了,但通常第一次启动会很慢,因为要创建表空间,我等了足足15分钟。中间如果程序卡死,别直接重启,去安装目录下的logs文件夹看nc.log,里面会告诉你具体是缺表还是内存不够。
数据库配置和处理报错的那些事
安装完只是第一步,数据库配置才是真正开始踩坑的地方。NC6.5支持Oracle和SQL Server,我用的是Oracle 11g R2。在用友下载站配合同步下载的数据库初始化脚本是nc_ddl_oracle.sql,直接用客户端跑会报错,因为脚本里有些表空间路径是写死的,得先手动创建对应的表空间文件。比如核心数据表空间叫NNC_DATA01,大小建议至少10G,自动扩展设为1G,不然数据量大了以后频繁报空间不足。我一开始图省事,用了默认值,结果一个月后报ORA-01653,只能半夜去重置表空间。还有一点,字符集必须是AL32UTF8,如果是ZHS16GBK,有些字段会存不进去,尤其是单据摘要里带特殊符号时。如果你用的SQL Server,安装前要开启混合模式身份验证,并设置好排序规则为Chinese_PRC_CI_AS。配置完成后启动NC服务,如果卡在“正在初始化系统缓存”超过半小时,八成是数据库连接池配置太小,去apache-tomcat的conf/server.xml里找到资源引用,把maxActive改到200。还有一个常见报错是“ORA-00942: 表或视图不存在”,这是因为NC6.5在启动时用了一套动态建表机制,如果数据库用户权限不是DBA,就要手工赋权。我后来找了网管,让我直接用sysdba重建用户,赋予create session、create table、create sequence等权限,问题才解决。如果嫌麻烦,可以下载站上的“NC6.5快速部署包”,但那个包会清空已有业务数据,测试环境可以用,生产环境千万别乱动。
性能调优和内存设置的个人经验
装好能跑起来是第一步,但真正用起来就得面对卡顿问题。NC6.5是J2EE架构,对JVM堆内存特别敏感。我刚开始用默认的-Xms512m -Xmx1024m,结果多人同时录入单据时,页面直接白屏。后来查了官方文档,建议生产环境至少给中间件分配4G堆内存,但要注意操作系统是32位还是64位——32位最大只能用1.5G左右。我的机器是64位的,所以直接加到-Xms4096m -Xmx8192m,另外把-XX:PermSize改成512m,-XX:MaxPermSize设成1024m,因为NC6.5的类加载机制会导致永久代容易满。调完后还要改中间件的并发参数:在apache-tomcat的bin/catalina.bat里加上-XX:+UseConcMarkSweepGC,这样垃圾回收时不会让系统长时间停顿。数据库那边同样要调,比如Oracle的SGA设成物理内存的一半,PGA设到1G,不然大量报表查询时数据库会卡死。我见过一个案例,同事没调数据库,半夜跑月结,数据库直接挂掉,第二天全公司人对着NC登录界面发呆。如果你在用友下载站找到性能优化指南PDF,那里面提到的JVM参数别直接照搬,要根据你实际的并发用户数微调。我这边30个在线用户时,把-Xmx提到8G就够用,但如果超过50人,得考虑做集群或者增加内存条。
常见错误场景和手动修复技巧
用了一段时间,肯定会碰到各种奇奇怪怪的报错。印象最深的是“单据编码号重复”的问题——明明系统设置了自动编号,但新增凭证时提示“编码0066已存在”。这是因为NC6.5的序号表有时会出bug,比如你在测试环境删过单据,或者用多了数据库备份恢复,导致序号表里的当前值与实际数据不一致。解决方法是去数据库里找到一张叫sm_billcode的表,把对应的最大编号直接update成你要的值。我用Navicat连接Oracle,执行一句update sm_billcode set curvalue = (select max(code) from my_table) where billtype = ‘…’ 就搞定了。还有一次,我替换了某个补丁包后,登录页一直转圈,登录按钮没反应。后来发现是NC6.5升级后需要清理缓存,去安装目录下的work和temp文件夹,把里面东西全删掉,再重启就好了。这种缓存问题特别容易让人误判,有人重装了三次系统才发现。如果你在用友下载站下载的是增量补丁包,安装时千万要按照补丁号顺序安装,不能跳号,否则模块之间依赖关系会乱。我试过反向装补丁,结果财务会计模块直接报错无法打开,只能把补丁文件夹下的bak_开头的备份文件还原。这些修复技巧,站上其实有个FAQ板块,但写的比较隐晦,得自己搜关键词。
多用户并发和数据迁移的坑
公司从用友T6升级到NC6.5时,数据迁移是最崩溃的部分。需要先用导出工具把T6的账套转成XML格式,再通过NC的数据交换平台倒入。但我用的时候,发现有些客户档案的编码带连字符“-”,比如“C-001”,到了NC里就变成乱码。排查几次才发现,XML文件里没对特殊字符做转义,得手动给"<"和"&"加上<和&。还有一个常见问题,就是并发用户超过20个时,合同管理模块里会概率性出现保存失败,提示“乐观锁冲突”。这其实是NC6.5默认的事务隔离级别太低导致的,多用户同时改同一条记录就会触发。解决办法是去中间件的数据库连接池配置里设置defaultTransactionIsolation = 2,也就是读已提交的级别。再有就是升级后,以前的单据审批流经常跑一半卡住,原因是你用了旧版本的审批流程图,新版本对节点属性要求更严格。我后来去下载站找了个“流程修复工具包”,直接把流程XML重新发布一遍才解决。如果你是在做数据迁移,最好先准备一台测试服务器,拿真实数据的副本跑一遍全流程,别直接在生产环境上试,不然出了错连回滚都要好几天。
用友下载站的使用心得和最终建议
用友下载这个站,说实话,资源是真的全,但也真的乱。首页的搜索框,你搜“NC6.5”可能会出来一堆结果,有各种组件包和文档包。最好按产品分类进去找,别用搜索。文件下载前留意一下文件大小和上传日期,有些过期的版本虽然能下,但安装后会有不兼容问题。我建议每次下载后立即核对md5校验码,站上提供了这个功能,但很多人会忽略。有一次我下了个安装包,解压提示损坏,幸亏我有备份习惯,从新下载一遍就好了。实际使用中我发现,站上的技术文档比较老旧,比如安装手册里写的参数配置,和实际安装界面可能不一样,你得结合实际版本灵活调整。如果你是第一次用NC6.5,建议先下一个官方入门教程视频,虽然画质一般,但能少走很多弯路。最后提醒一件事:生产环境千万不要从站上下那种“整合版”安装包,这种东西没有官方数字签名,可能自带了恶意插件或后门。我见过有人贪省事,结果服务器被植入挖矿程序,CPU直接跑满。宁可花时间一个一个模块装,也别图省事走捷径。NC6.5是很稳定的产品,但你的使用体验好坏,取决于安装部署时有没有把基础打牢。