openGauss 5.0企业版主从部署,实战狂飙

Posted IT邦德

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了openGauss 5.0企业版主从部署,实战狂飙相关的知识,希望对你有一定的参考价值。

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、mysql、PG、高斯及GP 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

前言

2023年4月1日, openGauss 5.0正式发布,本博客介绍了openGauss 5.0企业版主从部署的详细过程。

📣 1.openGauss 5.0

2023年4月1日,openGauss 5.0.0是openGauss发布的第三个LTS版本,版本生命周期为3年。
openGauss 5.0.0版本与之前的版本功能特性保持兼容,在内核能力、工具链、兼容性方面全面增强。

官网下载地址:
https://opengauss.org/zh/download/

📣 2.环境准备

##操作系统:
CentOS Linux release 7.9.2009 (Core)

##主机IP
主库:hostnamectl set-hostname opengauss5M
备库:hostnamectl set-hostname opengauss5B

##内存
[root@Jeames ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3020         281        2630           7         107        2684
Swap:         10239           0       10239


##字符集确认
[root@opengauss5m ~]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"

可以在/etc/profile文件中添加export LANG=en_US.UTF-8


##软件依赖要求
下列依赖软件的默认安装包,若不存在下列软件,可参看软件对应的建议版本。

✨ 2.1 关闭SeLinux

sed -i ‘s/^SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
setenforce 0

注:主库和备库同时修改,然后重启服务器
[root@opengauss5m ~]# /usr/sbin/sestatus
SELinux status:                 disabled

✨ 2.2 关闭防火墙

注:主备库均做如下操作

1.检查防火墙是否关闭
[root@opengauss5m ~]# systemctl status firewalld
若防火墙状态显示为active (running),则表示防火墙未关闭
若防火墙状态显示为inactive (dead),则无需再关闭防火墙

2.关闭防火墙并禁止开机重启
systemctl disable firewalld.service
systemctl stop firewalld.service

✨ 2.3 关闭RemoveIPC

1.修改/etc/systemd/logind.conf文件中的“RemoveIPC”值为“no”
vi /etc/systemd/logind.conf
RemoveIPC=no

##重新加载配置参数
systemctl daemon-reload
systemctl restart systemd-logind

✨ 2.4 设置root用户远程登录

vi /etc/ssh/sshd_config
## 将“PermitRootLogin”改为“yes”
PermitRootLogin yes

## 注释掉“Banner”所在的行
#Banner none

## 重启生效
systemctl restart sshd.service

✨ 2.5 yum安装依赖

注:两个节点均做如下操作

##创建挂载目录
mkdir /cdrom

[root@opengauss5m ~]# ls -lrt /opt/CentOS-7-x86_64-DVD-2009.iso
-rw-r--r-- 1 root root 4712300544 Apr  8 09:28 /opt/CentOS-7-x86_64-DVD-2009.iso

##挂载目录
mount -o loop /opt/CentOS-7-x86_64-DVD-2009.iso /cdrom

[root@opengauss5m ~]# df -TH
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  1.5G     0  1.5G   0% /dev
tmpfs                   tmpfs     1.5G     0  1.5G   0% /dev/shm
tmpfs                   tmpfs     1.5G   11M  1.5G   1% /run
tmpfs                   tmpfs     1.5G     0  1.5G   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        96G  6.8G   89G   8% /
/dev/sda1               xfs       1.1G  158M  906M  15% /boot
tmpfs                   tmpfs     297M     0  297M   0% /run/user/0
/dev/loop0              iso9660   4.8G  4.8G     0 100% /cdrom

##yum源配置文件
[root@opengauss5m ~]# cd /etc/yum.repos.d/
[root@opengauss5m yum.repos.d]# mkdir bak
[root@opengauss5m yum.repos.d]# mv CentOS* bak

[root@opengauss5m yum.repos.d]# vi local.repo
[base-local]
name=CentOS7-local
baseurl=file:///cdrom
enabled=1
gpgcheck=0

#清空并重载yum
yum clean all
yum makecache
##测试yum安装
yum -y install tree


##安装依赖包
yum install libaio-devel flex bison ncurses-devel glibc-devel patch redhat-lsb-core readline-devel libnsl -y
yum install net-tools -y

✨ 2.6 host设置

注:主备2个节点均做如下设置

##主库
[root@opengauss5m ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.6.10 opengauss5m

##备库
[root@opengauss5b ~]# more /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.6.11 opengauss5b

✨ 2.7 Python安装

CentOS:支持Python 3.6.X,python需要通过--enable-shared方式编译
1.依赖包安装
[root@opengauss5m ~]# yum install -y zlib*
[root@opengauss5m ~]# rpm -qa | grep zlib
zlib-1.2.7-18.el7.x86_64
zlib-devel-1.2.7-18.el7.x86_64

2.安装包下载
python官网 https://www.python.org/downloads/release/python-3615/下载安装包即可
安装包为:Python-3.6.15.tgz

3.解压并编译
cd /opt
tar -zxvf Python-3.6.15.tgz
cd Python-3.6.15/
./configure --prefix=/usr/local/python3 --enable-shared

make
make install
注意:make编译时间比较长,耐心等待

4.OS上设置python的软连接
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip

5.环境校验
[root@opengauss5m ~]# python -V
python: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory

出现以上报错处理方法,libpython3.6m.so.1.0复制到/usr/lib64/目录下即可

[root@opengauss5m ~]# find / -name libpython3.6m.so.1.0
/usr/local/python3/lib/libpython3.6m.so.1.0
/opt/Python-3.6.15/libpython3.6m.so.1.0

[root@opengauss5m ~]#  cp /usr/local/python3/lib/libpython3.6m.so.1.0 /usr/lib64

[root@opengauss5m ~]# python3 -V
Python 3.6.15

[root@opengauss5m ~]# python
Python 3.6.15 (default, Apr  8 2023, 11:45:45)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

📣 3.目录创建

##创建存放安装包的目录
mkdir -p /opt/software/openGauss
chmod 755 -R /opt/software

##创建数据库软件相关目录
mkdir -p /opt/openGauss
chmod -R 755 /opt/openGauss

4.安装包解压

安装包下载地址: https://opengauss.org/zh/download/
注:从以上网站下载企业版即可

上传到主库所在的目录:/opt/software/openGauss

##解压安装包
cd /opt/software/openGauss
tar -zxvf openGauss-5.0.0-CentOS-64bit-all.tar.gz
tar -zxvf openGauss-5.0.0-CentOS-64bit-om.tar.gz

5.XML配置文件

安装openGauss前需要创建cluster_config.xml文件。cluster_config.xml文件包含部署openGauss的服务器信息、安装路径、IP地址以及端口号等。
用于告知openGauss如何部署。用户需根据不同场景配置对应的XML文件。

本次部署以一主一备的方式创建XML配置文件

## 配置数据库名称及各项目录
[root@opengauss5m ~]# find / -name cluster_config_template.xml
/opt/software/openGauss/script/gspylib/etc/conf/cluster_config_template.xml
说明:获取XML文件模板,按照实际环境配置

编辑配置XML文件:
vi /opt/software/openGauss/cluster_config.xml

<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
    <!-- openGauss整体信息 -->
    <CLUSTER>
        <!-- 数据库名称 -->
        <PARAM name="clusterName" value="opengauss" />
        <!-- 数据库节点名称(hostname) -->
        <PARAM name="nodeNames" value="opengauss5m,opengauss5b" />
        <!-- 数据库安装目录-->
        <PARAM name="gaussdbAppPath" value="/opt/openGauss/app" />
        <!-- 日志目录-->
        <PARAM name="gaussdbLogPath" value="/opt/openGauss/log/omm" />
        <!-- 临时文件目录-->
        <PARAM name="tmpMppdbPath" value="/opt/openGauss/tmp"/>
        <!-- 数据库工具目录-->
        <PARAM name="gaussdbToolPath" value="/opt/openGauss/om" />
        <!-- 数据库core文件目录-->
        <PARAM name="corePath" value="/opt/openGauss/corefile"/>
        <!-- 节点IP,与数据库节点名称列表一一对应 -->
        <PARAM name="backIp1s" value="192.168.6.10,192.168.6.11"/> 
    </CLUSTER>
    <!-- 每台服务器上的节点部署信息 -->
    <DEVICELIST>
        <!-- 节点1上的部署信息 -->
        <DEVICE sn="opengauss5m">
            <!-- 节点1的主机名称 -->
            <PARAM name="name" value="opengauss5m"/>
            <!-- 节点1所在的AZ及AZ优先级 -->
            <PARAM name="azName" value="AZ1"/>
            <PARAM name="azPriority" value="1"/>
            <!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
            <PARAM name="backIp1" value="192.168.6.10"/>
            <PARAM name="sshIp1" value="192.168.6.10"/>
            
	    <!--dn-->
            <PARAM name="dataNum" value="1"/>
	    <PARAM name="dataPortBase" value="15400"/>
	    <PARAM name="dataNode1" value="/opt/openGauss/data/dn,opengauss5b,/opt/openGauss/data/dn"/>
            <PARAM name="dataNode1_syncNum" value="0"/>
        </DEVICE>

        <!-- 节点2上的节点部署信息,其中“name”的值配置为主机名称 -->
        <DEVICE sn="opengauss5b">
            <!-- 节点2的主机名称 -->
            <PARAM name="name" value="opengauss5b"/>
            <!-- 节点2所在的AZ及AZ优先级 -->
            <PARAM name="azName" value="AZ1"/>
            <PARAM name="azPriority" value="1"/>
            <!-- 节点2的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
            <PARAM name="backIp1" value="192.168.6.11"/>
            <PARAM name="sshIp1" value="192.168.6.11"/>
	</DEVICE>
    </DEVICELIST>
</ROOT>

6.初始化安装

采用交互模式执行前置,并在执行过程中自动创建操作系统root用户互信和omm用户互信
#主库执行即可
[root@opengauss5m ~]# cd /opt/software/openGauss/script
[root@opengauss5m script]# ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml
[GAUSS-51405] : You need to install software:expect
#解决办法是安装如下依赖包
yum install expect

输入集群密码:omm123

[FAILURE] opengauss5m:
[GAUSS-50202] : The /opt/openGauss must be empty. Or user [omm] has write permission to directory /opt/openGauss. Because it will create symbolic link [/opt/openGauss/app] to install path [/opt/openGauss/app_a07d57c3] in gs_install process with this user.
[FAILURE] opengauss5b:
[GAUSS-50202] : The /opt/openGauss must be empty. Or user [omm] has write permission to directory /opt/openGauss. Because it will create symbolic link [/opt/openGauss/app] to install path [/opt/openGauss/app_a07d57c3] in gs_install process with this user.

#以上报错处理方法,然后再重新执行
[root@opengauss5m script]# rm -rf /opt/openGauss
[root@opengauss5m script]# chmod 775 /opt -R
[root@opengauss5m script]# chown omm:dbgrp /opt -R

7.执行安装

/opt/openGauss/app

#主库执行即可,在执行过程中,用户需根据提示输入数据库的密码,密码具有一定的复杂度,为保证用户正常使用该数据库,请记住输入的数据库密码

设置的密码要符合复杂度要求:
最少包含8个字符,最多包含16个字符。
不能和用户名、当前密码(ALTER)、或当前密码反序相同。
至少包含大写字母(A-Z)、小写字母(a-z)、数字、非字母数字字符(限定为~!@#$%^&*()-_=+\\|[];:,<.>/?)四类字符中的三类字符。
1.登录到openGauss的主机,并切换到omm用户
[root@opengauss5m ~]# su - omm
[omm@opengauss5m ~]$ ll /opt/software/openGauss/cluster_config.xml
-rw------- 1 omm dbgrp 2532 Apr  8 11:21 /opt/software/openGauss/cluster_config.xml
gs_install -X /opt/software/openGauss/cluster_config.xml

2.安装执行成功之后,需要手动删除主机root用户的互信,即删除openGauss数据库各节点上的互信文件。
rm –rf ~/.ssh

8.安装验证

1.集群状态检查
## 通过openGauss提供的gs_om工具可以完成数据库状态检查

以omm用户身份登录服务器。
执行如下命令检查数据库状态是否正常,“cluster_state ”显示“Normal”表示数据库可正常使用

[root@opengauss5m ~]# su - omm
Last login: Sat Apr  8 12:56:31 CST 2023 on pts/0
[omm@opengauss5m ~]$ gs_om -t status
-----------------------------------------------------------------------

cluster_name    : opengauss
cluster_state   : Normal
redistributing  : No

-----------------------------------------------------------------------
[omm@opengauss5m ~]$ 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  opengauss5m 192.168.6.10    15400      6001 /opt/openGauss/data/dn   P Primary Normal
2  opengauss5b 192.168.6.11    15400      6002 /opt/openGauss/data/dn   S Standby Normal

3.gs_om -t stop
[omm@opengauss5m ~]$ gs_om -t stop

4.启动集群
[omm@opengauss5m ~]$ gs_om -t start

5.登录数据库
[omm@opengauss5m ~]$ gsql -d postgres -p 15400
gsql ((openGauss 5.0.0 build a07d57c3) compiled at 2023-03-29 03:07:56 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

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)

openGauss数据导入导出

1、数据导入导出 - INSERT&nbsp;

⚫ 用户可以通过以下方式执行INSERT语句直接向openGauss数据库写入数据:&nbsp;

 使用openGauss数据库提供的客户端工具向openGauss数据库写入数据。&nbsp;

 通过JDBC/ODBC驱动连接数据库执行INSERT语句向openGauss数据库写入数据。&nbsp;

⚫ openGauss数据库支持完整的数据库事务级别的增删改操作。INSERT是最简单的一种数 据写入方式,这种方式适合数据写入量不大,并发度不高的场景。


2、数据导入导出 – COPY FROM STDIN&nbsp;&nbsp;

⚫ 用户可以使用以下方式通过COPY FROM STDIN语句直接向openGauss写入数据。&nbsp;

 通过键盘输入向openGauss写入数据。通过COPY命令实现在表和文件之间拷贝数据。COPY FROM表示从一个文件拷贝数据到一个表,COPY TO表示把一个表的数据拷贝到一个文件。&nbsp;

◼ COPY FROM/TO适合低并发,本地小数据量导入导出。&nbsp;

 通过JDBC驱动的CopyManager接口从文件或者数据库向openGauss写入数据。此方法支持 COPY语法中copy option的所有参数。&nbsp;

◼ CopyManager是 openGauss JDBC驱动中提供的一个API接口类,用于批量向openGauss中导入数据。&nbsp;

◼ CopyManager类位于org.postgresql.copy Package中,继承自java.lang.Object类。

⚫ COPY适用场景:&nbsp;

 小数据量表以文本数据作为来源导入;&nbsp;

 小数量表的导出;&nbsp;

 查询结果集导出。&nbsp;

⚫ COPY使用方法:&nbsp;

 文本数据导入;

copy t1 from '/data/input/t1.txt' delimiter '^';

 表数据导出;

copy t1 to '/data/input/t1_output.txt' delimiter '^';

 查询结果集导出;

copy (select * from t1 where a2=1) to '/data/input/t1_output.txt' delimiter '^';


3、数据导入导出 – gsql&nbsp;

⚫ openGauss的gsql工具提供了元命令\\copy进行数据导入导出。&nbsp;

⚫ \\copy元命令语法


⚫ 说明:&nbsp;

 在任何gsql客户端登录数据库成功后,可以使用该命令进行数据的导入/导出。但是与SQL的 COPY命令不同,该命令读取/写入的文件是本地文件,而非数据库服务器端文件;因此要操作 的文件的可访问性、权限等,都是受限于本地用户的权限。


4、数据导入导出 – gs_dump&nbsp;

⚫ openGauss提供的gs_dump和gs_dumpall工具,能够帮助用户导出需要的数据库对象或 其相关信息。通过导入工具将导出的数据信息导入至需要的数据库,可以完成数据库信 息的迁移。&nbsp;

&nbsp;gs_dump支持导出单个数据库或其内的对象,而gs_dumpall支持导出openGauss中所有 数据库或各库的公共全局对象。

gs_dump 参数说明:



5、导出数据库&nbsp;

⚫ openGauss支持使用gs_dump工具导出某个数据库级的内容,包含数据库的数据和所有 对象定义。可根据需要自定义导出如下信息:&nbsp;

 导出数据库全量信息,包含数据和所有对象定义。使用导出的全量信息可以创建一个与当前库 相同的数据库,且库中数据也与当前库相同。&nbsp;

 仅导出所有对象定义,包括:库定义、函数定义、模式定义、表定义、索引定义和存储过程定 义等。使用导出的对象定义,可以快速创建一个相同的数据库,但是库中并无原数据库的数据。&nbsp;

 仅导出数据,不包含所有对象定义。&nbsp;

⚫ 示例:使用gs_dump导出postgres数据库。

gs_dump -U jack -f /home/omm/backup/postgres_backup.tar -p 8000 postgres -F t


6、导出模式&nbsp;

⚫ openGauss目前支持使用gs_dump工具导出模式级的内容,包含模式的数据和定义。&nbsp;

⚫ 用户可通过灵活的自定义方式导出模式内容,不仅支持选定一个模式或多个模式的导出, 还支持排除一个模式或者多个模式的导出。可根据需要自定义导出如下信息:&nbsp;

 导出模式全量信息,包含数据和对象定义。&nbsp;

 仅导出数据,即模式包含表中的数据,不包含对象定义。&nbsp;

 仅导出模式对象定义,包括:表定义、存储过程定义和索引定义等。&nbsp;

⚫ 示例:使用gs_dump同时导出hr和public模式。

gs_dump -U jack -f /home/omm/backup/MPPDB_schema_backup -p 8000 human_resource -n hr -n public -F d


7、导出表&nbsp;

⚫ openGauss支持使用gs_dump工具导出表级的内容,包含表定义和表数据。视图、序列 和外表属于特殊的表。&nbsp;

⚫ 用户可通过灵活的自定义方式导出表内容,不仅支持选定一个表或多个表的导出,还支 持排除一个表或者多个表的导出。可根据需要自定义导出如下信息:&nbsp;

 导出表全量信息,包含表数据和表定义。&nbsp;

 仅导出数据,不包含表定义。&nbsp;

 仅导出表定义。

⚫ 示例:使用gs_dump同时导出指定表hr.staffs和hr.employments。

gs_dump -U jack -f /home/omm/backup/MPPDB_table_backup -p 8000 human_resource -t hr.staffs -t hr.employments -F d


8、导出所有数据库&nbsp;

⚫ openGauss支持使用gs_dumpall工具导出所有数据库的全量信息,包含openGauss中每个数据库 信息和公共的全局对象信息。可根据需要自定义导出如下信息:&nbsp;

 导出所有数据库全量信息,包含openGauss中每个数据库信息和公共的全局对象信息(包含角色和表空 间信息)。使用导出的全量信息可以创建与当前主机相同的一个主机环境,拥有相同数据库和公共全局 对象,且库中数据也与当前各库相同。

 仅导出数据,即导出每个数据库中的数据,且不包含所有对象定义和公共的全局对象信息。&nbsp;

 仅导出所有对象定义,包括:表空间、库定义、函数定义、模式定义、表定义、索引定义和存储过程定 义等。使用导出的对象定义,可以快速创建与当前主机相同的一个主机环境,拥有相同的数据库和表空 间,但是库中并无原数据库的数据。&nbsp;

⚫ 示例:使用gs_dumpall一次导出所有数据库信息。

gs_dumpall -U omm -f /home/omm/backup/MPPDB_backup.sql -p 8000


9、无权限角色导出数据&nbsp;

⚫ gs_dump和gs_dumpall通过-U指定执行导出的用户帐户。如果当前使用的帐户不具备导 出所要求的权限时,会无法导出数据。此时,可在导出命令中设置--role参数来指定具备 权限的角色。在执行命令后,gs_dump和gs_dumpall会使用--role参数指定的角色,完 成导出动作。&nbsp;

⚫ 示例:使用gs_dump导出human_resource数据库数据。&nbsp;

 假设用户jack不具备导出数据库human_resource的权限,而角色role1具备该权限,要实现导 出数据库human_resource,可以在导出命令中设置--role角色为role1,使用role1的权限,完 成导出目的。

gs_dump -U jack -f /home/omm/backup/MPPDB_backup.tar -p 8000 human_resource --role role1 -- rolepassword abc@1234 -F t


数据导入导出 – gs_restore&nbsp;

⚫ gs_restore是openGauss数据库提供的与gs_dump配套的导入工具。通过该工具,可将gs_dump 导出的文件导入至数据库。gs_restore支持导入的文件格式包含自定义归档格式、目录归档格式和 tar归档格式。&nbsp;

⚫ gs_restore具备如下两种功能。&nbsp;

 导入至数据库&nbsp;

◼ 如果指定了数据库,则数据将被导入到指定的数据库中。其中,并行导入必须指定连接数据库的密码。&nbsp;

 导入至脚本文件&nbsp;

◼ 如果未指定导入数据库,则创建包含重建数据库所需的SQL语句脚本,并将其写入至文件或者标准输出。该脚本文 件等效于gs_dump导出的纯文本格式文件。&nbsp;

⚫ gs_restore工具在导入时,允许用户选择需要导入的内容,并支持在数据导入前对等待导入的内容 进行排序。

gs_restore 参数说明



gs_restore 示例&nbsp;

⚫ 使用gs_restore命令,从postgres整个数据库内容的导出文件中,将数据库的所有对象的 定义导入到backupdb。

gs_restore -U jack /home/omm/backup/MPPDB_backup.tar -p 8000 -d backupdb -s -e -c

⚫ 使 用 gs_restore 命 令 , 导 入 指 定 MPPDB_backup.dmp 文 件 ( 自 定 义 归 档 格 式 ) 中 postgres数据库的数据和对象定义。

gs_restore backup/MPPDB_backup.dmp -p 8000 -d backupdb

⚫ 使用gs_restore命令,将postgres数据库的所有对象的定义导入至backupdb数据库。导 入前,postgres存在完整的定义和数据,导入后,backupdb数据库只存在所有对象定义, 表没有数据。

gs_restore /home/omm/backup/MPPDB_backup.tar -p 8000 -d backupdb -s -e -c



10、ANALYZE&nbsp;

⚫ 执行计划生成器需要使用表的统计信息,以生成最有效的查询执行计划,提高查询性能。因此数据导入完成后,建议执行ANALYZE语句生成最新的表统计信息。统计结果存储在 系统表PG_STATISTIC中。&nbsp;

⚫ ANALYZE支持的表类型有行/列存表。ANALYZE同时也支持对本地表的指定列进行信息 统计。&nbsp;

⚫ ANALYZE语法(以product_info表为例)。

postgres=# ANALYZE product_info;&nbsp;

ANALYZE


VACUUM&nbsp;

⚫ 如果导入过程中,进行了大量的更新或删除行时,应运行VACUUM FULL命令,然后运 行ANALYZE命令。大量的更新和删除操作,会产生大量的磁盘页面碎片,从而逐渐降低 查询的效率。VACUUM FULL可以将磁盘页面碎片恢复并交还操作系统。&nbsp;

⚫ VACUUM FULL语法(以product_info表为例)。

postgres=# VACUUM FULL product_info;&nbsp;

VACUUM

以上是关于openGauss 5.0企业版主从部署,实战狂飙的主要内容,如果未能解决你的问题,请参考以下文章

云原生使用Docker部署openGauss

部署OpenGauss DB一主二备集群

Zabbix 5.0 LTS 源码包编译部署以及新特性介绍

Zabbix 5.0 LTS 源码包编译部署以及新特性介绍

一文读懂GaussDB(openGauss) 的六大关键技术特性

参赛作品78参加openGauss课程21天学习有感