暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

安装部署opemguass2.0.0数据库

原创 Hello world 云和恩墨 2022-12-23
739

安装部署opemguass2.0.0数据库

1、体系结构回顾

Oracle 11g 体系结构

Oracle 12C体系结构

openguass体系结构

2、部署方案概述

2. 1单机部署

单机部署形态是一种非常特殊的部署形态,这种形态对于可靠性、可用性均无任何保证。由于只有一个数据副本,一旦发生数据损坏、丢失,只能通过物理备份恢复数据。这种部署形态,一般用于数据库体验用户,以及测试环境做语法功能调测等场景。

不建议:

用于商业现网运行。

2.2 主备部署

openGauss是单机系统,在这样的系统架构中,业务数据存储在单个物理节点上,数据访问任务被推送到服务节点执行,通过服务器的高并发,实现对数据处理的快速响应。同时通过日志复制可以把数据复制到备机,提供数据的高可靠和读扩展。单机HA部署支持一台主机和最少一台备机,备机一共最多8台的配置方式。openGauss是支持主备部署,openGauss逻辑

架构如图所示:

2.2.1 模块说明

1、OM 运维管理模块(Operation Manager):提供数据库日常运维、配置管理的管理接口、工具

2、客户端驱动 客户端驱动(Client Driver):负责接收来自应用的访问请求,并向应用返回执行结果。

客户端驱动负责与openGauss实例通信,发送应用的SQL命令,接收openGauss实例的执行结果

3、openGauss主备 openGauss主备(Datanode):负责存储业务数据、执行数据查询任务以及向客户端返

回执行结果。 openGauss实例包含主、备两种类型,支持一主多备。

建议:

将主、备openGauss实例分散部署在不同的物理节点中。 主备模块中应包含持久化的本地存储服务器,

用来将业务数据进行持久化

2.2.2 应用场景

应用场景

交易型应用:

大并发、大数据量、以联机事务处理为主的交易型应用,例如电商、金融、O2O、电信CRM/计费等,应

用可以按需选择不同的主备部署模式。

物联网数据:

在工业监控和远程控制、智慧城市的延展、智能家居、车联网等物联网场景下,传感监控设备多,采样

率高,数据存储为追加模型,操作和分析并重的场景。

2.2.3 一主多备部署

多副本的部署形态,提供了抵御实例级故障的能力。适用于不要求机房级别容灾,但是需要抵御个别硬件故障的应用场景。一般多副本部署时使用1主2备模式,总共3个副本,3个副本的可靠性为4个9,可以满足大多数应用的可靠性要求。主备间Quorum复制,至少同步到一台备机,保证最大性能。主备任意一个节点故障,不影响业务的进行。数据有三份,任何一个节点故障,系统仍然有双份数据确保继续运行。任何一个备份都可以升主。

注意:

主备实例之间不可部署在同一台物理机上。

3 标准单机安装流程

openGauss支持单机部署和单机HA部署两种部署方式:

单机部署时,可在一个主机部署一个或多个数据库实例

单机HA部署时,支持一台主机和多台备机(1~8台)的配置方式

官方文档关于部署流程的描述:

3.1 软件环境要求

3.2 硬件环境要求

安装包下载地址:https://opengauss.org/zh/download.html

源码安装包获取路径: https://gitee.com/opengauss/openGauss-server/tree/master/

4 安装

4.1 安装依赖软件包

yum源配置示例

 

mkdir -p /etc/yum.repos.d/repo_bak/

mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo_bak/

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.myhuaweicloud.com/repo/CentOS-Base-7.repo ##华为云内网YUM源

curl -o /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo ##华为云外网YUM源

yum clean all ##清除原有yum缓存

yum makecache ##刷新缓存

安装依赖软件包

 

yum install -y java-1.8.0-openjdk* psmisc bzip2 python3 python3-devel lksctp*

yum install -y libaio-devel flex bison ncurses-devel glibc-devel patch redhat-lsb-core

Tips:

Centos默认可以直接使用外网YUM源

如果系统环境无法使用外网时,则可以使用本地ISO系统镜像配置默认YUM源.

4.2 配置网络

编辑hosts文件

 

vi /etc/hosts

--------------------

192.168.0.11 db1 db1.opengauss.com

 设置backupIP网卡的MTU值(建议默认1500)【可选】

vi /etc/sysconfig/network-scripts/ifcfg-ens34

---------------------------------------

MTU=8192 ## 可能需要网络工程师协助修改网络设备端口MTU配置,万兆

网卡参数配置(配置万兆业务网卡[backIp1])[可选]

rx = 4096 # 预安装时是否由脚本自动设置

tx = 4096 # 预安装时是否由脚本自动设置

4.3 安装

4.3.1关闭安全策略

关闭SELinux

 

vi /etc/selinux/config

SELINUX=disabled

## SELinux的配置文件需要重启操作系统才可以生效,可以使用setenforce 0 使SELinux临时变

更为Permissive状态,降低SELinux的影响。

关闭防火墙

 

systemctl status firewalld

systemctl disable firewalld.service

systemctl stop firewalld.service

配置用户相关选项

修改用户字符集

 

vi ~/.bash_profile

export LANG=en_US.UTF-8

source ~/.bash_profile

配置SSH服务

 

vi /etc/ssh/sshd_config

--------------------------

#Banner none ## 注释ssh登录的欢迎信息

PermitRootLogin yes ## 允许root用户远程登录

--------------------------

systemctl restart sshd.service

禁用RemoveIPC(openEuler环境)

 

vi /etc/systemd/logind.conf

------------------

RemoveIPC=no

------------------

vi /usr/lib/systemd/system/systemd-logind.service

------------------

RemoveIPC=no

-----------------

systemctl daemon-reload

systemctl restart systemd-logind

安装:内存相关配置

 

关闭SWAP

vi /etc/fstab ## 注释掉swap分区挂载

swapoff -a ## 关闭swap

安装:操作系统时间配置

时区配置

#查看时区配置

 

[root@db1 ~]# ll /etc/localtime

lrwxrwxrwx. 1 root root 35 Apr 27 22:06 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai

#如果时区不正确,则重新创建时区模板的软链接为/etc/localtime(此处以上海时间为例)

[root@db1 ~]# rm -fr /etc/localtime

[root@db1 ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

时间的查看与配置参考命令

 

查看系统时间:date

设置系统时间:date -s "2020-05-21 14:09:00" (示例)

同步系统时间至硬件:hwclock –w

Tips:建议生产环境开启NTP服务,从NTP服务器同步正确的时间

安装:操作系统资源

 

# vi /etc/security/limits.conf

* soft stack 3072

* hard stack 3072

* soft nofile 1000000 ## gs_preinstall脚本自动设置,可以不手动设置

* hard nofile 1000000 ## gs_preinstall脚本自动设置,可以不手动设置

#hard表示硬限制,soft表示软限制,软限制要小于等于硬限制。

#nofile表示任何用户能打开的最大文件数量,不管他开启多少个shell,此处为1000000。

 

# vi /etc/security/limits.d/90-nproc.conf

* soft nproc unlimited ## 系统支持的最大进程数

#nproc用来限制每个用户的最大processes数量,此处无限制

Tips:使用gs_preinstall脚本后,limits资源虽然已经设置,但可能存在暂时不生效的情况,需要重启系统使之生效。

# vi /etc/sysctl.conf

# sysctl -p # 使内核参数生效

4.3.2 单实例安装:创建XML配置文件

安装openGauss前需要创建cluster_config.xml文件,该文件包含部署openGauss的服务器信息、安装路径、IP地址以

及端口号等,用于告知openGauss如何部署。

用户需根据不同场配置对应的XML文件。

 

# vi cluster_config.xml

<?xml version="1.0" encoding="UTF-8"?>

<ROOT>

<!-- openGauss整体信息 -->

<CLUSTER>

<!-- 数据库名称 -->

<PARAM name="clusterName" value="dbCluster" />

<!-- 数据库节点名称(hostname) -->

<PARAM name="nodeNames" value="node1" />

<!-- 数据库安装目录-->

<PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" />

<!-- 日志目录-->

<PARAM name="gaussdbLogPath" value="/var/log/omm" />

<!-- 临时文件目录-->

<PARAM name="tmpMppdbPath" value="/opt/huawei/tmp" />

<!-- 数据库工具目录-->

<PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" />

<!-- 数据库core文件目录-->

<PARAM name="corePath" value="/opt/huawei/corefile" />

<!-- 节点IP,与数据库节点名称列表一一对应 -->

<PARAM name="backIp1s" value="192.168.0.11"/>

</CLUSTER>

<!-- 每台服务器上的节点部署信息 -->

<DEVICELIST>

<!-- 节点1上的部署信息 -->

<DEVICE sn="node1">

<!-- 节点1的主机名称 -->

<PARAM name="name" value="node1"/>

<!-- 节点1所在的AZ及AZ优先级 -->

<PARAM name="azName" value="AZ1"/>

<PARAM name="azPriority" value="1"/>

<!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置

成同一个IP -->

<PARAM name="backIp1" value="192.168.0.11"/>

<PARAM name="sshIp1" value="192.168.0.11"/>

<!--dbnode-->

<PARAM name="dataNum" value="1"/>

<PARAM name="dataPortBase" value="26000"/>

<PARAM name="dataNode1" value="/opt/huawei/install/data/dn"/>

<PARAM name="dataNode1_syncNum" value="0"/>

</DEVICE>

</DEVICELIST>

</ROOT>

4.3.3单实例安装:创建目录并解压安装包

创建相关目录

 

mkdir -p /opt/software/openGauss

chmod 755 -R /opt/softwar

解压数据库安装包

 

cd /opt/software/openGauss

tar -zxvf openGauss-2.0.0-CentOS-64bit-all.tar.gz

tar -zxvf openGauss-2.0.0-CentOS-64bit-om.tar.gz

openEuler系统需要额外修改的参数

修改Python版本检查脚本

 

# cd /soft/openGauss/script/gspylib/common/

# vi CheckPythonVersion.py

---------------------------

修改"if not pythonVersion = = (3, 6):" ---> "if not pythonVersion > = (3, 6):"

修改性能相关脚本

 

# vi /etc/profile.d/performance.sh

---------------------------

使用”#”号注释sysctl -w vm.min_free_kbytes=112640 &> /dev/null

单实例安装:执行交互式预安装

 

[root@db1 ~]# export LD_LIBRARY_PATH=/soft/openGauss/script/gspylib/clib:$LD_LIBRARY_PATH

[root@db1 script]# cd /opt/software/openGauss

./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/clusterconfig.xml

单实例安装:检查参数配置情况

重启操作系统,使预安装的部分参数配置生效(如:open files参数、max user processes参数等)

# reboot

根据提示,root用户执行检查命令: /opt/software/openGauss/script/gs_checkos -i A -h node1 --detail

使用tree命令查看预安装产生的目录文件

 

# yum install tree –y

#tree -L 2 -F -d /opt/huawei/install/

 

检查环境变量文件

[omm@node1 ~]$ cat ~/.bashrc

单实例安装:执行数据库安装

修改目录权限

cd /opt/software/openGauss/script

chmod -R 755 /opt/software/openGauss/script

chown -R omm:dbgrp /opt/software/openGauss/script

 执行数据库安装脚本su - omm

cd /opt/software/openGauss/script

cp ../clusterconfig.xml .

gs_install -X /opt/software/openGauss/script/clusterconfig.xml

数据库登录测试

数据库状态检查

 

[root@node1 ~]$ su - omm

[omm@node1 ~]$ gs_om -t start

[omm@node1 ~]$ gs_om -t status --detail

登录数据库测试

 

[omm@node1 ~]$ gsql -d postgres -p 26000 -r

gsql ((openGauss 2.0.0 build 78689da9) compiled at 2021-03-31 21:04:03

commit 0 last mr )

Non-SSL connection (SSL connection is recommended when requiring high-

security)

Type "help" for help.

postgres=# postgres=# \l

postgres=# select version();

5、数据库卸载

1、卸载数据库

 

[root@node1 ~]# su - omm

[omm@node1 ~]$ gs_uninstall --delete-data

Checking uninstallation.

Successfully checked uninstallation.

Stopping the cluster.

Successfully stopped cluster.

Successfully deleted instances.

Uninstalling application.

Successfully uninstalled application.

Uninstallation succeeded.

2、一键式环境清理

 

[root@node1 script]# ./gs_postuninstall -U omm -X

/opt/software/openGauss/clusterconfig.xml --delete-user

Parsing the configuration file.

Successfully parsed the configuration file.

Check log file path.

Successfully checked log file path.

Checking unpreinstallation.

Successfully checked unpreinstallation.

Deleting the instance's directory.

Successfully deleted the instance's directory.

Deleting the temporary directory.

Successfully deleted the temporary directory.

Deleting software packages and environmental variables of the local node.

Successfully deleted software packages and environmental variables of the local nodes.

Deleting local OS user.

Successfully deleted local OS user.

Deleting local node's logs.

Successfully deleted local node's logs.

Successfully cleaned environment.

[root@node1 script]#

3.删除残留目录

 

[root@node1 install]# ll

total 0

drwx------ 2 1001 dbgrp 6 May 19 17:43 app_78689da9

drwx------ 3 1001 dbgrp 16 May 19 15:54 data

drwx------ 2 1001 dbgrp 6 May 19 17:58 om[root@db1

~]# rm -fr /opt/huawei

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论