前言
最近在备考gaussDB HCIE认证,需要搭建数据库环境,记录一下自己的搭建步骤。搭建华为openGauss本地虚拟机单节点环境,并通过navicat连接数据库。
组件版本:
组件名称 | 版本号 |
---|---|
VMware | VMware® Workstation 17 Pro |
openEuler | openEuler-22.03-LTS-SP3-x86_64 |
openGauss | openGauss-6.0.0 |
Navicat | Navicat 17 |
一、安装vmware
参考:虚拟机安装
二、安装openEuler-22.03
1、下载安装包
下载地址:openEuler下载地址
下载后得到安装包:openEuler-22.03-LTS-SP3-x86_64-dvd.iso
2、安装openEuler
安装的时候有个挂载分区,选automatic就行
三、安装GaussDB (for mysql)
1、安装前准备
我当前节点信息如下:
节点名称(hostname) | 节点ip地址 | 节点配置信息 |
---|---|---|
openEuler | 192.168.240.128 | 略 |
说明:
(1)、节点名称为安装虚拟机的时候起的名字,可以通过命令获取节点名称
[root@openEuler ~]# hostname
openEuler
(2)、节点ip为虚拟机的内网ip
[root@openEuler ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.240.128 netmask 255.255.255.0 broadcast 192.168.240.255
inet6 fe80::20c:29ff:feec:23a2 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:ec:23:a2 txqueuelen 1000 (Ethernet)
RX packets 296395 bytes 415070285 (395.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 39424 bytes 8861236 (8.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 15010 bytes 4554751 (4.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 15010 bytes 4554751 (4.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2、下载GaussDB数据库安装包
两种下载方式:
①、wget方式
如果你本身虚拟机可以连接外网(比如你安装的时候选择桥接,NAT模式等),可以直接通过wget命令获取数据库安装文件。
mkdir -p /opt/software/openGauss
cd /opt/software/openGauss/
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/6.0.0/openEuler22.03/x86/openGauss-All-6.0.0-openEuler22.03-x86_64.tar.gz
# wget后的地址从openGauss社区获取,社区地址:http://opengauss.org/zh/download/
②、文件传输到虚拟机
如果你本身虚拟机安装的时候,选择的是仅主机模式,那么,虚拟机只能和本地主机联通,需要自行从开源社区获取数据库安装文件到本地,然后通过ftp工具上传到虚拟机。
访问: https://opengauss.org/zh/download/
下载企业版本(需要注册登录openGauss)。
将下载文件上传到 虚拟机的 /opt/software/openGauss 目录下(需要提前新建目录)。
3、解压数据库tar包
# 解压数据库tar包
[root@openEuler openGauss]# tar -xvf openGauss-All-6.0.0-openEuler22.03-x86_64.tar.gz
openGauss-CM-6.0.0-openEuler22.03-x86_64.tar.gz
openGauss-OM-6.0.0-openEuler22.03-x86_64.tar.gz
openGauss-Server-6.0.0-openEuler22.03-x86_64.tar.bz2
openGauss-CM-6.0.0-openEuler22.03-x86_64.sha256
openGauss-OM-6.0.0-openEuler22.03-x86_64.sha256
openGauss-Server-6.0.0-openEuler22.03-x86_64.sha256
upgrade_sql.tar.gz
upgrade_sql.sha256
解压后包含三个核心安装包如下:
- Server主程序包
文件名:openGauss-Server-6.0.0-openEuler22.03-x86_64.tar.bz2
作用:包含数据库核心服务程序、SQL引擎及存储引擎等基础组件,支持单机或HA(高可用)部署模式。企业版提供原位更新存储引擎增强、SMP并行查询等特性。
部署场景:为数据库实例提供数据存储、事务处理等核心功能。 - OM运维管理工具包
文件名:openGauss-OM-6.0.0-openEuler22.03-x86_64.tar.gz
作用:集成安装部署工具(如gs_install、gs_ctl),支持通过配置文件自动化完成环境初始化、数据库安装及参数配置。
使用规范:需与Server包配合使用,简化集群部署流程。 - CM集群管理包
文件名:openGauss-CM-6.0.0-openEuler22.03-x86_64.tar.gz
作用:提供集群管理功能,支持主备切换、故障检测及自动恢复,保障高可用架构的稳定性。
部署要求:在HA场景下必须安装,单机部署可省略。
补充说明
安装流程:需先解压所有包至同一目录,通过OM工具指定配置文件完成安装。
文件格式:.tar.gz和.tar.bz2均为压缩包格式,分别使用tar -zxvf和tar -jxvf解压。
4、解压om运维管理tar包
tar -xvf openGauss-OM-6.0.0-openEuler22.03-x86_64.tar.gz
5、新建安装的配置文件
本身配置文件不存在,需要手动创建,并修改内容匹配自己虚拟机信息。
vi clusterconfig.xml
输入以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- openGauss整体信息 -->
<CLUSTER>
<!-- 数据库名称 -->
<PARAM name="clusterName" value="mycluster" />
<!-- 数据库节点名称(hostname) -->
<PARAM name="nodeNames" value="openEuler" />
<!-- 数据库安装目录-->
<PARAM name="gaussdbAppPath" value="/opt/install/app" />
<!-- 日志目录-->
<PARAM name="gaussdbLogPath" value="/opt/install/log" />
<!-- 临时文件目录-->
<PARAM name="tmpMppdbPath" value="/opt/install/tmp" />
<!-- 数据库工具目录-->
<PARAM name="gaussdbToolPath" value="/opt/install/om" />
<!-- 数据库core文件目录-->
<PARAM name="corePath" value="/opt/install/corefile" />
<!-- 节点IP,与数据库节点名称列表一一对应 -->
<PARAM name="backIp1s" value="192.168.240.128"/>
</CLUSTER>
<!-- 每台服务器上的节点部署信息 -->
<DEVICELIST>
<!-- 节点1上的部署信息 -->
<DEVICE sn="100001">
<!-- 节点1的主机名称 -->
<PARAM name="name" value="openEuler"/>
<!-- 节点1所在的AZ及AZ优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.240.128"/>
<PARAM name="sshIp1" value="192.168.240.128"/>
<!--dbnode-->
<PARAM name="dataNum" value="1"/>
<PARAM name="dataPortBase" value="15400"/>
<PARAM name="dataNode1" value="/opt/install/data/dn"/>
<PARAM name="dataNode1_syncNum" value="0"/>
</DEVICE>
</DEVICELIST>
</ROOT>
注意以下配置:
6、预安装
从安装日志来看,预安装包含创建omm系统级用户(此用户作用:执行openGauss的安装、配置及日常运维操作),创建数据库需要的目录,检查是否满足安装的配置等。
# 指定了用户名,组,配置文件信息
script/gs_preinstall -U omm -G dbgrp -X clusterconfig.xml
注意,中间会提示输入omm的密码,后续有几个步骤停顿时间较长,不用担心,等待原装完成即可。
7、切换omm用户,正式安装
su - omm
cd /opt/software/openGauss/script/
./gs_install -X ../clusterconfig.xml
安装还是比较快的,不需要操作,等待完成。
8、安装完成后验证
使用gs_om 命令进行验证,gs_om命令需要 -t 参数指定操作的类型,主要的操作类型如下:
-start # 启动数据库
-status # 查看数据库状态
-stop # 停止
-restart # 重启
-generateconf # 生成静态配置文件
数据库安装完成后会自动启动,可以通过查看数据库状态验证是否安装完成
# 通过gs_om命令 --detail 代表显示详细信息
[omm@openEuler ~]$ gs_om -t status --detail
[ Cluster State ]
cluster_state : Normal
redistributing : No
current_az : AZ_ALL
[ Datanode State ]
node node_ip port instance state
-----------------------------------------------------------------------------------------
1 openEuler 192.168.240.128 15400 6001 /opt/install/data/dn P Primary Normal
可以看到节点名称,节点ip,端口号,实例地址,状态为Normal代表数据库状态正常。
四、数据库使用
当我们安装完成后,默认安装了三个数据库:
#连接到数据库 指定数据库和端口号
gsql -d postgres -p 15400
# 通过 \l命令查询
openGauss=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+-------+-----------+---------+-------+-------------------
postgres | omm | SQL_ASCII | C | C |
template0 | omm | SQL_ASCII | C | C | =c/omm +
| | | | | omm=CTc/omm
template1 | omm | SQL_ASCII | C | C | =c/omm +
| | | | | omm=CTc/omm
(3 rows)
# 或者通过sql查询
openGauss=# select datname from pg_database;
datname
-----------
template1
template0
postgres
(3 rows)
如果要退出当前连接
\q
或者
ctrl+d
三个默认创建的数据库:
数据库名 | 用户连接权限 | 修改权限 |
---|---|---|
postgres | 所有用户可连接 | 允许用户操作 |
template0 | 禁止连接 | 禁止修改 |
template1 | 仅管理员可连接 | 仅管理员可连接 |
1、宿主机客户端远程连接数据库
# 切换到omm用户,连接数据库postgres
su - omm
Tips: 切换用户的时候推荐 加“-”,加 “-”会切换用户并进入用户家目录,并加载切换用户的环境配置信息,但不加“-” 只会切换用户,会停留在当前目录,使用原用户的环境变量
①、修改配置文件postgresql.conf的 listen_addresses和 password_encryption_type,两种方式:命令修改和直接修改配置文件。
listen_addresses 的作用是数据库与服务器ip绑定,可以使 客户机连接此ip的时候可以监听到连接。
password_encryption_type 参数是 设置数据库用户的密码加密方式,取值0,1,2 ,0
如果确保虚拟机ip不会变更(比如重启后ip不同的连接方式会变更),可以不用修改listen_addresses参数。
命令方式:
# 先查看当前配置 check是查看,-I表示具体哪个实例节点,0为主节点,1,2,3... 如果取值all或者不写 表示所有节点, -c代表参数名称
[omm@openEuler ~]$ gs_guc check -I all -c "listen_addresses"
The gs_guc run with the following arguments: [gs_guc -c listen_addresses check ].
expected guc information: openEuler: listen_addresses=NULL: [/opt/install/data/dn/postgresql.conf]
gs_guc check: openEuler: listen_addresses='localhost,192.168.240.128': [/opt/install/data/dn/postgresql.conf]
Total GUC values: 1. Failed GUC values: 0.
The value of parameter listen_addresses is same on all instances.
listen_addresses='localhost,192.168.240.128'
# 如果测试环境防止虚拟机ip地址变更,可以将负责监听的地址改为*(非必须)
gs_guc set -I all c "listen_addresses='*'"
②、修改pg_hba.conf中 客户端ip许可
#查看数据库节点路径:
<PARAM name="dataNode1" value="/opt/install/data/dn"/>
#修改配置文件
vi /opt/install/data/dn/pg_hba.conf
#命令行模式下,/host all 查找 修改位置
# "local" is for Unix domain socket connections only
local all all trust
host all omm 192.168.240.128/32 trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 192.168.240.128/32 sha256
# IPv6 local connections:
host all all ::1/128 trust
#在ipv4后添加一行
host all all 0.0.0.0/0 sha256
③、因为是禁用初始化用户omm进行远程连接,新增数据库连接用户
#omm用户下,连接数据库 默认使用的是postgres数据库
gsql -d postgres
# 创建用户
create user test password 'xxxxx';
④、重启数据库
# 先退出数据库
ctrl+d 或者 \q
# 重启数据库
gs_om -t restart
⑤、客户端工具连接数据库
选择华为云 GaussDB主备版
按照如下输入信息:
可以正常使用客户端操作数据库了: