国产化环境下开发流程

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 人大金仓数据库、中科方德操作系统

前言


随着我国计算机技术的发展,国产服务器、数据库产品也逐渐趋于成熟,作为政府行业,采用国内自主研发的服务器和数据库意义重大。北京市委已经率先采用国产化系统,相信不久的未来,政府行业将逐渐普及国产化系统和数据库。


然而,对于熟悉了Linux、MySQL或者Oracle的开发者或者运维来说,可能并不能很快的上手国产环境。而且关于国产系统和数据库的生态圈还不完善,有一些问题网上也查不到。本片文章就国内比较成熟的操作系统和数据库展开说明,以快速了解和上手国产化开发,并减少大家后续在国产化开发中的困难。下面会介绍中科方德操作系统人大金仓数据库


正文


中科方德操作系统

1.png

界面大概如上图,国产化环境开发的难点,一方面就是在于这个操作系统


整体命令行操作类似CentOS。为了安全起见,该系统做了很多方面的限制:


  • 由于禁止接入外网,所以安装部署只能通过RPM包或者Docker镜像的方式进行安装
  • 该系统需要通过光盘刻录的方式,进行上传RPM或者Docker镜像,为了信息安全,也就是只能往机器上拷贝文件而不能把文件拷贝下来
  • 不能通过命令后直接安装RPM软件,必须要通过类似软件管理图形化界面的方式进行安装,安装前必须填写软件的签名信息(比如联系人电话等信息、软件安装包本身的信息)
  • 不能直接在机器上执行直接拷贝进来的外来可执行文件。例如通过光盘拷贝的shell脚本、以及免安装的软件、以及通过编译安装的软件等都没有权限执行
  • 安装软件(例如数据库)等过程会缺少一些依赖库(C语言、C++的)。这些库文件一般也需要自行下载RPM包进行光盘刻录
  • Docker必须使用厂商提供的安装软件,制作镜像推荐使用CentOS8,否者启动容器会没有权限


中科方德最佳实践


对于环境的部署,直接通过RPM或者Docker镜像的方式


对于 MySQL、Redis、Nginx、Zookeeper、ElasticSearch 等软件、官网有提供对应的RPM包,推荐直接通过软件管理器RPM的方式进行安装


找不到RPM包,推荐使用Docker部署


Docker部署注意事项


需要找一台CentOS8系统的服务器,用来制作镜像


制作好的镜像,通过 docker save命令保存,并通过光盘刻录到中科方德机器,再通过load命令安装镜像

2.png

以上就是中科方德操作系统需要注意的点,剩下的就是要求使用者熟练掌握Linux


人大金仓数据库


人大金仓(KingbaseES)是北京人大金仓信息技术股份有限公司自主研制开发的关系型数据库。下面重点介绍一下人大金仓的常用的运维和开发技巧


1. 安装人大金仓


1.1. 人大金仓安装必须通过普通用户安装,这里创建了一个kingbase用户


useradd kingbase
passwd kingbase


1.2. 使用kingbase用户上传安装包,并进行解压


tar -zxvf KingbaseES_V008R003C002B0140_Lin64_install.tar.gz


1.3 执行setup.sh进行安装

3.png

1.4 选择安装集


默认是完全安装,即server和client全部安装


1.5 选择授权文件


安装过程必须指定厂商提供的授权文件,当然也可以自行到官网下载一个月试用版


1.6 选择安装文件夹


这里注意推荐使用默认文件夹,因为后面厂商提供的压测工具默认指定的是默认文件夹


1.7 大小写敏感


一般选择大小写不敏感,因为我们已有系统采用的数据大多是大小写不敏感的,根据自己目前的数据库进行选择


安装后的目录如下

4.png

进入Server文件夹,执行root.sh脚本即可启动数据库


2. 人大金仓操作


2.1. 启动与停止


systemctl start kingbase8d
systemctl stop kingbase8d


2.2. 登录


进入Server/bin目录下

5.png

执行如下命令登录


  • 其中SYSTEM为用户名
  • 密码为123456
  • TEST为数据库名


./ksql -USYSTEM-W123456-p54321 TEST


TEST为默认数据库,用于管理其他数据库


例如想查看当前机器kingbase总连接数,可以用以上命令进入TEST,执行


select connections(); //查看连接数
select * from SYS_STAT_ACTIVITY; //查看连接客户端


3. 开发方式


3.1 可以在安装目录下的Jdbc文件夹找到驱动jar包

6.png

3.2 然后在工程中集成jar包,测试连接


importjava.sql.Connection;
importjava.sql.DatabaseMetaData;
importjava.sql.DriverManager;
importjava.sql.SQLException;
publicclassTestConnection {
publicstaticvoidmain(String[] args) throwsSQLException, ClassNotFoundException {
Connectioncon;
Class.forName("com.kingbase8.Driver");
Stringurl="jdbc:kingbase8://127.0.0.1:54321/MYDB";
con=DriverManager.getConnection("jdbc:kingbase8://127.0.0.1:54321/TEST","SYSTEM","123456");
System.out.println(con.getClientInfo());
DatabaseMetaDatametaData=con.getMetaData();
StringdriverVersion=metaData.getDriverVersion();
System.out.println(driverVersion);
    }
}


3.3 图形化客户端使用


windows推荐使用官方工具,可以直接到官网下载安装,直接可以使用。操作跟Navicat差不多,官方工具支持很多功能如下:


  • SQL语句到导入导出
  • 数据迁移,将MySQL数据库迁移到人大金仓(需要使用人大金仓数据转换工具,同时连接MySQL,进行数据迁移操作)
  • 建表操作,推荐使用官方图形化工具


mac推荐使用DataGrip,需要手动集成驱动

7.png

3.4 SQL适配


已有MySQL系统,迁移到人大金仓SQL语句需要一些改造


  • 主要是函数适配
  • 剔除不支持的特殊符号
  • group by字段要跟查找字段保持一致


4. 人大金仓性能压测


4.1 定制化的sysbench使用


为了检测数据库性能,我们在中科方德机器上部署人大金仓和MySQL,并使用Sysbench进行数据库对比基准测试。


该sysbench由厂商定制,使用方式如下


//配置sysbench路径
exportPATH=`pwd`:$PATH//配置数据库lib路径
exportLD_LIBRARY_PATH=/home/v8.3-build/kliao/v8.2_with_history/postgres/release/lib
//生成数据
sysbench oltp_common --kes-host=192.168.4.80 --kes-port=5433--kes-connect_timeout=10--kes-user=SYSTEM --kes-password=123--kes-db=TEST --table-size=1000 prepare
//执行read_only
sysbench oltp_read_only  --kes-host=192.168.4.80 --kes-port=5433--kes-connect_timeout=10--kes-user=SYSTEM --kes-password=123--kes-db=TEST --table-size=1000--time=10--threads=8 run
//执行oltp_write_only
sysbench oltp_write_only  --kes-host=192.168.4.80 --kes-port=5433--kes-connect_timeout=10--kes-user=SYSTEM --kes-password=123--kes-db=TEST --table-size=1000--time=10--threads=8 run


4.2 压测指标与结果分析


我们在16核心 64G的中科方德机器上进行压测。使用sysbench分别生成5000w数据,分别对这两个库表进行只读压测。线程数设置为10、50、60、70、80、90、100、150、200、300、500、600、700、800等,每个并发压测三次,每次并发测试的时长为180S,同一并发压测结果取平均值进行分析


可以看到如下结果


  • 线程数在100以内,两者各项指标相当
  • 线程数大于100,且继续增加线程的过程中,相比MySQL,人大金仓TPS、QPS均有明显下降


8.png9.png10.png11.png

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
XML 开发框架 前端开发
WPF学习之基础知识篇
WPF(Windows Presentation Foundation)具有一个复杂且强大的架构,旨在提供丰富的用户界面、图形、动画和多媒体功能。
372 9
|
存储 算法 安全
国密算法及简单使用
国密算法,即国家密码局认定的国产密码算法,主要用于保护国家关键信息基础设施和商业领域的加密通信和数据安全。根据 2019年10月26日第十三届全国人民代表大会常务委员会第十四次会议通过的《中华人民共和国密码法》,国家对密码实行分类管理,密码分为核心密码、普通密码和商用密码
1660 4
|
存储 搜索推荐 数据挖掘
使用selenium库模拟浏览器行为,获取网页的cookie值
使用selenium库模拟浏览器行为,获取网页的cookie值
|
SQL 监控 关系型数据库
【MYSQL高级】Mysql找出执行慢的SQL【慢查询日志使用与分析】
【MYSQL高级】Mysql找出执行慢的SQL【慢查询日志使用与分析】
5179 0
|
安全 关系型数据库 Linux
什么叫网站国产化改造?哪些CMS符合国产化标准?
国产化需求在未来的互联网话题上是只会越来越多、越来越重要的,这个国产化改造不单单针对网站项目上,还会逐步涉及到各大软件和系统上,所以,相关的单位提前了解国产化的改造标准和需求,到传达的时候、不会显得出手无策。
732 5
|
搜索推荐 关系型数据库 MySQL
基于自己的数据库构建基于LLM的专属知识库
基于自己的数据库构建基于LLM的专属知识库
648 2
|
8月前
|
数据可视化 关系型数据库 定位技术
全面支持国产部署,阿里云DataV重磅推出空间数据新方案!
全面支持国产部署,阿里云DataV重磅推出空间数据新方案!
|
Java 微服务
【Java异常】com.netflix.client.ClientException: Load balancer does not have available server for client
【Java异常】com.netflix.client.ClientException: Load balancer does not have available server for client
911 0
架构学习——ER图
架构学习——ER图
498 0