国产数据库OpenGauss--在CentOS7.x系统中安装单节点集群、验证及简单数据管理
OpenGauss介绍
openGauss是一款支持SQL2003标准语法,支持主备部署的高可用关系型数据库。
- 产品: OLTP、企业级特性、自研比例超80%
- 使用场景: 国产化领域,普遍适用于各行业的交易系统
- 社区: 开放代码、开源社区、共治共享
- 知识产权: 木兰宽松许可证,无重大知识产权风险
- 风险: 代码完全国人管控,彻底解决断供风险
OpenGauss 单节点集群安装
推荐采用的操作系统是:openEuler 20.03LTS
如果是Centos系统,则只支持CentOS 7.6
安装环境
- CPU: 2 * Intel® Xeon® CPU E5-2680 v4 @ 2.40GHz
- 内存:256G 内存
- 操作系统:CentOS7.9
软件环境准备
参见:准备软硬件安装环境
设置主机名并配置/etc/hosts文件
hostnamectl set-hostname 新主机名
systemctl restart systemd-hostnamed
关闭防火墙
systemctl disable firewalld.service
systemctl stop firewalld.service
设置字符集、时区和时间
vim /etc/profile
export LANG=zh_CN.UTF-8
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
关闭SELinux
vi /etc/selinux/config
SELINUX=enforcing修改为SELINUX=disabled
或
sed -i 's/enforcing/disabled/g' /etc/selinux/config
注意:SELINUXTYPE配置不需要修改
设置网卡的mtu
将各数据库节点的网卡MTU值设置为相同大小。对于x86,MTU值推荐1500;对于ARM,MTU值推荐8192。
- 查看网卡的配置:
cat /etc/sysconfig/network-scripts/ifcfg-网卡编号
- 查看网卡的mtu值
ip addr show 网卡编号
- 临时修改:
ifconfig 网卡编号 mtu 值
- 永久修改:在
/etc/sysconfig/network-scripts/ifcfg-网卡编号
配置文件中添加``,然后重启网卡service network restart
关闭RemoveIPC
在各数据库节点上,关闭RemoveIPC。CentOS操作系统无该参数,可以跳过该步骤。
当一个user 完全退出os之后,remove掉所有的IPC objects。该特性由/etc/systemd/logind.conf参数文件中RemoveIPC选项来控制。
可以增加RemoveIPC=no避免删除。
- 修改以下2个配置文件
vim /etc/systemd/logind.conf
vim /usr/lib/systemd/system/systemd-logind.service
修改“RemoveIPC”值为“no”。
RemoveIPC=no
- 重新加载配置
systemctl daemon-reload
systemctl restart systemd-logind
- 检查修改是否生效
loginctl show-session | grep RemoveIPC
systemctl show systemd-logind | grep RemoveIPC
设置root用户远程登录
vim /etc/ssh/sshd_config
- 将#PermitRootLogin no修改为PermitRootLogin yes
- 注释掉“Banner”所在的行
- 重启 systemctl restart sshd.service
sed -i '/Banner/s/^/#/' /etc/ssh/sshd_config
sed -i '/PermitRootLogin/s/^/#/' /etc/ssh/sshd_config
echo "Banner none" >> /etc/ssh/sshd_config
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
关闭swap交换内存【可选】
swapoff -a
或
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
设置系统版本【可选】
如果Centos的版本不是7.6,如是7.9,则需要将系统版本修改为7.6
echo "CentOS Linux release 7.6.1810 (Core)">/etc/centos-release
或
修改script/gspylib/os/gsplatform.py
文件中SUPPORT_RHEL7X_VERSION_LIST
位置,增加7.7-7.9版本的支持,["7.0", "7.1", "7.2", "7.3", "7.4", "7.5", "7.6", "7.7", "7.8", "7.9", "10"]
。
其它参数设置
cat << EOF >>/etc/sysctl.conf
net.ipv4.tcp_retries1 = 5
net.ipv4.tcp_syn_retries = 5
net.ipv4.tcp_synack_retries = 5
net.ipv4.ip_local_port_range = 26000-65535
net.ipv4.tcp_fin_timeout = 60
net.ipv4.tcp_sack = 1
net.ipv4.tcp_timestamps = 1
vm.overcommit_ratio = 90
vm.extfrag_threshold = 500
net.sctp.path_max_retrans = 10
net.sctp.max_init_retransmits = 10
EOF
cat << EOF >>/etc/systemd/system.conf
DefaultLimitNOFILE=1000000
DefaultLimitNPROC=unlimited
EOF
#文件系统参数,stack指线程堆栈大小
echo "* soft stack 3072" >> /etc/security/limits.conf
echo "* hard stack 3072" >> /etc/security/limits.conf
echo "* soft nofile 1000000" >> /etc/security/limits.conf
echo "* hard nofile 1000000" >> /etc/security/limits.conf
#系统支持的最大进程数设置,centos不需要
#echo "* soft nproc unlimited" >> /etc/security/limits.d/90-nproc.conf
#关闭transparent_hugepage
cat << EOF >>/etc/rc.d/rc.local
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
EOF
chmod +x /etc/rc.d/rc.local
/usr/bin/sh /etc/rc.d/rc.local
创建用户组及用户
groupadd dbgrp && useradd -g dbgrp omm
重启系统
shutdown -r now
安装步骤
上传并解压文件
上传openGauss-2.1.0-CentOS-64bit-all.tar.gz到/tmp/gauss目录
tar -zxvf openGauss-2.1.0-CentOS-64bit-all.tar.gz
tar -zxvf openGauss-2.1.0-CentOS-64bit-om.tar.gz
tar -jxvf openGauss-2.1.0-CentOS-64bit.tar.bz2
数据库配置文件准备
创建/tmp/gauss/cluster_config.xml,
内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- openGauss整体信息 -->
<CLUSTER>
<!-- 数据库名称 -->
<PARAM name="clusterName" value="OpenGaussTest" />
<!-- 数据库节点名称(hostname) -->
<PARAM name="nodeNames" value="node22" />
<!-- 数据库安装目录-->
<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="172.25.xx.xx"/>
</CLUSTER>
<!-- 每台服务器上的节点部署信息 -->
<DEVICELIST>
<!-- 节点部署信息 -->
<DEVICE sn="node22">
<PARAM name="name" value="node22"/>
<!-- 节点所在的AZ及AZ优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="172.25.xx.xx"/>
<PARAM name="sshIp1" value="172.25.xx.xx"/>
<!--dbnode-->
<PARAM name="dataNum" value="1"/>
<!--数据库端口号-->
<PARAM name="dataPortBase" value="16001"/>
<!--数据库主节点上的数据目录-->
<PARAM name="dataNode1" value="/data1/opengauss/data/dn"/>
<!--用于指定当前数据库中同步模式的节点数目。取值范围为0~数据库备机节点数。-->
<PARAM name="dataNode1_syncNum" value="0"/>
</DEVICE>
</DEVICELIST>
</ROOT>
初始化安装环境及检查
-L
指Only perform preinstallation on local nodes
/tmp/gauss/script/gs_preinstall -U omm -G dbgrp -L -X /tmp/gauss/cluster_config.xml
/tmp/gauss/script/gs_checkos -i A --detail
可以根据gs_checkos 检查的结果,针对性的针对系统参数进行调整。
注意:
- 确保python版本是正确的,
script/gspylib/common/CheckPythonVersion.py
- 检查hostname与/etc/hostname是否一致,否则会导致预安装检查失败
- 若为共用环境需加入–sep-env-file=ENVFILE参数分离环境变量,避免与其他用户相互影响,文件可以是空文件
- 可使用脚本script/gs_sshexkey创建多个服务器间的用户相信
- 针对操作系统参数的调整请参见初始化安装环境–操作系统参数
安装单节点数据库
chmod 777 /tmp/gauss
su - omm
gs_install -X /tmp/gauss/cluster_config.xml --gsinit-parameter="--locale=zh_CN.UTF-8"
注意:
- 在执行过程中,用户需根据提示输入数据库的密码,密码具有一定的复杂度,为保证用户正常使用该数据库,请记住输入的数据库密码。
- 数据库密码最少包含8个字符
- 至少包含大写字母(A-Z),小写字母(a-z),数字,非字母数字字符(限定为~!@#$%^&*()-_=+|[{}];:,<.>/?)四类字符中的三类字符。
- 安装成功后,请删除root用户的互信(
rm –rf ~/.ssh
) - 错误排查:可以在日志目录下查看预安装及安装过程的日志
数据库软件卸载
su - omm
/tmp/gauss/script/gs_uninstall --delete-data -L
## 删除安装的文件及数据目录
rm -rf /opt/huawei
rm -rf /data1/opengauss/
OpenGauss 数据库操作
使用omm用户操作
详见: 简单数据管理
初始化数据库及SQL操作
gsql -d postgres -p 16001
--修改omm密码
ALTER ROLE omm PASSWORD 'omm@1234';
--ALTER ROLE omm IDENTIFIED BY 'omm@1234' REPLACE 'omm@2022';
--create database test with encoding 'UTF8' template=template0;
--创建角色与数据库
CREATE ROLE test LOGIN PASSWORD 'test@123';
CREATE DATABASE test OWNER test ENCODING 'UTF8' template=template0;
-- 创建用户
create user tpcc identified by 'test@123' profile default;
--修改角色和赋权限
alter user tpcc sysadmin;
grant all privilege to tpcc;
create database tpccdb encoding 'UTF8' template=template0 ;
--切换到test数据库
\c test
--创建表
create table TEST (Id INTEGER,Name VARCHAR(50));
--插入及更新数据
insert into test values(1,'张三');
insert into test (id,name)values(1,'王五');
insert into test (id,name)values(2,'zhangsan');
update test set name='中国人' where id=1;
--查询数据
select * from test;
--分析表
analyse test;
--查看表占用空间
select pg_relation_size('test');
select pg_size_pretty(pg_total_relation_size('test'));
连接数据库
gsql -d test -p 16001 -U omm -W omm@1234 -r
gsql -d test -p 16001 -U test -W test@123 -r
注意:
需要指定-r参数,指定Output format 使用libedit,否则光标键前移会达不到预期的效果,即不能输入的内容再进行编辑
数据库启停
- 查看状态
gs_om -t status
gs_om -t status --detail
- 启动
gs_om -t start
- 停止
gs_om -t stop
-----------------------------------------------------------------------
cluster_name : OpenGaussTest
cluster_state : Normal
redistributing : No
-----------------------------------------------------------------------
数据库参数设置
设置最大连接数
gs_guc set -N all -I all -c "max_connections = 800"
设置远程连接
默认配置是不能远程访问,只能在本机访问
修改DN的配置文件pg_hba.conf
配置文件位于:当前主机上的数据库节点的数据存储目录如/opt/huawei/install/data/dn
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 0.0.0.0/0 sha256
或通过命令设置
gs_guc set -N all -I all -h "host all all 0.0.0.0/0 sha256"
如何通过dbeaver访问
- 下载对应操作系统的jdbc驱动包,下载地址
- 新增jdbc驱动OpenGauss,配置见下图,jdbc驱动包使用下载的那个postgresql.jar
- 使用新增的驱动,创建数据库连接
遇到的问题
FATAL: could not create listen socket for
解决方案:修改DN的配置文件postgresql.conf
默认配置的有问题,默认情况下:listen_addresses = 'localhost, 172.25.x.x'
配置文件位于:当前主机上的数据库节点的数据存储目录如/opt/huawei/install/data/dn
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
local_bind_address = '172.25.xx.xx'
port = 16001 # (change requires restart)
omm用户找不到python3
解决方案:在omm安装Python 3.6.X以上的版本 或 配置环境变量
netifaces/netifaces.so cannot open shared
解决方案:缺少python的netifaces包,pip install netifaces
相关文章
- Linux系统:Centos7下搭建ClickHouse列式存储数据库
- centos7 升级httpd
- centos7下安装redis的步骤
- centos7 搭建 kubernetes1.16.0 集群
- Centos7 安装 PostgreSql 14 数据库 和 timescaledb 时序库
- centos7中没有安装ifconfig命令的解决方法
- [LINUX]在VMware下新建CentOS7虚拟机并共享WIN文件夹
- 【Mysql数据库系列】CentOS7下Mysql安装与Mysql Cluster集群搭建详细说明( Innodb Cluster)
- CentOS7 nginx+tomcat实现代理访问java web项目让项目支持jsp和php
- CentOS7安装桌面环境 并支持远程访问
- centOS7 安装redis-3.2.6
- Centos7/RHEL 7 配置静态路由
- kubernetes(2):Centos7 安装 kubernetes 1.5 版本
- Centos7更改静态IP后无法连接Xshell,更改动态和静态IP,实测好使
- 【MySQL】CentOS7安装MySQL数据库及MariaDB
- 【大数据】CentOS7环境下安装MySQL数据库