信息技术应用创新,旨在实现信息技术领域的自主可控,保障国家信息安全。为了推进国产化进程,先期选取某网站项目,实践了基于麒麟平台的迁移验证,在各技术栈迁移流程方法、性能调优、典型问题等方面,做了大量的探索与尝试。
本文中提到的网站项目为SpringBoot网站项目,使用了MySQL数据库,迁移目标环境为:中创AS服务器、瀚高数据库
本文在国产信创软硬件环境中测试验证了项目的迁移流程,由于国产信创环境软硬件环境配置复杂,本文仅供参考,请匆照搬
系统迁移前准备工作
1. 环境准备
信创服务器软硬件环境配置:
1.1 硬件配置:
CPU: x核以上
内存:xxG以上
硬盘:xxxG以上
1.2软件环境:
操作系统:银河麒麟V10(Linux version 4.19.90-xxx)
中间件:中创AS服务器(版本:http://V10.0.xxx)
数据库:瀚高安全版数据库系统http://V4.xxx,aarch64平台
2.实施步骤
迁移前检查服务器环境配置,确认符合迁移实施标准
2.1 服务器运行环境配置
1.JDK升级
项目迁移为升级JDK版本为JDK1.8
目前系统中配置的 jdk 为麒麟系统自带的 openJDK 中的 jre(Java运行时),是定制版本的jdk,与标准版本的openJDK中的jre有区别
根据中创AS中间件官方文档说明,该中间件支持JDK1.8。
为确保最大兼容性,需要对系统中的jdk版本做出变更:卸载系统自带的 openJDK,安装JDK1.8
2.中创AS中间件
提前准备好瀚高数据库jdbc驱动程序(版本V4)
2.2 数据库迁移
由于对数据库做跨平台、跨数据库迁移,需要对数据库中的数据表字段格式、数据表数据格式进行转换处理
迁移流程:
1.备份数据库,记录备份时的日期时间
2.在目标数据库服务器中,建立新数据库(数据库名暂定为db_xxx),具体参数配置根据实际情况而定
3.使用数据库工具,将原数据库数据,传输至新数据库中
4.对传到至新数据库中的数据表格式、数据表数据进行转换处理
(1).对数据表格式进行处理,对部分表字段类型进行转换处理
(2).对部分表的数据记录进行转换处理
5.较验新数据库与原数据库的记录的完整性
(1).比对数据库各表、各字段是否完整
(2).比对数据库各表数据记录条数、数据是否完整
6.使用新数据库查询工具,随机查询数据,确保查询结果符合预期
2.3 中创AS中间件基本配置
网站做跨Web服务器迁移,需要对Web服务器中间件做各方面配置,流程如下:
1.确定要建立的网站实例配置,在中创AS管理页,设置配置文件名称,设置相关参数(设置端口号、配置jvm参数、配置虚拟服务器等)并保存
2.jdbc数据源配置
(1)将提前准备好的瀚高数据库驱动程序(步骤2.1提到的驱动程序),放入中创AS服务器网站目录的lib目录下
(2)配置jdbc连接池,设置名称,驱动类别为javax.sql.driver,数据库类型选择highgo(瀚高数据库),设置好数据库连接参数,并测试连接且屏通成功
(3)配置jdbc数据源,设置名称,数据源选择上一步配置的jdbc连接池名称
3.建立网站项目实例,设置实例名称,配置相关参数(配置实例参数等),指定网站项目目录(或者建立新目录)并放入测试页,尝试启动该实例。注意,此处可以查看网站的访问地址等
4.建立网站项目应用,设置应用名称,配置相关参数,实例选择上一步配置的网站实例,并尝试启动,如果启动成功,则尝试通过上一步提到的访问地址,测试测试页面访问是否正常
5.确定上述流程配置正确、测试页访问正常后,暂时停止应用、停止网站实例,以便后续流程实施。
注意,以上流程为主要的实施流程,如果某一步骤操作不成功,需逐步排查问题后再继续后续流程,直至整个流程全部完成
2.4 网站数据迁移
网站项目代码需要进行大量的修改,具体修改细节不再此处描述
1.网站数据备份,记录备份的日期时间
2.确定目标服务器中网站目录存在,注意,此目录的路径为 2.3中创中间件配置中的第3条中指定的网站项目目录,将网站数据上传到该目录下,使用war包方式上传后解压
3.移除网站目录 WEB-INF/lib 下的mysql、tomcat等相关jar包
4.修改项目配置文件,设置数据源连接参数、连接池参数、hibernate方言参数等
5.转到中创AS实例管理页,重载网站数据,并尝试启动该实例,确保实例正常启动
6.转到中创AS应用程序管理页,尝试启动该应用并等待应用启动成功
7.通过中创AS实例中配置的地址(或者在中创AS配置文件中查看)访问网站是否成功
注意,以上流程为主要的实施流程,如果某一步骤操作不成功,需逐步排查问题后再继续后续流程,直至整个流程全部完成
2.x 网站项目改造流程
1.源代码部分
(1).注释所有实体类包下的 @Lob注解,该注解在瀚高数据库V4版本中的支持有限
(2).移除pom.xml文件MySQL引用、加入Highgo 4.0版本引用
(3).修改application.properties中的数据库连接配置为瀚高数据库,修改hibernate的方言为PostgreSQLDialect,参考附录三(附录本文不提供)
2.数据库部分
(1).安装瀚高数据库安全版本4.0,配置相关管理员用户等
(2).使用数据库相关工具,将MySQL数据导入至瀚高数据库中,导入成功后请参考附录一、二(附录本文不提供)