应用迁移与适配技术学习总结

一.应用迁移背景

1.信创背后宏观形势-世界的变革

中国提出“加快形成以国内大循环为主体、国内国际双循环相互促进的新发展格局”。

2.信创背后宏观形势-国内数字化转型

信创是畅通国内大循环、塑造我国在国际大循环中主动地位的关键。从技术体系引进、强化产业基础、加强保障能力等方面着手,促进信创产业在本地落地生根,由点状分散发展到产业集群,从而形成生态集聚,是信创产业发展的必然趋势。

3.国产化历程

XC:信息技术应用创新产业

863计划:1986年3月启动实施的“高技术研究发展计划(863计划)” ,旨在提高我国自主创新能力,坚持战略性、前沿性和前瞻性,以前沿技术研究发展为重点,统筹部署高技术的集成应用和产业化示范,充分发挥高技术引领未来发展的先导作用。

核高基:是对核心电子器件、高端通用芯片及基础软件产品的简称,是2006年国务院发布的《国家中长期科学和技术发展规划纲要(2006-2020年)》中与载人航天、探月工程并列的16个重大科技专项之一。

AK:面向党政的具备安全可靠特性的国产化替代项目,信息技术应用创新的前身。

2016年3月4日,24家专业从事软硬件关键技术研究及应用的国内单位,共同发起成立了一个非营利性社会组织,并将其命名为“信息技术应用创新工作委员会”。

这个委员会简称ITAIC,这就是“信创”这个词的最早由来。工委会成立后不久,全国各地相继又成立了大量的信创产业联盟。这些联盟共同催生了庞大的信息技术应用创新产业,也被称为“信创产业”,简称“信创”。

二.应用系统适配与迁移概览

1.国产芯片的技术发展

分类

X86

ARM

MIPS

Power

Alpha

现在
/趋势

3家公司拥有架构License;
2003年开始有64位服务器版本

软银控股,独立运营的英国公司,只销售和设计License,支撑合作方设计和销售芯片;
2011年发布V8架构,应用于服务器领域

已被AI初创公司Wave Computing收购;后续计划开源,重新发展边缘计算领域

IBM公司拥有,主要用于IBM服务器系统;
通过OpenPower联盟拓展生态

由DEC开发,先被康柏收购后被惠普雪藏

技术
特点

CISC指令集;追求单核能力强;从PC到服务器,后向兼容历史指令集

RISC指令集;
重视低功耗设计;
多核技术路线,追求能效比;

RISC指令集;
小型化、低功耗、嵌入式设备使用较多

RISC指令集;单核能力强;追求极致可靠性;成本较高

RISC处理器中最快的一种,而且它获得了WindowsNT的支持

国内
公司

海光通过AMD合资公司变相得到IP授权;兆芯通过VIA合资公司变相获得IP授权;

华为和飞腾拥有V8架构和永久授权;华芯通从高通获得架构授权,但高通已经退出;

龙芯拥有架构授权

苏州中晟宏芯通过OpenPower联盟获得架构授权,未量产

国产服务器芯片企业中有申威基于该架构研发服务器芯片

优劣势和
前景分析

优势:软件生态好,服务器领域市场占有率高
劣势:指令集后向兼容历史包袱重,实现复杂;芯片面积大,功耗高;价格昂贵

优势:可拥有完整知识产权;
芯片厂商多,已形成生态;技术追求能效比,匹配数据中心发展趋势;劣势:服务器软件生态弱于X86;

服务器领域生态较弱,市场占有率低,影响力逐步减弱

技术及生态由IBM掌控,主要用于金融行业,其它行业应用少

服务器领域生态较弱,市场占有率低,影响力逐步减弱

2.信创云操作系统建设方案

2.1.一云多芯

2.2统一管理异构芯片的虚拟化和裸机等异构资源

2.3消除底层计算资源池的技术差异,实现业务的灵活部署,减少业务适配的复杂度

3.国产操作系统产品类型

操作系统厂家

员工规模

技术路线

CPU兼容性

系统版本

生态体系

麒麟

(银河+中标)

2400+

Ubuntu、Red Hat、openEuler

鲲鹏、飞腾、海光、

龙芯、兆芯、申威

银河麒麟桌面操作系统V10

银河麒麟服务器操作系统V10

统信

2000+

Debian 10、Centos、openEuler

鲲鹏、飞腾、海光、

龙芯、兆芯、申威

统信桌面操作系统V20

统信服务器操作系统V20

4.国产数据库产品类型

数据库产品

OLAP(联机分析处理)

OLTP(联机事务处理)

HTAP(混合事务和分析处理)

人大金仓

Kingbase  AnalyticsDB

KingbaseES

KSOne

神舟通用

神通K-Cuber

神通数据库(openGauss版)

神通数据库管理系统

达梦

 

 

DM8

瀚高

 

HighGo DB

 

南大通用

GBase 8a

GBase 8s

GBase UP

5.应用迁移步骤

6.数据库迁移步骤

三.安装JDK

1.yum安装

新建文件夹

root@hellolinux:/usr/local# mkdir jdk1.8

yum:未找到命令:执行以下命令

sudo apt update

查看JDK版本

输入命令:yum -y list java*

安装JDK1.8

输入命令:yum install -y java-1.8.0-openjdk.x86_64

查看JDK安装成功与否

输入命令:java -version

which java 可以看到jdk安装路径:/usr/bin/java

2.手动安装

新建文件夹(若没有做自动安装)

root@hellolinux:/usr/local# mkdir jdk1.8

2.1 卸载OpenJDK以及相关的Java文件

查看JDK信息,输入命令:java -version
检测JDK安装包,输入命令:rpm -qa | grep java

删除Java相关文件(/usr/bin/java是默认openjdk安装路径)

进入文件夹: cd /usr/bin/java

删除文件: rm -rf /usr/bin/java

2.2 下载JDK

Java Downloads | Oracle

或者 wget https://download.oracle.com/otn/java/jdk/8u381-b09/8c876547113c4e4aab3c868e9e0ec572/jdk-8u381-linux-x64.tar.gz?AuthParam=1691648846_c298186bf77f30043f37b711131c5ae5

2.3安装

# 将压缩包复制到/user/local目录下

# /usr/local是linux系统下的软件安装目录,类似windows系统的Program Files

[root@hecs-403280 ~]# cp jdk-8u381-linux-x64.tar.gz /usr/local

# 解压

root@hellolinux:/data/lfd/soft# tar -zxf jdk-8u401-linux-i586.tar.gz -C /usr/local/jdk1.8

[root@hecs-403280 local]# ls

jdk1.8.0_401

2.4配置环境变量

进入/etc/profile文件:

[root@hecs-403280 jdk1.8.0_381]# pwd

/usr/local/jdk1.8.0_381

[root@hecs-403280 ~]# vim /etc/profile

在文件最后添加如下内容:

# 定义java安装目录变量

export JAVA_HOME=/usr/local/jdk1.8/jdk1.8.0_401  #(自己的安装路径)

# 设置java的classpath,dt.jar为运行时环境类库,tools.jar是一些java工具

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

# 设置java命令环境变量

export PATH=$JAVA_HOME/bin:$PATH

使环境变量立即生效:

[root@hecs-403280 ~]# source /etc/profile

[root@hecs-403280 ~]# java -version

java version "1.8.0_381"

Java(TM) SE Runtime Environment (build 1.8.0_381-b09)

Java HotSpot(TM) 64-Bit Server VM (build 25.381-b09, mixed mode)

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64/jre/bin/java

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

四.安装mysql

参考:麒麟系统—— openKylin 安装mysql_麒麟操作系统安装mysql-CSDN博客

删除原来安装的文件: rm -r mysql

安装mysql:

1 解压

tar -xf mysql-8.3.0-linux-glibc2.28-aarch64.tar.xz -C /usr/local

2 将文件移动到新文件夹(名字短些)

mv mysql-8.3.0-linux-glibc2.28-aarch64 /usr/local/mysql

进入文件夹:

cd mysql

添加组用户:

groupadd mysql

useradd -r -g mysql -s /bin/false mysql

创建文件夹:

mkdir data

给权限:

chown -R mysql:mysql /usr/local/mysql

执行以下命令:

./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize

拿到初始密码:

q6&ak?rwqyxJ

修改配置文件:

sudo vim /etc/my.cnf

填入下面内容:

[mysqld]

character_set_server=utf8

init_connect='SET NAMES utf8'

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

socket=/usr/local/mysql/mysql.sock

lower_case_table_names = 1

bind-address = 0.0.0.0

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/usr/local/mysql/data/mysqld.pid

[client]

socket=/usr/local/mysql/mysql.sock

default-character-set=utf8

拷贝mysql服务文件:

cp ./support-files/mysql.server /etc/init.d/mysqld

cp ./support-files/mysql.server /etc/init.d/mysqld 的作用是将 MySQL 安装包中的启动脚本 mysql.server 复制到系统的初始化脚本目录 /etc/init.d/ 中,并重命名为 mysqld。

编辑以下文件:

sudo vim /etc/init.d/mysqld

注意修改路径:

 basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

lock_file_path="$lockdir/mysql"

设置环境变量:

vim /etc/profile

增加:

export PATH=$PATH:/usr/local/mysql/bin

生效:

source /etc/profile

启动服务:

service mysqld start

service mysqld stop

登录:

mysql -u root -p  输入上面保存的密码

执行:show databases;

报:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

需要用以下语句修改密码:

alter user 'root'@'localhost' identified by 'root123';

DBeaver连接数据库报:

null,  message from server: "Host '10.92.75.3' is not allowed to connect to this MySQL server"

需要执行下面三句:
SELECT host FROM mysql.user WHERE user = 'root';

update user set host = '%' where user = 'root';

flush privileges;

出现Public Key Retrieval is not allowed dbeaver 报错:参考下面地址

DBeaver连接时报错:Public Key Retrieval is not allowed Public Key Retrieval is not allowed_dbeaver public key retrieval is not allowed public-CSDN博客

五.总结

应用迁移与适配技术是一个重要的领域,涉及将应用程序从一个平台或环境迁移到另一个平台或环境,并确保其在新环境中的有效运行。以下是我学习这方面技术时的心得总结:

1. 理解不同平台和环境的差异:在进行应用迁移和适配之前,必须深入了解目标平台或环境与原始环境之间的差异。这可能涉及到硬件架构、操作系统、编程语言、库和框架等方面的差异。

2. 评估迁移的可行性:在决定是否进行应用迁移之前,需要进行可行性评估。这包括评估迁移的成本、风险、时间和资源投入,以及在新环境中应用程序的性能和功能是否能够得到保持或提升。

3. 选择合适的迁移策略:根据应用程序的特点和目标环境的要求,选择合适的迁移策略。这可能包括重新编译、重新构建、重写或使用兼容性层等不同的方法。

4. 进行适当的代码修改和优化:在进行应用程序迁移时,可能需要对代码进行修改和优化,以解决在新环境中可能出现的兼容性和性能问题。这可能涉及到调整配置选项、更新依赖项、优化算法和数据结构等方面。

5. 测试和验证:在完成应用迁移后,必须进行全面的测试和验证,确保应用程序在新环境中的正确性、稳定性和性能。这包括单元测试、集成测试、性能测试和用户验收测试等不同层次的测试。

6. 持续监控和优化:应用迁移只是一个阶段性的工作,随着时间的推移和环境的变化,可能需要持续监控和优化应用程序,以确保其在新环境中持续有效地运行。

通过学习应用迁移与适配技术,我不仅深入了解了应用程序迁移的原理和方法,还掌握了如何应对不同挑战和问题。这对我未来在软件开发和系统维护方面的工作都将有很大帮助。

  • 18
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值