软件版本
操作系统:CentOS7.9
Linux文件系统:剩余inode个数 > 15亿(推荐) # df -i
数据库:openGauss5.0.1
一、安装前准备
1.1 安装包下载
官方下载地址:https://opengauss.org/zh/download/
openGauss安装包下载,这里选择openGauss_5.0.1 极简版。
1.2 安装Python3
CentOS7部署openGauss需要python3.6版本。
下载地址:https://cdn.npmmirror.com/binaries/python/3.6.15/Python-3.6.15.tar.xz
安装依赖软件
yum install -y gcc make zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel
解压源码、编译安装
tar -xvf Python-3.6.15.tar.xz
cd Python-3.6.15
./configure --prefix=/usr/local/python3 --enable-shared
make && make install
将原来的链接备份
mv /usr/bin/python /usr/bin/python.bak
添加 python3 的软链接
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
修改yum使用python版本
由于yum使用python的版本2,所以将下面两个文件的第一行 #!/usr/bin/python 修改为 #!/usr/bin/python2
vi /usr/bin/yum
vi /usr/libexec/urlgrabber-ext-down
修改环境变量
vi /etc/profile
export LD_LIBRARY_PATH=/usr/local/python3/lib:$LD_LIBRARY_PATH
source /etc/profile
或者,直接将lib文件复制到/usr/lib64目录下,如下:
cp /usr/local/python3/lib/libpython3.6m.so.1.0 /usr/lib64/
验证测试
python -V
1.2 安装环境准备
1.2.1 硬件环境要求
1.2.2 软件环境要求
1.2.3 软件依赖要求
#安装相关依赖和工具软件包
yum install -y libaio-devel flex bison ncurses-devel glibc-devel patch redhat-lsb-core readline-devel zlib readline bzip2 vim tar tree
1.2.4 修改hosts和hostname
1.2.5 关闭操作系统防火墙、SELINUX
目前openGauss仅支持在防火墙关闭的状态下进行安装。
- 修改/etc/selinux/config文件中的SELINUX值为disabled
[root@GsDb5Srv106 ~]# vi /etc/selinux/config
setenforce 0 #即时生效,否则需要重启系统 getenforce
2、检查防火墙是否关闭
[root@GsDb5Srv106 ~]# systemctl status firewalld
若防火墙状态显示为active (running),则表示防火墙未关闭
若防火墙状态显示为inactive (dead),则无需再关闭防火墙
3、关闭防火墙并禁止开机重启
[root@GsDb5Srv106 ~]# systemctl stop firewalld
[root@GsDb5Srv106 ~]# systemctl disable firewalld
1.2.6 设置字符集参数
将数据库各节点设置为相同的字符集(zh_CN.UTF-8、en_US.UTF-8)
echo "export LANG=en_US.UTF-8" >> /etc/profile
echo "export LC_CTYPE=en_US.UTF-8" >> /etc/profile
source /etc/profile
echo $LANG $LC_CTYPE
1.2.7 设置时区和时间
查询时区
[root@GsDb5Srv106 ~]# timedatectl
# timedatectl list-timezones | grep Shanghai
# timedatectl set-timezone Asia/Shanghai
如果数据库各节点时间不一致,可建立内部时间服务器(建议:chrony),或者使用date -s命令将各数据库节点的时间设置为统一时间,举例如下。
date -s "Sat Sep 27 16:00:07 CST 2020"
1.2.8 关闭swap交换内存(可选)
关闭swap交换内存是为了保障数据库的访问性能,避免把数据库的缓冲区内存淘汰到磁盘上。 如果服务器内存比较小,内存过载时,可打开swap交换内存保障正常运行。
使用swapoff -a命令将交换内存关闭—集群模式则需要各节点执行
关闭交换内存命令
[root@GsDb5Srv106 ~]# swapoff -a
如果需要开启交换内存,则执行如下命令
[root@GsDb5Srv106 ~]# swapon -a
1.2.9 设置网卡MTU值(可选)
将各数据库节点的网卡MTU值设置为相同大小。对于x86,MTU值推荐1500;对于ARM,MTU值推荐8192。
查询服务器的网卡名称
[root@GsDb5Srv106 ~]# ifconfig
设置网卡MTU值设置为8192,---集群模式则需要各节点执行
[root@GsDb5Srv106 ~]# ifconfig ens160 mtu 8192
1.2.10 关闭RemoveIPC
集群模式则需要各节点上执行,关闭RemoveIPC。CentOS操作系统无该参数,可以跳过该步骤。
在各数据库节点上,关闭RemoveIPC。CentOS操作系统默认为关闭,可以跳过该步骤。
1.修改/etc/systemd/logind.conf文件中的“RemoveIPC”值为“no”。
a. 使用VIM打开logind.conf文件。
vim /etc/systemd/logind.conf
b. 修改“RemoveIPC”值为“no”。
RemoveIPC=no
2.修改/usr/lib/systemd/system/systemd-logind.service文件中的“RemoveIPC”值为“no”。
a. 使用VIM打开systemd-logind.service文件。
vim /usr/lib/systemd/system/systemd-logind.service
b. 修改“RemoveIPC”值为“no”。
RemoveIPC=no
3.重新加载配置参数。
systemctl daemon-reload
systemctl restart systemd-logind
4.检查修改是否生效。
loginctl show-session | grep RemoveIPC
systemctl show systemd-logind | grep RemoveIPC
1.2.11 设置root用户远程登录(可选)
修改PermitRootLogin配置,允许root用户远程登录,root用户默认是可登录的,否则需要修改。
修改sshd_config文件
vim /etc/ssh/sshd_config
修改权限配置,可以使用以下两种方式实现
1、注释掉“PermitRootLogin no”
#PermitRootLogin no
2、将“PermitRootLogin”改为“yes”
PermitRootLogin yes
1.2.12 配置Banner
修改Banner配置,去掉连接到系统时,系统提示的欢迎信息。欢迎信息会干扰安装时远程操作的返回结果,影响安装正常执行。
编辑sshd_config文件
vim /etc/ssh/sshd_config
修改Banner配置,注释掉“Banner”所在的行
#Banner XXXX
使设置生效
systemctl restart sshd
1.2.13 了解安装用户及用户组
为了实现安装过程中安装帐户权限最小化,及安装后openGauss的系统运行安全性,安装脚本在安装过程中会自动按照用户指定内容创建安装用户,并将此用户作为后续运行和维护openGauss的管理员帐户。
1.2.14 关闭HISTORY记录(可选)
说明:
为避免指令历史记录安全隐患,需关闭各主机的history指令。
步骤 1 修改根目录下/etc/profile文件。
vim /etc/profile
步骤 2 设置HISTSIZE值为0。例如,系统中HISTSIZE默认值为1000,将其修改为0。
HISTSIZE=0
步骤 3 保存/etc/profile。
:wq
步骤 4 设置/etc/profile生效。
source /etc/profile
1.2.15 创建相关目录
说明:
•不建议把安装包的存放目录规划到openGauss用户的根目录或其子目录下,可能导致权限问题。
•openGauss用户须具有/opt/software/openGauss目录的读写权限。
创建用户和用户组
groupadd dbgrp
useradd -g dbgrp omm
passwd omm #密码 Gauss@123
创建相关目录
mkdir -p /opt/software/openGauss
修改相关目录属主
chown -R omm.dbgrp /opt/software
chmod 755 -R /opt/software
二、系统资源参数配置
2.1 设置sysctl.conf
操作系统参数设置如下,其他配置项由预安装脚本自动设置。
vi /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.extfrag_threshold=500
vm.overcommit_ratio=90
kernel.sem=250 85000 250 330
使设置生效:sysctl -p
2.2 配置资源限制
#配置资源限制
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
echo "* soft nproc unlimited" >> /etc/security/limits.d/90-nproc.conf
#查看配置
tail -n 4 /etc/security/limits.conf
tail -n 1 /etc/security/limits.d/90-nproc.conf
2.3 关闭透明大页
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
#修改写入配置文件
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.d/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
/usr/bin/sh /etc/rc.d/rc.local
三、执行安装部署
极简版主备节点安装步骤如下:
3.1 上传并解压安装包
解压安装包openGauss-5.0.1-CentOS-64bit.tar.bz2,到软件存放目录:
tar -xvf openGauss-5.0.1-CentOS-64bit.tar.bz2 -C /opt/software/openGauss/
再次更改目录属主
chown -R omm.dbgrp /opt/software
3.2 执行安装脚本部署
切换到omm用户执行安装脚本部署:
[root@GsDb5Srv106 ~]# su - omm
[omm@GsDb5Srv106 ~]$ cd /opt/software/openGauss/simpleInstall
[omm@GsDb5Srv106 simpleInstall]$ sh install.sh -w Gauss_234 --multinode
注:默认主节点端口为5432(备节点端口号使用主端口号+200,默认5632),也可使用参数-p指定其他端口号。
•安装后,数据库的主节点名称为nodename1,备节点名称为nodename2。
•安装后,数据库主节点目录安装路径/opt/software/openGauss/data/master,备节点目录安装路径为/opt/software/openGauss/data/slave,其中/opt/software/openGauss为解压包路径,data/master(slave)为新创建的数据库节点目录。
•安装完成后,默认生成名称为postgres的数据库。第一次连接数据库时可以连接到此数据库。
•启停参考命令:
primary: gs_ctl start|stop|restart -D $GAUSSHOME/data/master -M primary
standby: gs_ctl start|stop|restart -D $GAUSSHOME/data/slave -M standby
[omm@GsDb5Srv106 simpleInstall]$ source ~/.bashrc #生效相关设置环境变量
3.3 检查部署状态
安装执行完成后,使用ps和gs_ctl查看进程是否正常。
[omm@GsDb5Srv106 ~]$ ps -ef | grep gaussdb
[omm@GsDb5Srv106 ~]$ gs_ctl query -D /opt/software/openGauss/data/master
注:如上主备复制未正常启动,修改认证文件添加replication条目,如下所示:
然后重启主节点: gs_ctl restart -D /opt/software/openGauss/data/master -M primary
[omm@GsDb5Srv106 ~]$ gs_ctl query -D /opt/software/openGauss/data/slave
注:如上主备复制未正常启动,修改认证文件添加replication条目,如下所示:
然后重启备节点: gs_ctl restart -D /opt/software/openGauss/data/master -M standby
注:若出现备节点需要的WAL文件在主节点已删除,可重建备节点,执行如下命令:
gs_ctl build -D /opt/software/openGauss/data/slave -b incremental -M standby
#登陆数据库
[omm@GsDb5Srv106 ~]$ gsql -p 5432 -d postgres
注:gsql登录时加上 -r,可以支持命令上翻下翻以及回退不用按着ctrl键。
3.4 导入demo数据库
在安装脚本路径下,有提供的demo示例数据库,如果在安装时没有选择创建可导入执行sql来创建:
[omm@GsDb5Srv106 simpleInstall]$ gsql -p 5432 -d postgres < finance.sql
[omm@GsDb5Srv106 simpleInstall]$ gsql -p 5432 -d postgres < school.sql
登陆验证
[omm@GsDb5Srv106 simpleInstall]$ gsql -p 5432 -d postgres -r #主节点
[omm@GsDb5Srv106 simpleInstall]$ gsql -p 5632 -d postgres -r #备节点
3.5 主从同步验证
在主节点创建数据库、表,新增记录,查询备节点是否正常同步。
#主节点
gsql -p 5432 -d postgres -r
create database testdb;
\c testdb
create table t1(id int, name varchar(30));
insert into t1 values(1, '张三'), (2, '李四'), (3, '王五');
show port;
select * from t1;
#备节点
gsql -p 5632 -d postgres -r
\c testdb
show port;
select * from t1;