## 1 概述 本章节主要介绍采用openGauss简化安装脚本(以下简称安装脚本),一键式安装openGauss数据库所必须的系统环境及安装步骤。 ## 2 安装环境要求 ### 2.1 openGauss环境要求 安装openGauss的具体环境要求,请参考《openGauss安装指南》中的“2.3.1节软硬件环境要求”章节。 ### 2.2 安装脚本环境要求 #### 硬件环境要求 安装脚本对安装环境的操作系统及对应处理器架构进行了限制,目前支持的环境如表1所示。 **表1** 硬件环境要求 | 操作系统 | 处理器架构 | | --------- | ---------- | | openEuler | aarch64 | | openEuler | x86_64 | | CentOS | x86_64 | #### 软件依赖要求 安装脚本依赖于其它软件的支持,如表2所示。 **表2** 软件依赖要求 | 所需软件 | 建议版本 | | --------- | -------- | | firewalld | - | | python | 3 | ## 3 安装openGauss ### 3.1 安装前准备 #### 导入安装脚本 安装脚本包含了多个文件,其用途如表3所示。导入安装脚本时,建议直接导入tar包至安装环境中,随后在安装环境中进行解压,否则可能出现window与unix风格不兼容的问题。若出现此类问题,可以使用dos2unix命令对安装脚本进行格式转换。 **表3** 安装脚本清单 | 文件名称 | 用途 | | ------------ | ---------------------- | | install.sh | 简化安装主程序 | | common.sh | 公共命令 | | README.md | 参考文档 | | template.xml | xml模板 | | finance.sql | 金融数据模型展示数据库 | | school.sql | 学校数据模型展示数据库 | #### 导入openGauss数据库安装包 安装脚本支持以下两种方式导入openGauss数据库安装包: - 手动导入 在[openGauss官网](https://opengauss.org/zh/download.html)下载对应版本安装包拷贝至安装环境中,存放路径为安装脚本的上层目录。 - 自动导入 配置安装环境外网访问,并确保安装脚本上层路径不存在openGauss数据库安装包。当运行安装脚本时,会自动下载对应版本安装包进行安装。 ### 3.2 执行安装 使用如下命令执行安装脚本。 ```shell sh install.sh -U user_name -G user_group -h host_ip -p port [-D install_path] ``` #### 参数说明 - user_name为openGauss数据库的安装用户。 - user_group为openGauss数据库安装用户所属用户组。 - host_ip为主机在后端存储网络中的IP地址(内网IP)。 - host_port为数据库节点的基础端口号。 - install_path为openGauss数据库安装路径,该参数为可选参数。 以上参数的详细信息,请参考《openGauss安装指南》中的3.1节创建XML配置文件。 #### 注意事项 - 不指定install_path参数时,数据库默认安装在/opt/user_name路径下。 - 无论采用何种方式导入openGauss安装包,安装脚本都会在/home/user_name/openGaussTar路径下建立本地安装包文件。该路径支持修改,请在install.sh中修改install_location参数,但是需要与安装路径install_path不同。 - 安装脚本必须在root下执行,且同一时刻只有1个安装脚本正在运行。 ## 4 导入展示数据库 ### 4.1 学校数据模型 假设A市B学校为了加强对学校的管理,引入了openGauss数据库。在B学校里,主要涉及的对象有学生、教师、班级、院系和课程。本实验假设在B学校数据库中,教师会教授课程,学生会选修课程,院系会聘请教师,班级会组成院系,学生会组成班级。因此,根据此关系,本文给出了相应的关系模式如下。在运行安装脚本时,会根据用户选择安装该展示模型。 #### 关系模式 对于B校中的5个对象,分别建立属于每个对象的属性集合,具体属性描述如下: - 学生(学号,姓名,性别,出生日期,入学日期,家庭住址) - 教师(教师编号,教师姓名,职称,性别,年龄,入职日期) - 班级(班级编号,班级名称,班主任) - 院系(系编号,系名称,系主任) - 课程(课程编号,课程名称,课程类型,学分) 上述属性对应的编号为: - student(std_id,std_name,std_sex,std_birth,std_in,std_address) - teacher(tec_id,tec_name,tec_job,tec_sex,tec_age,tec_in) - class(cla_id,cla_name,cla_teacher) - school_department(depart_id,depart_name,depart_teacher) - course(cor_id,cor_name,cor_type,credit) 对象之间的关系: - 一位学生可以选择多门课程,一门课程可被多名学生选择 - 一位老师可以选择多门课程,一门课程可被多名老师教授 - 一个院系可由多个班级组成 - 一个院系可聘请多名老师 - 一个班级可由多名学生组成 ### 4.2 金融数据模型 假设A市C银行为了方便对银行数据的管理和操作,引入了openGauss数据库。针对C银行的业务,本实验主要将对象分为客户、银行卡、理财产品、保险、基金和资产。因此,针对这些数据库对象,本实验假设C银行的金融数据库存在着以下关系:客户可以办理银行卡,同时客户可以购买不用的银行产品,如资产,理财产品,基金和保险。那么,根据C银行的对象关系,本文给出了相应的关系模式如下。在运行安装脚本时,会根据用户选择安装该展示模型。 #### 关系模式 对于C银行中的6个对象,分别建立属于每个对象的属性集合,具体属性描述如下: - 客户(客户编号、客户名称、客户邮箱,客户身份证,客户手机号,客户登录密码) - 银行卡(银行卡号,银行卡类型,所属客户编号) - 理财产品(产品名称,产品编号,产品描述,购买金额,理财年限) - 保险(保险名称,保险编号,保险金额,适用人群,保险年限,保障项目) - 基金(基金名称,基金编号,基金类型,基金金额,风险等级,基金管理者) - 资产(客户编号,商品编号,商品状态,商品数量,商品收益,购买时间) 上述属性对应的编号为: - client(c_id,c_name,c_mail,c_id_card,c_phone,c_password) - bank_card(b_number,b_type,b_c_id) - finances_product(p_name,p_id,p_description,p_amount,p_year) - insurance(i_name,i_id,i_amount,i_person,i_year,i_project) - fund(f_name,f_id,f_type,f_amount,risk_level,f_manager) - property(pro_c_id,pro_id,pro_status,pro_quantity,pro_income,pro_purchase_time) 对象之间的关系: - 一个客户可以办理多张银行卡 - 一个客户可有多笔资产 - 一个客户可以购买多个理财产品,同一类理财产品可由多个客户购买 - 一个客户可以购买多个基金,同一类基金可由多个客户购买 - 一个客户可以购买多个保险,同一类保险可由多个客户购买