openGauss本地Centos7.6单机安装和简单应用

  • openGauss基础环境配置
  • openGauss安装
  • openGauss使用测试
  • openGauss常用命令

openGauss基础环境配置

  1. 在VMware Workstation中安装一台 centos7.6
  1. 内存:8GB,亲测4GB安装不够
  2. 磁盘:测试50GB-100GB够用
  3. 非必须,记得配置网卡 vim /etc/sysconfig/network-script/ifcfg-ens33
    可以直接配置静态IP,根据个人习惯
  4. 非必须,ifconfig要能使用,不能使用的可以按照下面操作
yum install -y net-tools.x86_64
  1. 查看centos的版本
cat /etc/redhat-release
  1. 非必须:如果后面下载速度非常慢的话,可更换yum源为aliyun,速度快则不用在意这一步
  1. 删除系统自带的yum源
rm -rf /etc/yum.repo.d/*
  1. 下载新的yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  1. 生成仓库缓存
yum makecache
  1. 安装openGauss需要的依赖包
yum -y install libaio-devel flex bison ncurses-devel glibc-devel lsb_release

所需软件

建议版本

libaio-devel

建议版本:0.3.109-13

flex

要求版本:2.5.31 以上

bison

建议版本:2.7-4

ncurses-devel

建议版本:5.9-13.20130511

glibc-devel

建议版本:2.17-111

patch

建议版本:2.7.1-10

redhat-lsb-core

建议版本:4.1

readline-devel

建议版本:7.0-13

libnsl(openEuler+x86环境中)

建议版本:2.28-36

  1. 安装python 3.6
#安装python 3.6
yum install -y python

#查看python版本
python -V
  1. 关闭防火墙firewall和SELINUX
  1. 关闭firewall
  1. 停止firewall
systemctl stop firewalld.service
  1. 关闭firewall开机自启
systemctl disable firewalld.service
  1. 可以查看以下firewall的状态
systemctl status firewalld.service
  1. 关闭SELINUX
  1. 使用VIM打开SELINUX的config文件
vim /etc/selinux/config
  1. 修改SELINUX的值,然后保存退出
SELINUX=enforcing 修改为 ELINUX=disabled
  1. 重启centos
reboot
  1. 关闭内存交换
swapoff -a
  1. 关闭透明大页

注: 透明大页是一种内存管理技术,它可以将多个物理页合并成一个大页,以提高内存访问效率。但是,透明大页可能会导致openGauss的性能下降和稳定性问题,因为openGauss使用的是自己的内存管理机制,与透明大页不兼容。关闭透明大页可以避免这些问题,提高openGauss的性能和稳定性。

  1. 使用vim打开rc.local
vim /etc/rc.d/rc.local
  1. 在文件中添加
if test ‐f /sys/kernel/mm/transparent_hugepage/enabled;
then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test ‐f /sys/kernel/mm/transparent_hugepage/defrag;
then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
  1. 修改主机名
  1. 设置主机名
hostnamectl set-hostname --static 主机名
  1. 添加主机映射关系
  1. 使用vim打开hosts
vim /etc/hosts
  1. 在文件中最后添加centos的ip和主机名
ip 主机名

openGauss安装

  1. 获取openGauss安装包(本操作为3.0.0)
  2. 在开源官网选择需要的版本进行下载,在上传到centos7.6中:https://opengauss.org/zh/download/archive/
  3. 在后面的安装过程中使用wget在线下载
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.0.0/x86/openGauss-3.0.0-CentOS-64bit-all.tar.gz
  1. openGauss详细安装步骤
  1. 创建用户组和用户
#1、创建用户组dbgroup:
groupadd dbgroup
#2、创建用户omm,并让他属于dbgroup用户组
useradd -g dbgroup /home/omm -m -s /bin/bash omm
#3、设置用户omm的登录密码
passwd omm
#回车输入密码: Gauss_1234 (自定义)
  1. 创建一个目录soft并授权
mkdir -p /opt/soft/openGauss
chmod 755 -R /opt/soft
chown -R omm:dbgroup /opt/soft/openGauss
  1. 在/opt/soft/openGauss/目录下,下载openGauss 3.0.0 安装包
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.0.0/x86/openGauss-3.0.0-CentOS-64bit-all.tar.gz
  1. 解压压缩包
tar -zvxf openGauss-3.0.0-CentOS-64bit-all.tar.gz
tar -zvxf openGauss-3.0.0-CentOS-64bit-om.tar.gz
  1. 配置openGauss的cluster_config_template.xml文件
  1. 将配置文件从下载包中复制到openGauss目录下
cp /opt/soft/openGauss/script/gspylib/etc/conf/cluster_config_templae.xml /opt/soft/openGauss/
  1. 使用vim打开文件并修改主机名和主机iP,如果是单机,只保留一个节点的信息即可
<?xml version="1.0" encoding="utf-8"?>
<ROOT>
  <CLUSTER>
    <!--集群名称可以修改也可以不改-->
    <PARAM name="clusterName" value="Cluster_template" />
    <!--主机名,如果是部署单机的,就只写一个-->
    <PARAM name="nodeNames" value="node1_hostname,node2_hostname"/>
    <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" />
    <PARAM name="corePath" value="/opt/huawei/corefile"/>
    <!--主机ip,如果是部署单机的,就只写一个-->
    <PARAM name="backIp1s" value="192.168.0.1,192.168.0.2"/>
  </CLUSTER>

  <DEVICELIST>
    <!--集群节点名称,如果是单节点,只保留一个DEVICE即可-->
    <DEVICE sn="node1_hostname">
      <PARAM name="name" value="node1_hostname"/>
      <PARAM name="azName" value="AZ1"/>
      <PARAM name="azPriority" value="1"/>
      <PARAM name="backIp1" value="192.168.0.1"/>
      <PARAM name="sshIp1" value="192.168.0.1"/>
      <!-- dn -->
      <PARAM name="dataNum" value="1"/>
      <PARAM name="dataPortBase" value="15400"/>
      <PARAM name="dataNode1" value="/opt/huawei/install/data/dn,node2_hostname,/opt/huawei/install/data/dn"/>
      <PARAM name="dataNode1_syncNum" value="0"/>
    </DEVICE>
  <!--需要就配置,不需要就删除-->
    <DEVICE sn="node2_hostname">
      <PARAM name="name" value="node2_hostname"/>
      <PARAM name="azName" value="AZ1"/>
      <PARAM name="azPriority" value="1"/>
      <PARAM name="backIp1" value="192.168.0.2"/>
      <PARAM name="sshIp1" value="192.168.0.2"/>
    </DEVICE>
  </DEVICELIST>
</ROOT>
  1. 设置lib库,在根目录 **/root/**目录下的.bashrc文件中,该文件开机自动扫描
  1. 使用vim打开.bashrc
vim .bashrc
  1. 添加如下内容,记得修改openGauss集群名称
export GPHOME=/opt/huawei/install/om
export PATH=$GPHOME/script/gspylib/pssh/bin:$GPHOME/script:$PATH
export LD_LIBRARY_PATH=$GPHOME/lib:$LD_LIBRARY_PATH
export PYTHONPATH=$GPHOME/lib
export GAUSSHOME=/opt/huawei/install/app
export PATH=$GAUSSHOME/bin:$PATH
export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH
export S3_CLIENT_CRT_FILE=$GAUSSHOME/lib/client.crt
# notice openGauss's version
export GAUSS_VERSION=3.0.0
export PGHOST=/opt/huawei/tmp
export GAUSSLOG=/opt/huawei/log/omm
umask 077
export GAUSS_ENV=2
export GS_CLUSTER_NAME=集群名称
  1. 执行交互式初始化
  1. 切换为omm用户
su omm
  1. 进入到/opt/soft/openGauss/script/目录下
  2. 预安装
python3 gs_preinstall -U omm -G dbgroup -X /opt/soft/openGauss/cluster_config_template.xml

注意:当输出最后是以下内容时表示 预安装成功

Successfully set finish flag.
Preinstallation succeeded.

  1. 真正安装
  1. 执行安装命令
./gs_install -X /opt/soft/openGauss/cluster_config_template.xml
  1. 输入密码:最少8个字符,需包含大小写字母、数字、字符
    该密码为后期连接openGauss时使用的密码勿忘
  2. 安装成功:最后输出如下,很可能会因为内存不够而报错,一定要注意看报错日志。

Successfully started cluster.
Successfully installed application.
end deploy.

  1. 接下来进行openGauss简单应用测试

openGauss使用测试

  1. openGauss服务启/停
#分布式
gs_om -t start   #启动服务
gs-om -t restart #重启服务
#集中式
gs_om -t stop    #关闭服务
gs-om -t restart #启动服务
  1. 查看openGauss数据库状态
gs_om -t status --detail
  1. 检查性能
gs_checkperf
gs_checkperf -i pmk -U omm
gs_checkperf -i pmk -U omm --detail
  1. 查看数据库端口号
cat /opt/huawei/install/data/dn/postgresql.conf | grep port
  1. 以omm远程连接上centos7.6,登录openGauss
gsql -d postgres -p 15400 #在cluster_config_templae.conf中设置的连接端口
  1. 应用
  1. 创建/删除 用户
create user 用户名 with passwd "密码";   #新用户
drop user 用户名 cascade;   #删除前需确保该用户下没有任何资源
  1. 创建/删除 数据库
create database 库名 owner 用户名; #创建数据库,不指定owner默认omm
drop database 库名; #删除数据库
  1. 创建/删除 表
create table stu(id int,name varchar(10),gender varchar(10),age int);
drop table stu;
  1. 修改表结构-(新增一列)
alter table stu add hobby varchar(20);
  1. 查询数据
select * from stu;
  1. 新增数据
insert into stu values(1001,'ethan','male',24,'play basketball');
  1. 更新数据
update stu set hobby='play football' where id=1001;
  1. 删除数据
delete from stu where id=1001;

openGauss常用命令

  1. 退出数据库
Postgres=# \q
  1. 进入数据库可以直接用help获取帮助信息
    版权信息
Postgres=# \copyright
  1. 查看数据库对象
    查看帮助信息
postgres=# \?
  1. 切换数据库
postgres=# \c dbname
  1. 列举数据库:
    使用\l元命令查看数据库系统的数据库列表。
postgres=# \l
  1. 使用如下命令通过系统表pg_database查询数据库列表。
postgres=# SELECT datname FROM pg_database;
  1. 列举表:
postgres=# \dt
  1. 列举所有表、视图和索引:
postgres=# \d+
  1. 使用gsql的\d+命令查询表的属性
postgres=# \d+ tablename
  1. 查看表结构:
postgres=# \d tablename
  1. 列举schema:
postgres=# \dn
  1. 查看索引:
postgres=# \di
  1. 查询表空间:
    使用gsql程序的元命令查询表空间。
postgres=# \db
  1. 检查pg_tablespace系统表。如下命令可查到系统和用户定义的全部表空间。
postgres=# SELECT spcname FROM pg_tablespace;
  1. 查看数据库用户列表:
postgres=# SELECT * FROM pg_user;
  1. 要查看用户属性:
postgres=# SELECT * FROM pg_authid; 

postgres=# SELECT * FROM PG_ROLES;
  1. 其他操作
    切换数据库:
postgres=# \c dbname
  1. 切换用户:
postgres=# \c – username