1.前置工作
1.1 配置 hosts 文件
vi /etc/hosts
# 新增
192.168.19.128 openeuleros
1.2 配置 limit.conf 文件
vi /etc/security/limits.conf
omm soft nproc unlimited
omm hard nproc unlimited
omm soft nofile 102400
omm hard nofile 102400
omm soft stack unlimited
omm hard stack unlimited
omm soft core unlimited
omm hard core unlimited
omm soft memlock unlimited
1.3 配置 sysctl.conf 文件
vi /etc/sysctl.conf
net.ipv4.tcp_max_tw_buckets = 10000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_retries1 = 5
net.ipv4.tcp_syn_retries = 5
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_retries2 = 12
net.ipv4.tcp_rmem = 8192 250000 16777216
vm.overcommit_memory = 0
net.ipv4.tcp_wmem = 8192 250000 16777216
net.core.wmem_max = 21299200
net.core.rmem_max = 21299200
net.core.wmem_default = 21299200
net.core.rmem_default = 21299200
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_timestamps = 1
fs.aio-max-nr = 1048576
fs.file-max = 76724600
kernel.sem = 4096 2048000 32 32768
kernel.shmall = 1048576
kernel.shmmax = 4294967296
kernel.shmmni = 8192
net.core.netdev_max_backlog = 65535
net.core.somaxconn = 65535
net.ipv4.tcp_fin_timeout = 60
vm.swappiness = 0
net.ipv4.ip_local_port_range = 26000 65535
fs.nr_open = 20480000# 执行刷新配置
sysctl -p
1.4 sysctl.conf 配置文件详情
net.ipv4.tcp_max_tw_buckets = 10000 # 可以提⾼系统处理连接的能⼒,但要注意过多的TIME_WAIT连接可能会影响⽹络的稳定性。
net.ipv4.tcp_tw_reuse = 1 # 提⾼性能:在处理⼤量短连接时(例如Web服务器或API服务),此设置可以显著减少新连接的建⽴时间,提⾼系统的性能和响应速度。节省资源:重⽤TIME_WAIT连接可以减少对新的端⼝的需求,从⽽减少资源消耗。
net.ipv4.tcp_keepalive_probes = 9 # ⽤于控制TCP连接的保持活动(keepalive)机制。
net.ipv4.tcp_keepalive_intvl = 30 # ⽤于配置TCP连接的保持活动(keepalive)机制中的探测间隔。
net.ipv4.tcp_retries1 = 5 # ⽤于配置TCP连接在尝试重传数据包时的初始重试次数。
net.ipv4.tcp_syn_retries = 5 # ⽤于配置在TCP连接建⽴过程中SYN(同步)请求的重试次数。
net.ipv4.tcp_synack_retries = 5 # ⽤于配置在TCP连接建⽴过程中,服务器在接收到SYN请求后,发送SYN-ACK响应的重试次数。
net.ipv4.tcp_retries2 = 12 # ⽤于配置TCP连接在数据包重传失败后的最⼤重试次数。
net.ipv4.tcp_rmem = 8192 250000 16777216 # ⽤于配置TCP连接的接收缓冲区⼤⼩。
vm.overcommit_memory = 0 # ⽤于控制内存分配策略,特别是在进程请求内存时的⾏为。
net.ipv4.tcp_wmem = 8192 250000 16777216 # ⽤于配置TCP连接的发送缓冲区⼤⼩。最⼩发送缓冲区⼤⼩(字节)。默认发送缓冲区⼤⼩(字节)。最⼤发送缓冲区⼤⼩(字节)。
net.core.wmem_max = 21299200 # ⽤于设置⽹络套接字的最⼤发送缓冲区⼤⼩。
net.core.rmem_max = 21299200 # ⽤于设置⽹络套接字的最⼤接收缓冲区⼤⼩。
net.core.wmem_default = 21299200 # ⽤于设置⽹络套接字的默认发送缓冲区⼤⼩。
net.core.rmem_default = 21299200 # ⽤于设置⽹络套接字的默认接收缓冲区⼤⼩。
net.ipv4.tcp_syncookies = 1 # ⽤于启⽤TCP同步Cookies功能,以增强TCP连接的安全性,尤其是在⾯对SYN洪⽔攻击时。
net.ipv4.tcp_sack = 1 # ⽤于启⽤TCP选择确认(Selective Acknowledgment,SACK)功能。
net.ipv4.tcp_timestamps = 1 # ⽤于启⽤TCP时间戳选项。
fs.aio-max-nr = 1048576 # ⽤于设置系统中异步I/O(AIO)操作的最⼤数量。
fs.file-max = 76724600 # ⽤于设置系统可以打开的最⼤⽂件描述符数量。
kernel.sem = 4096 2048000 32 32768 # ⽤于配置信号量(semaphore)相关的系统资源限制。表示每个信号量集的最⼤信号量数量。表示系统中所有信号量集的最⼤数量。表示系统允许的最⼤信号量数量。
kernel.shmall = 1048576 # ⽤于设置系统中共享内存段的总⻚⾯数。
kernel.shmmax = 4294967296 # ⽤于设置单个共享内存段的最⼤⼤⼩。
kernel.shmmni = 8192 # ⽤于设置系统中共享内存段的最⼤数量。
net.core.netdev_max_backlog = 65535 # ⽤于设置⽹络设备接收队列的最⼤等待包数量。
net.core.somaxconn = 65535 # ⽤于设置系统允许的最⼤监听队列⻓度。
net.ipv4.tcp_fin_timeout = 60 # ⽤于设置TCP连接进⼊FIN_WAIT2状态后,系统等待关闭连接的时间。
vm.swappiness = 0 # ⽤于控制系统在内存管理中使⽤交换空间(swap)的倾向。
net.ipv4.ip_local_port_range = 26000 65535 # ⽤于设置本地可⽤的TCP和UDP端⼝范围。
fs.nr_open = 20480000 # ⽤于设置系统中每个进程可以打开的最⼤⽂件描述符数量。
1.5 设置 core_pattern 文件
echo "/home/omm/core_pattern/core-%e-%p-%t" > /proc/sys/kernel/core_pattern # 需要创建用户
2.安装依赖
yum install -y zlib-devel libaio libuuid readline-devel krb5-libs rsync libicu libxslt tcl perl openldap pam openssl-devel libxml2
3.创建用户和组
3.1 创建组
groupadd dbgrp
3.2 创建用户和密码
useradd -g dbgrp -d /home/omm -m omm
echo "强密码" |passwd omm --stdin # 请不要使用 #,$,*,!,& 这类特殊字符作为密码,容易导致后面安装初始化时报错异常。
4.创建目录并传 openGauss 包并解压
4.1 创建 openGauss 相关目录
mkdir -p /home/omm/{openGauss,backup,archive_wals,core_pattern}
mkdir /home/omm/openGauss/logs
chown omm:dbgrp -R /home/omm/
chmod 755 /home/omm/
chmod 700 /home/omm/{openGauss,backup,archive_wals,core_pattern}
4.2 传 openGauss 包
# 上传到普通用户下的openGauss目录中并重新赋权
chown -R omm:dbgrp /home/omm/openGauss/
4.3 解压 openGauss 包
tar zxf $HOME/openGauss/openGauss-5.0.3-openEuler-64bit-all.tar.gz -C $HOME/openGauss
tar jxvf $HOME/openGauss/openGaussopenGauss-5.0.3-openEuler-64bit.tar.bz2 -C $HOME/openGauss
5.配置环境变量
5.1 配置数据库环境变量
vi $HOME/.bashrc
# 最后新增
export LANG=en_US.UTF8
export GAUSSHOME=/home/omm/openGauss
export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH
export PATH=$GAUSSHOME/bin:$PATH:$HOME/.local/bin:$HOME/bin
5.2 配置数据库参数变量
vi $HOME/.bashrc
# 继续新增
export GS_CLUSER_NAME=dbCluster # 集群名称
export GAUSS_WARNING_TYPE=all # 告警类型all所有
export GAUSSLOG=$GAUSSHOME/logs # 日志存放路径
5.3 刷新环境变量
source .bashrc
5.4 查看打开文件数量
ulimit -a
6.安装数据库
6.1 部署过程
cd $HOME/openGauss/simpleInstall/
sh install.sh -w openGauss$1234 # 初始化部署密码
...
[2024-10-04 23:41:43.172][59010][][gs_ctl]: done
[2024-10-04 23:41:43.172][59010][][gs_ctl]: server started (/home/omm/openGauss/data/single_node)
import sql file
Would you like to create a demo database (yes/no)? yes
Load demoDB [school,finance] success.
[complete successfully]: You can start or stop the database server using:gs_ctl start|stop|restart -D $GAUSSHOME/data/single_node -Z single_node
# 注:如上提示证明成功初始化部署完成
6.2 部署异常问题
[step 6]: init datanode
gs_initdb: error while loading shared libraries: libreadline.so.7: cannot open shared object file: No such file or directory
[step 7]: start datanode
gs_ctl: error while loading shared libraries: libreadline.so.7: cannot open shared object file: No such file or directory-- 解决⽅案:ln -s /usr/lib64/libreadline.so.8 /usr/lib64/libreadline.so.7[step 6]: init datanode
gs_initdb: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
[step 7]: start datanode
gs_ctl: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory-- 解决⽅案:ln -s /usr/lib64/libcrypt.so /usr/lib64/libcrypt.so.1
7.服务启停
7.1 启停格式(集群)
$ gs_ctl start|stop|restart -D $GAUSSHOME/data/master -M primary
$ gs_ctl start|stop|restart -D $GAUSSHOME/data/slave -M standby
7.2 启停方法(单节点)
gs_ctl start|stop|restart -D $GAUSSHOME/data/single_node -Z single_node
7.2.1 启动脚本
vi $HOME/yunwei/opengauss_db_5432_start.sh#!/bin/bash
gs_ctl start -D $GAUSSHOME/data/single_node -Z single_node
7.2.2 停止脚本
vi $HOME/yunwei/opengauss_db_5432_stop.sh#!/bin/bash
gs_ctl stop -D $GAUSSHOME/data/single_node -Z single_node
7.2.3 重启脚本
vi $HOME/yunwei/opengauss_db_5432_restart.sh#!/bin/bash
gs_ctl restart -D $GAUSSHOME/data/single_node -Z single_node
8.配置数据库客户端配置
8.1 配置 pg_hba.conf
vi $HOME/openGauss/data/single_node/pg_hba.conf
host all all 0.0.0.0/0 md5
8.2 配置 postgresql.conf
vi $HOME/openGauss/data/single_node/postgresql.conf
# 修改如下
listen_addresses = '*'
port = 5432
max_connections = 200
password_encryption_type = 0 # 开启远程连接必须设置为0
9.连接数据库并创建用户及授权
9.1 连接数据库
gsql -d postgres -p 5432
9.2 创建数据库和用户
# 创建用户(建议强密码)
create user '新用户' with password '强密码'; # 不需要加单引号
# 创建数据库
create database '数据库名称' owner '新用户'; # 不需要加单引号
9.3 授权用户和数据库
# 授权数据库所有操作
grant all privileges to '数据库名称'; # 不需要加单引号
# 授权数据库给yunwei_auto用户
grant all privileges on database '数据库名称' to '新用户'; # 不需要加单引号
9.4 修改用户密码
ALTER USER '新用户' WITH PASSWORD '强密码'; # 不需要加单引号
9.5 退出并重启服务
# openGauss命令行模式下退出命令
openGauss=# \q# 重启服务
gs_ctl restart -D $GAUSSHOME/data/single_node -Z single_node
10.测试登录数据库
10.1 登录数据
gsql -h '数据库地址' -p '数据库端口' -U '新用户' -d '连接数据库的名称' # 不需要加单引号
10.2 登录异常问题
./gsql: error while loading shared libraries: libssl.so.1.1: cannot open shared objectfile: No such file or directory-- 解决⽅案:ln -s /usr/lib64/libssl.so /usr/lib64/libssl.so.1.1,需要退出普通⽤户重新登录刷新配置