注册
关于DM8达梦数据库容器化环境的一种流程化部署的设计思考与探索
培训园地/ 文章详情 /

关于DM8达梦数据库容器化环境的一种流程化部署的设计思考与探索

张学亮 2023/03/03 906 1 0

大家都知道,软件交付过程中的最后一个环节就是将软件方便快捷地交付到用户手中,最好能够在不进行干预的情况下,凭借人性化的提示功能,引导用户一步一步完成在自己环境中的部署。当然为了优化这个过程,相信广大的运维人员一直在努力。

但是,如果我要说,如果能够在研发生产环节就能考量后续的交付流程,是不是能够更加主动和高效呢?

接下来,我们就一起探索下如何在DM8达梦数据库的交付环节注入新的思路。说明一下,以下只是一种思路分享,为了更好地阐述思路,会用一些伪代码来进行辅助说明。

我们结合DM8达梦数据库的实际安装环节,准备从以下角度来启发思考:

  • 设置全局环境变量
  • 初始化变量值
  • 安装dm.key证书
  • 检测数据库实例是否存在
  • 初始化数据库
  • 准备dm.ini达梦数据库配置文件
  • 启动数据库服务
  • 监测达梦数据库服务进程是否正常
  • 执行SQL进行进一步验证

image.png

设置全局环境变量

全局环境变量可以是多个,以下示例展示了DM_INIT_PATH(即DM_HOME数据库安装目录)

image.png

初始化变量值

在安装DM数据库的过程中,我们需要提供诸多信息给安装程序,如果能够借鉴DM静默安装的思路,提前将这些信息配置在文件中,统一进行管理,相比不停地询问,是否更加快速?
image.png

安装dm.key证书

检测证书是否存在,存在的话就直接引用。
其他文件也可参考这种思路。
image.png

检测数据库实例是否存在

在进行初始化安装之前进行数据库实例的检测是很有必要的。
image.png

初始化数据库

基于dminit的方式进行数据库的初始化
image.png

准备dm.ini达梦数据库配置文件

结合类似于golang template的模板技术进行相关变量的初始化赋值。当然,最终实现并不一定要使用golang,Python等很多编程语言都能够实现,只是在容器环境中,golang显得更亲切些而已。
image.png

启动数据库服务

使用dmserver启动数据库示例,这种方式更加通用。当然,为了更加方便的管理数据库服务,最好是将其注册到systemd更加合适。
image.png

监测达梦数据库服务进程是否正常

进行必要的进程检测是很有必要的:
image.png

执行SQL进行进一步验证

有时候,进程虽然存在,但并不表示数据库服务就是正常的,因此要进行SQL执行的进一步验证。
image.png

经过上述步骤,容器化部署DM数据库的一整套完整流程就完成了,这各个步骤并不是孤立的,相互之间还可以设置强依赖或者弱依赖,以编排执行顺序。
以上只是一个初步思路,欢迎大家一起交流!

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服