掌桥专利:专业的专利平台
掌桥专利
首页

一种基于PostgresSQL的数据库自动化安装部署方法

文献发布时间:2023-06-19 10:48:02


一种基于PostgresSQL的数据库自动化安装部署方法

技术领域

本发明属于软件基础技术领域,尤其是一种基于PostgresSQL的数据库自动化安装部署方法。

背景技术

数据库技术是信息系统的一个核心技术,通过研究数据库的结构、存储、设计、管理以及应用的基本理论和实现方法,并利用这些理论来实现对数据库中的数据进行处理、分析和理解。数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处理与信息管理系统的核心。数据库技术研究和解决了计算机信息处理过程中大量数据有效地组织和存储的问题,在数据库系统中减少数据存储冗余、实现数据共享、保障数据安全以及高效地检索数据和处理数据。数据库技术的根本目标是要解决数据的共享问题。

随着装备数据重要性的提升,数据库技术在装备软件中的应用越来越广泛。但是对于装备软件的固件数据库安装来说就显得更为复杂。装备数量的增加也会使固件数据库安装工作量大幅度上升,而数据库安装需要熟悉数据库操作的软件人员实施,带来了对软件技术人员需求的压力。

发明内容

本发明的目的在于克服现有技术的不足,提出一种基于PostgresSQL的数据库自动化安装部署方法,能够实现磁盘的全生命周期自动化安装部署。

本发明解决其技术问题是采取以下技术方案实现的:

一种基于PostgresSQL的数据库自动化安装部署方法,包括以下步骤:

步骤1、磁盘分区管理;

步骤2、磁盘格式化;

步骤3、磁盘挂载;

步骤4、数据库目录管理;

步骤5、数据库初始化并启动;

步骤6、数据库部署。

而且,所述步骤1的具体实现方法为:

步骤1.1、根据用户输入确定预安装磁盘盘符;

步骤1.2、判断预安装磁盘盘符是否在系统识别范围内,若在系统识别范围内,则执行步骤1.3,否则将Shell脚本返回1,表示因输入不合法盘符而执行失败。

步骤1.3、判断数据库预安装磁盘中是否存在挂载情况,若存在挂载情况,则将挂载点卸载,并进行步骤1.4,否则直接进行步骤1.4;

步骤1.3、判断数据库预安装磁盘是否存在分区情况,若存在分区情况,则将其删除,写入分区表,并进行步骤1.5,否则直接进行步骤1.5;

步骤1.4、创建唯一数据库安装部署主分区,同步写入分区表。

而且,所述步骤2的具体实现方法为:通过调用mkfs.ext4命令将磁盘格式化为ext4文件系统,通过调用tune2fs命令进行磁盘检测设置,其设置为开机不自检。

而且,所述步骤3的具体实现方法为:通过mount命令将步骤1生成的磁盘分区挂载到系统固定目录下。

而且,所述步骤4的具体实现方法为:判断磁盘中是否存在数据data目录和日志pglog目录,若存在,则将其删除,否则不作处理;重新在磁盘中创建数据data目录和日志pglog目录,并修改数据data目录和日志pglog目录的访问权限为postgres用户所有。

而且,所述步骤5的具体实现方法为:切换到postgres超级用户,向系统环境中添加PostgresSQL数据库的依赖库路径,通过调用PostgresSQL数据库的命令initdb初始化数据data目录,通过调用PostgresSQL数据库的命令pg_ctl启动数据data目录数据库,同时将启动结果输出到日志pglog目录中,判断PostgresSQL数据库启动是否成功,若启动成功则输出“数据库启动成功”,执行步骤6;否则继续判断6次,若其中出现一次成功则输出“数据库启动成功”,执行步骤6;若6次均失败则输出“无法启动数据库”,卸载磁盘分区挂载点,并将Shell脚本返回2,表示因无法启动数据库而执行失败。

而且,所述步骤6的具体实现方法为:

步骤6.1、执行PostgresSQL数据库的psql命令,以超级用户登录到数据库中;

步骤6.2、通过调用PostgresSQL的create user用户名和password密码创建数据库普通用户及密码;

步骤6.3、通过调用PostgresSQL的语句create database数据库名称owner普通用户名创建数据库;

步骤6.4、通过调用PostgresSQL的“\q”退出超级用户登录;

步骤6.5、执行PostgresSQL数据库的psql命令,以普通用户登录数据库,通过调用PostgresSQL的psql–d数据库名称-U用户名-f脚本文件名称命令执行数据库表结构创建脚本文件;

步骤6.6、通过调用PostgresSQL的“\q”退出普通用户登录;

步骤6.7、通过调用PostgresSQL数据库的命令pg_ctl停止data目录数据库,同时将停止结果输出到日志pglog目录中;

步骤6.8、输出数据库安装完成,并将Shell脚本返回0,表示执行成功。

本发明的优点和积极效果是:

本发明通过Shell脚本对磁盘进行分区管理,分区管理包括磁盘分区;对磁盘进行格式化;对磁盘进行挂载;对基于PostgresSQL的数据库目录进行管理;对数据库初始化并启动;并部署数据库,实现了磁盘的全生命周期自动化安装部署。本发明能够满足固件数据库安装的自动化需求,同时由于不依赖于软件人员实施,缓解了软件技术人员的需求压力,节省了人力成本,并减少了常规数据库安装部署的时间,大大提高了数据库安装部署效率,尤其对同型装备批量生产工作具有重要意义。

附图说明

图1是本发明的磁盘分区管理设计流程图;

图2是本发明的数据库目录管理设计流程图;

图3是本发明的数据库初始化和启动设计流程图;

图4数本发明的数据库部署流程设计图。

具体实施方式

以下结合附图对本发明做进一步详述。

一种基于PostgresSQL的数据库自动化安装部署方法,包括以下步骤:

步骤1、磁盘分区管理。磁盘分区管理用于检测数据库预安装磁盘所在盘符的挂载、分区情况。首先根据用户输入确定预安装磁盘盘符,判断预安装磁盘盘符是否在系统识别范围内,若在系统识别范围内,则检查挂载情况,否则将Shell脚本返回1,表示因输入不合法盘符而执行失败,在数据库预安装磁盘中检查挂载情况,若存在挂载点,则将其卸载;然后检查数据库预安装磁盘分区情况,若存在分区,则将其删除,并写入分区表;最后创建唯一数据库安装部署主分区,同步写入分区表。

如图1所示,本步骤的具体实现方法为:

步骤1.1、界面提示输入预安装的磁盘盘符;

步骤1.2、判断是否接收到用户输入,若接收到用户输入,则进行步骤1.3,否则重读步骤1.1;

步骤1.3、判断磁盘盘符是否在系统识别范围内,若磁盘盘符在系统识别范围内,则进行步骤1.4,否则进行返回1;

步骤1.4、获取磁盘盘符下所有挂载名称;

步骤1.5、获取磁盘盘符下所有挂载数量;

步骤1.6、判断磁盘盘符下挂载数量是否大于0,若磁盘盘符下挂载数量大于0,则进行步骤1.7,否则进行步骤1.15;

步骤1.7、将所有挂载名称存入数组;

步骤1.8、初始化数组索引=0;

步骤1.9、从数组中按照索引取出挂载点;

步骤1.10、卸载挂载点;

步骤1.11、数组索引+1;

步骤1.12、判断数组遍历是否完成,若数组遍历完成,则进行步骤1.13,否则重复步骤1.9至步骤1.12;

步骤1.13、获取磁盘盘符下所有挂载名称;

步骤1.14、获取磁盘盘符下所有挂载数量,并进行步骤1.6;

步骤1.15、获取磁盘盘符下分区个数;

步骤1.16、判断磁盘盘符下分区数量是否大于0,若磁盘盘符下分区数量大于0,则进行步骤1.17,否则进行步骤1.22;

步骤1.17、初始化分区号=0;

步骤1.18、删除分区号所在分区;

步骤1.19、写入分区表;

步骤1.20、分区号+1;

步骤1.21、判断分区是否遍历完成,若分区遍历完成,则进行步骤1.22,否则重复步骤1.18至1.21;

步骤1.22、创建唯一主分区;

步骤1.23、写入分区表并结束。

在步骤1.3中返回1为当检查用户输入的磁盘盘符不在系统识别范围内时,本设计的Shell脚本返回1,表明磁盘分区管理失败,后续步骤不再执行,否则继续执行后续步骤。

步骤2、磁盘格式化。磁盘格式化包括格式化和磁盘检测设置两个步骤。磁盘格式化为ext4文件系统,通过调用mkfs.ext4命令实现;磁盘检测通过调用tune2fs命令设置,同时为保证磁盘加载速度,将其设置为开机不自检。

步骤3、磁盘挂载。将步骤1生成的磁盘分区挂载到系统某固定目录下,通过mount命令实现。

步骤4、数据库目录管理。首先判断数据data目录和日志pglog目录是否存在,若存在,则递归删除目录,否则不做处理;然后重新创建数据data目录和日志pglog目录、修改数据data目录和日志pglog目录的访问权限为postgres用户所有。

如图2所示,本步骤的具体实现方法为:

步骤2.1、判断磁盘中是否存在数据data目录,若磁盘中存在数据data目录,则递归删除data目录,并进行步骤2.2,否则直接进行步骤2.2;

步骤2.2、判断磁盘中是否存在日志pglog目录,若磁盘中存在日志pglog目录,则递归删除pglog目录,并进行步骤2.3,否则直接进行步骤2.3;

步骤2.3、创建数据data目录和日志pglog目录;

步骤2.4、修改数据data目录和日志pglog目录的访问权限为postgres用户所有。

步骤5、数据库初始化并启动。首先,切换到postgres超级用户、向系统环境中添加PostgresSQL数据库的依赖库路径;然后,通过调用PostgresSQL数据库的命令initdb实现数据data目录的初始化;通过调用PostgresSQL数据库的命令pg_ctl启动data目录数据库,同时将启动结果输出到日志pglog目录中;最后判断PostgresSQL数据库启动是否成功,成功则输出“数据库启动成功”,继续执行后续步骤;否则继续判断6次,若其中出现一次成功则输出“数据库启动成功”,执行后续步骤;若6次均失败则输出“无法启动数据库”,卸载磁盘分区挂载点,将Shell脚本返回2,表示因“无法启动数据库”而执行失败。

如图3所示,本步骤的具体实现方法为:

步骤3.1、切换到postgres超级用户;

步骤3.2、向系统环境中添加PostgresSQL数据库的依赖库路径;

步骤3.3、执行PostgresSQL数据库的initdb命令,初始化数据data目录;

步骤3.4、执行PostgresSQL数据库的pg_ctl命令,启动数据data目录,并将启动结果写入日志pglog目录;

步骤3.5、初始化数据库启动的等待时间wait_time=0

步骤3.6、初始化PostgresSQL数据库进程id标识pid=0;

步骤3.7、判断数据库启动的等待时间是否小于6,若数据库启动的等待时间小于6,则进行步骤3.8,否则进行步骤3.13;

步骤3.8、获取名称为“postgres”的进程id,赋给pid;

步骤3.9、判断pid是否为0,若pid为0,则进行步骤3.10,否则进行步骤1.12;

步骤3.10、等待时间wait_time+1;

步骤3.11、等待1秒并进行步骤3.7;

步骤3.12、输出“数据库启动成功”并结束;

步骤3.13、输出“无法启动数据库”;

步骤3.14、卸载磁盘分区挂载点并将Shell脚本2。

在步骤3.14中返回2为无法启动数据库。

步骤6、部署数据库。如图4所示,本步骤的具体实现方法为:

步骤6.1、执行PostgresSQL数据库的psql命令,以超级用户登录到数据库中;

步骤6.2、创建数据库普通用户及密码,通过调用PostgresSQL的create user XXX(用户名)password‘XXX’(密码)语句实现;

步骤6.3、创建数据库,通过调用PostgresSQL的create database XXX(数据库名称)owner XXX(普通用户名)实现,数据库归属于普通用户;

步骤6.4、退出普通用户登录,通过调用PostgresSQL的“\q”实现;

步骤6.5、执行PostgresSQL数据库的psql命令,以普通用户登录数据库,同时执行数据库表结构创建脚本文件,通过调用PostgresSQL的psql–d XXX(数据库名称)-U XXX(用户名)-f XXX(脚本文件名称)命令实现;

步骤6.6、退出普通用户登录,通过调用PostgresSQL的“\q”实现;

步骤6.7、通过调用PostgresSQL数据库的命令pg_ctl停止data目录数据库,同时将停止结果输出到日志pglog目录中;

步骤6.8、以上步骤执行成功后,输出“数据库安装完成”并返回0。

本步骤6.8中,返回0为数据库安装完成。

通过上述一种基于PostgresSQL的数据库自动化安装部署方法,在某安装有CentOS的装备系统中,通过执行该Shell脚本、指定安装的硬盘盘符,成功实现了一种基于PostgresSQL的数据库自动化安装部署方法,本发明满足了固件数据库安装的自动化需求,且不依赖于软件人员实施,缓解了软件技术人员的需求压力,节省了人力成本,且大大提高了数据库安装部署效率,尤其对同型装备批量生产工作具有重要意义。

需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。

相关技术
  • 一种基于PostgresSQL的数据库自动化安装部署方法
  • 一种基于深度学习的高光谱数据库半自动化建立方法
技术分类

06120112686237