信创版干部人事档案管理系统的安装与使用
这些年单位里搞信创替代,最让我头疼的其实不是操作系统本身,而是那堆跑在Windows上的业务系统。尤其是干部人事档案管理系统,数据敏感、流程严格、操作权限又多,稍微有点闪失就麻烦。最近我们总算把整套系统迁移到了信创环境,用的麒麟V10服务器版加国产数据库,过程中踩了不少坑,也积累了一些经验。我把从环境准备到系统上线、再到日常使用中常见的几个问题完整梳理一遍,希望对正在做同类迁移的运维或者档案管理员有点用。
这套系统说白了就是把传统的纸质人事档案电子化——从人员基本信息、履历材料、考核材料,到学历学位、培训经历、任免调动、薪酬待遇等,全部归档到数据库里,再按权限开放给组织人事部门查询、统计、借阅审批。信创版要解决的不仅是功能对等,更重要的是跑在国产CPU、国产操作系统、国产数据库之上,从硬件到软件整个链路都自主可控。
1. 项目背景与部署思路
1.1 为什么档案管理系统要优先迁移信创
很多单位做信创迁移时,通常会先拿OA、邮件这种非核心系统练手,但干部人事档案系统往往排在后面,原因很简单——高风险、高要求、高敏感。数据一旦出问题,不是重启能解决的。
但从另一个角度看,这类系统恰恰是最该先迁的。档案管理系统的数据格式相对标准化,字段固定、流程固定,不像OA那样天天有新需求。而且它是典型的内网系统,用户量不大,并发压力低,非常适合作为信创落地的样板工程。我们用下来最大的感受是:只要基础环境稳定,应用层面其实比想象中迁移起来省事。
从技术选型上说,信创环境下的国产化栈目前已经成熟到足够支撑这类管理系统了。芯片层面有鲲鹏、飞腾、龙芯、海光等选择,操作系统主流是麒麟和统信UOS,数据库可以用达梦、人大金仓、GaussDB等,中间件有东方通TongWeb、金蝶天燕等。我们这次选的是麒麟V10 + 鲲鹏920 + 达梦8 + 东方通TongWeb的组合,整体跑下来性能和稳定性都不错。
1.2 整体架构与部署流程设计
整个部署架构其实不复杂,一台服务器就够了。生产环境建议用两台做双机热备,数据库放到单独的主机上。我们测试阶段是一台服务器同时跑Web中间件和数据库,资源也够用,因为档案系统的访问量确实不高,关键是数据处理时别卡顿。
部署流程大体分五步走:
- 系统环境准备:操作系统安装、网络配置、时钟同步、安全加固
- 基础软件安装:JDK、数据库、中间件
- 应用部署:上传应用包、配置数据源、初始化数据库脚本
- 数据迁移:把旧系统的历史数据导入新系统,做数据清洗和目录建库
- 联调测试:功能验证、权限验证、归档流程测试
刚开始我们想跳过流程直接装,结果后面在权限配置上反复折腾。建议还是按部就班来,每一步做完都做个简单验证,后面出了问题也好定位。
2. 环境准备与基础软件安装
2.1 服务器硬件与操作系统选型
信创服务器现在可选的范围挺广,不管是华为泰山、浪潮、中科曙光还是其他品牌的机器,核心问题就一个:CPU架构和操作系统要匹配好。比如鲲鹏920是ARM架构,飞腾也是ARM,龙芯是LoongArch,海光则是x86架构。选操作系统时一定要确认对应的版本是否支持你这个CPU。
我们用的是麒麟V10服务器版。麒麟系统分桌面版和服务器版,千万别装混了。服务器版有两个内核分支:一个是4.19的内核,兼容性更好;另一个是5.10的内核,对较新的硬件支持更好。如果是鲲鹏920这种新平台,建议直接用5.10内核的版本。判断方法很简单,安装时可以在启动菜单里看到选择,也可以进系统后用uname -r查看。
注意:安装系统时选择语言和时区,务必选"亚洲/上海",否则后面日志时间、档案借阅时间戳全对不上,排查起来很头疼。
装完系统第一步是配置静态IP,因为服务器IP变了会导致配置的数据库连接、中间件地址全部失效。麒麟系统改IP可以编辑/etc/sysconfig/network-scripts/ifcfg-ensxxx文件,把BOOTPROTO="static",然后添加IPADDR、NETMASK、GATEWAY、DNS。改完重启网络服务:
nmcli con reload nmcli con up ensxxx2.2 麒麟系统的初始化配置四件套
服务器安装完后,有四件事必须做:
第一件事:配好软件源。很多人在麒麟上安装软件失败,就是因为默认源没配好或者连不上。麒麟V10自带的源如果用的是内网环境,需要挂载安装光盘或者配置本地源。一个常见做法是把系统ISO挂载到/mnt/cdrom,然后新建repo文件指向它:
mount /dev/cdrom /mnt/cdrom cat > /etc/yum.repos.d/local.repo << 'EOF' [local] name=local baseurl=file:///mnt/cdrom enabled=1 gpgcheck=0 EOF yum clean all && yum makecache第二件事:关闭防火墙或者放行对应端口。档案系统涉及Web访问、数据库连接等,默认防火墙策略会拦截。如果你只是内网测试,可以直接停掉防火墙:
systemctl stop firewalld systemctl disable firewalld sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config生产环境别这么干,按端口精细化放行。Web端口通常是8080或8443,数据库端口达梦默认是5236,把这些端口加入白名单即可。
第三件事:同步服务器时间。档案系统的时间戳非常重要,借阅记录、审核时间、材料归档时间,差一分钟都可能造成业务问题。如果内网有NTP服务器,配置一下:
yum install -y chrony cat > /etc/chrony.conf << 'EOF' server 192.168.1.10 iburst EOF systemctl enable chronyd --now chronyc sources -v第四件事:配置主机名和hosts文件。后面装数据库和中间件时,大概率要通过主机名互相访问,先把/etc/hosts配好能省很多麻烦。
2.3 JDK与国产中间件的安装配置
档案管理系统大多数基于Java开发,所以JDK是必须的。信创环境下,强烈建议使用配套的国产化OpenJDK版本,比如毕昇JDK(华为)、麒麟自带的OpenJDK。直接安装麒麟源里的OpenJDK就行,或者解压官方大版本JDK到/usr/local/java,然后配环境变量:
export JAVA_HOME=/usr/local/java/jdk-17.0.2 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar配置完之后在/etc/profile里追加就行,记得source /etc/profile生效。验证是否装好,用java -version看输出,如果是openjdk version "17.0.2" 这种,就说明OK。
中间件方面,东方通TongWeb(TongWeb 7.0是基于Java EE规范的应用服务器)在国企和党政机关用得比较多,对国产化环境适配也做得比较好。它本质上跟Tomcat类似,但多了一些管理和集群功能,而且通过了等保和密评适配,安全策略更全。解压后,启动脚本在bin/startserver.sh:
cd /opt/tongweb/bin ./startserver.sh默认端口是8080。启动完访问http://IP:8080/,看到管理控制台页面就表示中间件起来了。
3. 档案管理系统的部署与初始化
3.1 应用包结构分析与上传
档案管理系统一般交付物就是一个WAR包,或者一个解压后的业务目录。我们拿到手的是一个名字类似filearchive-web.war的包,内部结构无非是静态资源、WEB-INF/classes下的配置文件、lib目录下的依赖jar包。部署前先把结构看明白,尤其是配置文件,这样后面改数据源连接才能找到地方。
上传WAR包到TongWeb的自动部署目录,通常是/opt/tongweb/webapps,然后重启中间件让它自动解压。或者直接用TongWeb管理控制台上传,操作界面类似Tomcat Manager。我习惯手动丢目录里,因为WAR包解压后能直观看到配置文件在哪。
上传完记得检查解压后的WEB-INF/classes/application.properties或者jdbc.properties,所有的数据源、Redis连接、文件存储路径配置都在这里。
3.2 达梦数据库的初始化与脚本导入
档案系统使用的是达梦8数据库。达梦对Oracle兼容性做得好一些,SQL语法上也比较接近Oracle。新装达梦之后,先初始化实例:
cd /opt/dmdbms/bin ./dminit PATH=/opt/dmdbms/data DB_NAME=ARCHIVE INSTANCE_NAME=DMSERVER PORT_NUM=5236然后用./dmserver /opt/dmdbms/data/DAMENG/dm.ini启动数据库服务。达梦默认用户名密码是SYSDBA/SYSDBA,登进去之后,先建表空间和用户:
CREATE TABLESPACE TS_ARCHIVE DATAFILE '/opt/dmdbms/data/TS_ARCHIVE.DBF' SIZE 1024 AUTOEXTEND ON NEXT 100 MAXSIZE 20480; CREATE USER ARCHIVE IDENTIFIED BY "Archive@2024" DEFAULT TABLESPACE TS_ARCHIVE; GRANT DBA TO ARCHIVE;对系统初始化脚本,比较稳妥的做法是执行全库脚本,也就是建表、建索引、初始化字典数据一起跑。一般交付方会提供一个init.sql或者install.sql,直接执行:
./disql ARCHIVE/Archive@2024@localhost:5236 -e "set CHAR_CODE=UTF8" -f /home/migration/init.sql提醒一下:执行脚本之前,先检查字符集。如果数据库建库时不是UTF8,后面中文全部乱码,特别是档案材料里的姓名和单位名称乱码,基本等于整个库废了。检查方式很简单,执行
SELECT * FROM v$parameter WHERE name LIKE '%CHAR%';或者初始化时指定CHARSET=1(1代表UTF-8)。
3.3 数据源配置与中间件联调
数据库初始化完成后,回到应用配置。修改application.properties中数据源相关配置:
spring.datasource.url=jdbc:dm://127.0.0.1:5236/ARCHIVE spring.datasource.username=ARCHIVE spring.datasource.password=Archive@2024 spring.datasource.driver-class-name=dm.jdbc.driver.DmDriver改完之后重启TongWeb,让应用重新加载配置。查看启动日志,看到类似Started FileArchiveApplication这样的信息,说明应用启动成功。这时访问http://IP:8080/filearchive-web/应该能看到登录页面。
登录页面能出来,但登录报错,大概率是应用连不上数据库。这个时候不要慌,逐步排查:
- 先用达梦客户端连一下数据库:
disql ARCHIVE/Archive@2024@127.0.0.1:5236,能连上说明数据库和用户没问题 - 再看中间件日志里报的异常栈,是网络不通、账号密码错,还是驱动类找不到
- 如果是驱动找不到,把达梦的JDBC驱动jar包(DmJdbcDriver18.jar)放到
WEB-INF/lib下重启
这个环节我卡过一次,原因是应用自带的是MySQL驱动,整个换成达梦驱动,光改连接串没改driver-class-name,折腾了半天才反应过来。
4. 人事档案数据迁移与目录建库
4.1 档案分类与代码表初始化
系统能登录后,先别急着导数据。先把基础代码表搞定,比如档案分类代码(十大类)、人员状态代码(在职、离休、退休、离职等)、材料类型代码(履历材料、自传材料、考核考察材料、学历学位材料、政审材料、党团材料、奖励材料、违纪违法材料、工资待遇材料、其他材料)。
这些代码表一般都在初始化SQL里预置好了,但为了保险起见,我建议切到管理端,把每个代码表都打开看一眼。特别是十大类代码,因为后续档案目录排序、材料归类全靠它。如果分类代码对不上,导进去的数据在目录树里显示就是乱的。
代码表验证方法也很简单,用档案编号去反查分类名称,如果对应关系不对,手动在代码维护页面改一下即可。这一步感觉枯燥,但它是整个档案系统数据呈现的基础。
4.2 历史数据清洗与批量导入
接下来就是最棘手的历史数据迁移。旧系统可能是十几年前的FoxPro单机版,也可能是某个老式B/S系统。数据导出的方式各不相同,但最终要做的事是一样的:清洗、匹配、导入。
我们的做法是把旧数据先导成Excel,然后在Excel里做预处理:
- 人员基本信息:确保姓名字段不要有空格、身份证号18位、出生日期格式统一为yyyy-MM-dd
- 单位名称:使用标准全称,避免同一个单位存在"区委组织部""区组织部"两种写法
- 材料分类:每条材料记录必须标注分类代码,否则导入完成后材料都跑到"其他"类下面
导入方式也有讲究。如果系统自带导入功能,直接在管理后台导Excel就行;如果没有,就得走数据库脚本。我们用的环境既有Excel导入模板,也能用SQL脚本批量处理。我的建议是先用小批量测试数据试一次,比如导5个人,看看效果,确认没问题再全量执行。
批量导入SQL脚本的一个思路是先把Excel转成CSV,然后用达梦的dmfldr工具快