Linux环境 openGauss一主一备部署

配置操作系统满足安装要求

硬件环境要求 (全部节点)

内存8GB,4核心CPU,900G磁盘

# 检查CPU核数
cat /proc/cpuinfo | grep processor
# 检查内存大小
free -m
# 检查系统版本
cat /etc/redhat-release

注:
Linux操作系统:

  • ARM:
    • openEuler 20.03LTS(推荐采用此操作系统)
    • 麒麟V10
    • Asianux 7.5
  • x86:
    • openEuler 20.03LTS
    • CentOS 7.6
    • Asianux 7.6

说明:
当前安装包只能在英文操作系统上安装使用。

若不是上述环境,则预安装时,会产生异常如下:
openGauss-企业版-3.1.0

Exception:[GAUSS-51900]:The current os is not supported platforms are ['suse', 'rehat', 'centos', 'euleros', 'debian', 'ubuntu']

目前openGauss并不适配一些环境,在选择使用之前,需做好调研。

配置环境 (全部节点)

  1. 修改/etc/hosts
# 检查主机名和IP地址是否配置正确 需要配置主机名
hostname && ifconfig | grep broadcast | awk '{print $2}'
# 添加Hosts解析(假设主机名host-192-168-1-1 IP地址为192.168.1.1) 替换host-192-168-1-1这行
sed -i '/host-192-168-1-1/d' /etc/hosts
#新增一行记录
echo "192.168.1.1 host-192-168-1-1 ##openGauss OM IP Hosts Mapping" >>/etc/hosts
# 检查增加的记录
cat /etc/hosts|grep openGauss
  1. 关闭防火墙
# 停止firewall
systemctl stop firewalld.service
# 禁止防火墙开机自启
systemctl disable firewalld.service
# 检查防火墙是否关闭
systemctl status firewalld
  1. 关闭selinux
getenforce
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
getenforce
# 检查
cat /etc/selinux/config | grep SELINUX
  1. 设置root用户远程登录
# 配置SSH服务(允许root登录 关闭Banner)
sed -i '/Banner/s/^/#/' /etc/ssh/sshd_config
sed -i '/PermitRootLogin/s/^/#/' /etc/ssh/sshd_config
echo -e "\n" >> /etc/ssh/sshd_config
echo "Banner none " >> /etc/ssh/sshd_config
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
# 生效
systemctl restart sshd.service
# 检查
cat /etc/ssh/sshd_config | grep -v ^#| grep -E 'PermitRootLogin|Banner'
  1. 字符集参数
    将数据库节点的字符集设置为相同的字符集
# 修改
cat>> /etc/profile<<EOF
export LANG=en_US.UTF-8
EOF
# 检查
cat /etc/profile|grep LANG
  1. 设置时区和时间(可选)
    将数据库节点的字符集设置为相同的时区
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date -R
hwclock
echo -e "\n"
  1. 操作系统参数
# 手动修改值
cat >> /etc/sysctl.conf << EOF
net.ipv4.tcp_retries1 = 5
net.ipv4.tcp_syn_retries = 5
# net.sctp.path_max_retrans = 10
# net.sctp.max_init_retransmits = 10
net.ipv4.tcp_fin_timeout = 60
EOF
# 生效
sysctl -p
  1. 修改系统资源限制
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
  1. 关闭透明页(仅对CentOS)
# 临时关闭透明页
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
# 编译grub 内核层面关闭透明页
sed -i '/^GRUB_CMDLINE_LINUX/d' /etc/default/grub
echo "GRUB_CMDLINE_LINUX=\"rhgb quiet transparent_hugepage=never\"" >> /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg

软件包

# 检查软件依赖包
rpm -qa libaio-devel  flex  bison ncurses-devel glibc-devel  patch  redhat-lsb-core readline-devel bzip2 python3  java-1.8.0-openjdk*
# 如果少 则安装 或 全部安装
yum install -y lksctp*
yum install -y java-1.8.0-openjdk* psmisc bzip2 python3 python3-devel
yum install libaio-devel  flex  bison ncurses-devel glibc-devel  patch   readline-devel  redhat-lsb-core libnsl
# 再次检查
rpm -qa libaio-devel  flex  bison ncurses-devel glibc-devel  patch  redhat-lsb-core readline-devel bzip2 python3  java-1.8.0-openjdk*  libnsl

必须软件环境:bzip2、Python3

若为内网/离线环境无法在线安装python,则可通过以下步骤安装

  1. python3.6.10下载地址

  2. 上传/usr/local/

  3. 解压tar -zxvf Python-3.6.10.tgz,并改名mv Python-3.6.10 python3

  4. 安装

    ./configure --prefix=/usr/local/python3 --enable-shared CFLAGS=-fPIC
    make && make install
    ln -s /usr/local/python3/bin/python3 /usr/bin/python3
    ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
    
  5. 设置环境变量

    cat >>/etc/profile<<EOF
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/python3/bin
    EOF
    source /etc/profile
    echo "/usr/local/python3/lib/" >> /etc/ld.so.conf
    ldconfig
    

安装前准备 (主节点)

目录规划

目录名称名称作用
/opt/software/openGausssoftware安装软件存放目录
/opt/gaussdb/install/appgaussdbAppPath数据库安装目录
/opt/gaussdb/loggaussdbLogPath日志目录
/opt/gaussdb/install/data/db1dataNode1主备节点数据存放目录
/opt/gaussdb/tmptmpMppdbPath临时文件目录
/opt/gaussdb/gausstools/omgaussdbToolPath数据库工具目录
/opt/gaussdb/corefilecorePath数据库core文件目录
/opt/gaussdb/install/data/cmcmDirCM数据目录

openGauss下载地址
openGauss3.1.0下载

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

上传openGauss-3.1.0-CentOS-64bit-all.tar.gz到/opt/software/openGauss目录下

  1. 解压
cd /opt/software/openGauss
tar -zxvf openGauss-3.1.0-CentOS-64bit-all.tar.gz
tar -zxvf openGauss-3.1.0-CentOS-64bit-om.tar.gz 
  1. 创建xml文件
    在/opt/software/openGauss 目录下创建 cluster_config.xml配置文件
    vim cluster_config.xml
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
    <!-- openGauss整体信息 -->
    <CLUSTER>
        <!-- 数据库名称 -->
        <PARAM name="clusterName" value="dbCluster" />
        <!-- 数据库节点名称(hostname) -->
        <PARAM name="nodeNames" value="node1_hostname,node2_hostname" />
        <!-- 数据库安装目录-->
        <PARAM name="gaussdbAppPath" value="/opt/gaussdb/install/app" />
        <!-- 日志目录-->
        <PARAM name="gaussdbLogPath" value="/opt/gaussdb/log" />
        <!-- 临时文件目录-->
        <PARAM name="tmpMppdbPath" value="/opt/gaussdb/tmp"/>
        <!-- 数据库工具目录-->
        <PARAM name="gaussdbToolPath" value="/opt/gaussdb/gausstools/om" />
        <!-- 数据库core文件目录-->
        <PARAM name="corePath" value="/opt/gaussdb/corefile"/>
        <!-- 节点IP,与数据库节点名称列表一一对应 -->
        <PARAM name="backIp1s" value="192.168.0.1,192.168.0.2"/>
    </CLUSTER>
    <!-- 每台服务器上的节点部署信息 -->
    <DEVICELIST>
        <!-- 节点1上的部署信息 -->
        <DEVICE sn="node1_hostname">
            <!-- 节点1的主机名称 -->
            <PARAM name="name" value="node1_hostname"/>
            <!-- 节点1所在的AZ及AZ优先级 -->
            <PARAM name="azName" value="AZ1"/>
            <PARAM name="azPriority" value="1"/>
            <!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
            <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="5432"/>
			<PARAM name="dataNode1" value="/opt/gaussdb/install/data/db1,node2_hostname,/opt/gaussdb/install/data/db1"/>
            <PARAM name="dataNode1_syncNum" value="0"/>
        </DEVICE>

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

重要提示
1. 配置数据库节点名称时,请通过hostname命令获取数据库节点的主机名称,替换示例中的node1_hostname,node2_hostname。
2. backIp1s、sshIp1对应节点
3. dataPortBase端口号根据需要调整

  1. 配置环境变量

    cat>> /etc/profile<<EOF
    export LD_LIBRARY_PATH=/opt/software/openGauss/script/gspylib/clib:$LD_LIBRARY_PATH
    EOF
    # 重启生效
    echo $LD_LIBRARY_PATH
    
  2. 进行交互式检查

    cd /opt/software/openGauss/script
    ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml
    # 查看具体的检查信息
    /opt/software/openGauss/script/gs_checkos -i A -h node1 --detail
    
  3. 交互模式安装openGauss

    #使用root执行如下命令
    cd /opt/software/openGauss/script 
    chmod -R 775 /opt/software/openGauss/script 
    chown -R omm:dbgrp /opt/software/openGauss/script
    #使用omm用户安装openGauss DBMS和创建openGauss数据库
    su - omm
    cd /opt/software/openGauss/script
    cp ../cluster_config.xml .
    
  4. 安装
    如果内存为8G,则可以采用默认安装方式

    #使用omm用户安装openGauss DBMS和创建openGauss数据库
    cd /opt/software/openGauss/script
    gs_install -X /opt/software/openGauss/script/cluster_config.xml
    

    注:若低于8G,则需调整参数
    4G参数模板如下:

    su - omm
    cd /opt/software/openGauss/script
    gs_install -X /opt/software/openGauss/script/cluster_config.xml \
    --gsinit-parameter="--encoding=UTF8" \
    --dn-guc="max_connections=5000" \
    --dn-guc="max_process_memory=2GB" \
    --dn-guc="shared_buffers=1GB" \
    --dn-guc="bulk_write_ring_size=2GB" \
    --dn-guc="cstore_buffers=1GB"
    

    重要提示:用户需根据提示输入数据库的密码,密码需要具有一定的复杂度,为保证用户正常使用该数据库,请记住输入的数据库密码。

# 查看数据库状态
gs_om -t status --detail
# 遇到情况 重启数据库
gs_om -t stop && gs_om -t start
# 首次登录数据库
gsql -d postgres -p 5433 -r
# 登录之后若想退出 \q

参考链接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值