前置环境准备
文件系统环境要求
文件系统环境所要求的扇区必须为512bytes,查看方法如下:
[root@devops-core-highapp3-b-32 ~]#df -h /apps/
[root@devops-core-highapp3-b-32 ~]#ll /dev/mapper/vg--docker-lvapp
[root@devops-core-highapp3-b-32 ~]#fdisk -l /dev/dm-2
注意:如上图所示,Sector size 为扇区的大小,必须是512 bytes。
系统环境优化
检查root 是否禁止登录
以root 用户执行
vi /etc/ssh/sshd_config
PermitRootLogin yes
如果没有这条参数,请添加,如果 PermitRootLogin 的值不是yes,请改为 yes(请预留其他账号可以登录,否则可能会造成系统无法登录问题)。
检查kernel 版本
注意:BC-Linux 7.6 版本内核建议为3.10.0-957.el7.x86_64,BC-Linux 7.8 版本根据测试也
满足安装要求,内核版本建议为4.19.25-204.el7.bclinux.x86_64。
cat /etc/redhat-release
uname -r
关闭selinux
修改 /etc/selinux/config 文件
vim /etc/selinux/config
修改内容:
SELINUX=disabled
# 关闭selinux
setenforce 0
关闭防火墙
systemctl disable firewalld.service
systemctl stop firewalld.service
设置字符集
修改 /etc/profile 文件
vim /etc/profile
文件中新增一下内容(如果已存在新增的内容请作修改)
export LANG=en_US.UTF-8
关闭swap 交换内存
swapoff -a
内核参数优化
修改文件:/etc/sysctl.conf
vi /etc/sysctl.conf
修改或增加一下内容:
net.ipv4.tcp_max_tw_buckets = 10000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1 #根据操作系统内核版本设置,参见如下注意
net.ipv4.tcp_keepalive_time = 30
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
vm.overcommit_memory = 0
net.ipv4.tcp_rmem = 8192 250000 16777216
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.ip_local_port_range = 26000 65535
kernel.sem = 250 6400000 1000 25600
net.core.somaxconn = 65535
net.ipv4.tcp_syncookies = 1
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_fin_timeout = 60
kernel.shmall = 52805669 #根据实际情况进行计算
kernel.shmmax = 18446744073692774399 #根据实际情况进行计算
net.ipv4.tcp_sack = 1
net.ipv4.tcp_timestamps = 1
vm.extfrag_threshold = 500
vm.overcommit_ratio = 90
vm.swappiness = 0
修改完成之后请执行以下命令让其生效
sysctl -p
注意:
1)kernel.shmall 和kernel.shmmax 需根据主机操作系统的内存配置进行自定义调整,一般
shmmax 建议设置为主机物理内存的60%,shmall >= shmmax/4096。例如主机100G 内存,
shmmax=100G60%102410241024= 64424509440 , shmall= 64424509440/4096=
15728640。
2)如果使用BC-Linux 7.6 版本(内核为3.10.0-957.el7.x86_64),net.ipv4.tcp_tw_recycle =
1 参数可以设置;如果使用BC-Linux 7.8 版本(内核为4.19.25-204.el7.bclinux.x86_64),
net.ipv4.tcp_tw_recycle = 1 参数需删除。
配置资源限制
修改文件 /etc/security/limits.conf
vi /etc/security/limits.conf
增加以下内容:
* soft nofile 655360
* hard nofile 655360
* soft nproc 655360
* hard nproc 655360
* soft memlock unlimited
* hard memlock unlimited
* soft core unlimited
* hard core unlimited
* soft stack unlimited
* hard stack unlimited
安装CMDB 数据库
安装数据库依赖
安装磐维数据库,需要提前安装依赖库
注意:
1)readline_devel 版本在CentOS7 环境下默认为6.2-11.el7.x86_64 版本,实测也可以使用;
2)bzip2 包必须安装,不安装的话在gs_preinstall 阶段会报如下错
/tmp/script/script/gs_preinstall -U omm -G dbgrp -X /tmp/cluster_config_template.xml
Parsing the configuration file.
Successfully parsed the configuration file.
[GAUSS-50217] : Failed to decompress version.cfg.The cmd is cd /tmp/script/script/…/ &&
tar -xpf ls openGauss*.tar.bz2|tail -1
./version.cfg ./bin/encrypt &&
mv ./bin/encrypt ./script/gspylib/clib && rm -rf ./bin. The output is ls: cannot access
openGauss*.tar.bz2: No such file or directory
tar: This does not look like a tar archive
tar: ./bin/encrypt: Not found in archive
tar: Exiting with failure status due to previous errors.”
3)expect 包必须安装,不安装的话在gs_preinstall 阶段会直接报错[GAUSS-51405]:You
need to install software:expect
4)libnsl 包在openEuler x86 系统中需要安装,Centos7 环境和BC-Linux7.6、BC-Linux7.8
环境中不用安装。
5)redhat-lsb-core 包为编译部署时需要,二进制安装不需要。此包可以不用安装。
使用 yum 安装依赖库
yum -y install libaio-devel flex bison ncurses-devel glibc-devel patch redhat-lsb-core readline-devel python3 expect* bzip2
如果安装过程中出现报错:
yum Could not resolve host
请前往 /etc/resolv.conf 文件中添加以下内容(如果没有报错,直接忽略):
vi /etc/resolv.conf
nameserver 8.8.8.8
安装python3
检查服务器是否已经安装了 python3
python3 --version
如果显示已经安装了 python3 ,请查看版本是否高于或等于3.6.9(推荐使用3.6.9),如果不是,请安装 python3。
python-3.6.9文件
将 python-3.6.9.tar 上传到服务器中(python请自行下载),进入当前文件目录下,随后解压当前文件:
tar -zxf Python-3.6.9.tgz
进入解压后的文件目录:
cd Python-3.6.9
**编译 python3 **:
./configure --prefix=/opt/python/Python-3.6.9 --enable-shared --enable-optimizations --with-ssl
注意:/opt/python/Python-3.6.9 是你的 python3 的目录,请切换成自己的目录。
如果在编译过程出现报错(没有请忽略):
configure: error: no acceptable C compiler found in $PATH
出现以上报错是由于服务器缺少 gcc ,使用 yum 安装对应的组件即可。
yum install gcc -y
安装完 gcc 之后继续执行编译 python3流程。
安装python
make -j 12 && make install
设置软链和赋权
ln -s /opt/python/Python-3.6.9/bin/python3 /usr/bin/python3
ln -s /opt/python/Python-3.6.9/bin/python3.6-config /usr/bin/python3-config
cp /opt/python/Python-3.6.9/lib/libpython3.6m.so.1.0 /usr/lib64
chmod -R 755 /usr/lib64/libpython3.6m.so.1.0
ln -s /usr/lib64/libpython3.6m.so.1.0 /usr/lib64/libpython3.6m.so
如果出现文件已存在的话,请将文件重命名为其他名称。
最后设置环境变量
cat >> /etc/profile <<-EOF
export PYTHON_HOME=/opt/python/Python-3.6.9
export PATH=$PYTHON_HOME/bin:$PATH
EOF
PYTHON_HOME=/opt/python/Python-3.6.9:需要修改为自己的python地址。
重新加载环境变量
source /etc/profile
检查python3 是否已经是3.6.69版本
python3 --version
如果出现以上信息,说明 python3 已经安装成功。
检查openssh 版本
rpm -qa|grep openssh
注意:
如果OpenSSH 版本是9.0 及以上,需要临时修改脚本,改方式只供临时使用,后续版本将
修复该问题,修改前请备份好源文件。
具体修改方式如下:https://gitee.com/opengauss/openGauss-OM/pulls/343/files,也可参
考附录(CMDB 故障解决指南)第18 条。
配置/etc/hosts 文件
cat >> /etc/hosts <<-ROF
192.168.208.48 hostname1
ROF
创建用户及用户组
groupadd -g 1101 dbgrp
useradd -g dbgrp -u 1101 -m omm
echo 'OKfmyA1!2020R1!'|passwd --stdin omm
创建安装目录
安装磐维目录
mkdir -p /apps/apps-express
mkdir -p /apps/apps-express/soft
上传安装包,并进行解压
下载磐维数据库安装包:
链接: https://pan.baidu.com/s/1wkRpQlPCnfBOZAqhEArhZA 提取码: v7w9
复制这段内容后打开百度网盘手机App,操作更方便哦
将安装包上传到 /apps/apps-express/soft 目录下
解压 PanWeiDB_1.0.0_CentOS7_x86.tar.gz
tar -zxvf PanWeiDB_1.0.0_CentOS7_x86.tar.gz
解压完 PanWeiDB_1.0.0_BCLinux7_x86.tar.gz 之后会在当前目录下看到 8 个文件,其中有一个CMDB-1.0.1-CentOS-64bit-om.tar.gz,千万不要挪动,就继续在原地解压,又会解压出来script、lib、simpleInstall 三个文件夹和version.cfg 文件,这些都不要挪动位置,全都继续存放在/apps/apps-express/soft 目录下。
tar -zxvf PanWeiDB-1.0.0-CentOS-64bit-om.tar.gz
编写 XML 文件(单机)
在 /apps/apps-express/soft 目录下新建 xml文件:cmdb1m2s_cm.xml
vi cmdb1m2s_cm.xml
xml内容如下所示:
<?xml version="1.0" encoding="utf-8"?>
<ROOT>
<!-- 整体信息 -->
<CLUSTER>
<!-- 数据库集群名称 -->
<PARAM name="clusterName" value="panweinode" />
<!-- 数据库节点名称(hostname) -->
<PARAM name="nodeNames" value="localhost.localdomain"/>
<!-- 数据库安装目录-->
<PARAM name="gaussdbAppPath" value="/apps/apps-express/app" />
<!-- 日志目录-->
<PARAM name="gaussdbLogPath" value="/apps/apps-express/log" />
<PARAM name="tmpMppdbPath" value="/apps/apps-express/tmp"/>
<PARAM name="gaussdbToolPath" value="/apps/apps-express/tool" />
<!--数据库 core 文件目录-->
<PARAM name="corePath" value="/apps/apps-express/corefile"/>
<!-- 节点 IP,与数据库节点名称列表一一对应 -->
<PARAM name="backIp1s" value="192.168.208.48"/>
</CLUSTER>
<DEVICELIST>
<!-- 节点 1 上的部署信息 -->
<DEVICE sn="hostname1">
<PARAM name="name" value="localhost.localdomain"/>
<!-- 节点 1 所在的 AZ 及 AZ 优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 节点 1 的 IP,如果服务器只有一个网卡可用,将 backIP1 和 sshIP1 配置成同一个IP -->
<PARAM name="backIp1" value="192.168.208.48"/>
<PARAM name="sshIp1" value="192.168.208.48"/>
<!-- dn 数据节点 -->
<PARAM name="dataNum" value="1"/>
<PARAM name="dataPortBase" value="17700"/>
<PARAM name="dataNode1" value="/apps/apps-express/data"/>
<PARAM name="dataNode1_syncNum" value="0"/>
</DEVICE>
</DEVICELIST>
</ROOT>
如果安装磐维的文件目录是:/apps/apps-express,那么这里面的文件目录不需要调整,否者请调整为你上面创建的文件目录地址。
- :请填写当前服务器的内网 ip地址
- :请填写当前服务器的内网 ip地址
- :请填写当前服务器的内网 ip地址
- :磐维数据库的端口,尽量不要改动,如果17700 端口被占用,那么请修改此字段
注意::以上配置文件内定义的文件目录,包括/apps/apps-express/log、/apps/apps-express/tmp、/apps/apps-express/app 、/apps/apps-express/tool 、/apps/apps-express/corefile 、/apps/apps-express/cmdata/data, 均无需手动创建,但是 /apps/apps-express 目录必须要存在。
将安装目录进行授权
设置磐维目录的用户组
chown -R omm:dbgrp /apps/apps-express
设置磐维目录权限
chmod -R 755 /apps/apps-express
执行CMDB 数据库的预安装
进入预安装目录
/apps/apps-express/soft/script
执行预安装
./gs_preinstall -U omm -G dbgrp -X /apps/apps-express/soft/cmdb1m2s_cm.xml
安装中如果出现以下报错:
Failed to obtain local instance information. It is not a host name localhost.localdomain.
请修改 hostname
查看hostname
hostname
修改hostname
hostnamectl set-hostname localhost.localdomain
修改完成之后重新执行预安装命令。
正确的预安装日志:
Parsing the configuration file.
Successfully parsed the configuration file.
Installing the tools on the local node.
Successfully installed the tools on the local node.
Setting host ip env
Successfully set host ip env.
Are you sure you want to create the user[omm] (yes/no)? yea
Please type 'yes' or 'no': yes
Preparing SSH service.
Successfully prepared SSH service.
Checking OS software.
Successfully check os software.
Checking OS version.
Successfully checked OS version.
Creating cluster's path.
Successfully created cluster's path.
Set and check OS parameter.
Setting OS parameters.
Successfully set OS parameters.
Warning: Installation environment contains some warning messages.
Please get more details by "/apps/apps-express/soft/script/gs_checkos -i A -h localhost.localdomain --detail".
Set and check OS parameter completed.
Preparing CRON service.
Successfully prepared CRON service.
Setting user environmental variables.
Successfully set user environmental variables.
Setting the dynamic link library.
Successfully set the dynamic link library.
Setting Core file
Successfully set core path.
Setting pssh path
Successfully set pssh path.
Setting Cgroup.
Successfully set Cgroup.
Set ARM Optimization.
No need to set ARM Optimization.
Fixing server package owner.
Setting finish flag.
Successfully set finish flag.
Preinstallation succeeded.
进入omm 用户进行安装
进入 omm 用户
su - omm
执行安装命令
gs_install -X /apps/apps-express/soft/cmdb1m2s_cm.xml
安装日志
[omm@localhost ~]$ gs_install -X /apps/apps-express/soft/cmdb1m2s_cm.xml
Parsing the configuration file.
Check preinstall on every node.
Successfully checked preinstall on every node.
Creating the backup directory.
Last time end with Install cluster.
Continue this step.
Successfully created the backup directory.
begin deploy..
Rolling back.
Rollback succeeded.
Installing the cluster.
begin prepare Install Cluster..
Checking the installation environment on all nodes.
begin install Cluster..
Installing applications on all nodes.
Successfully installed APP.
begin init Instance..
encrypt cipher and rand files for database.
Please enter password for database:
Please repeat for database:
begin to create CA cert files
The sslcert will be generated in /apps/apps-express/app/share/sslcert/om
NO cm_server instance, no need to create CA for CM.
Cluster installation is completed.
Configuring.
Deleting instances from all nodes.
Successfully deleted instances from all nodes.
Checking node configuration on all nodes.
Initializing instances on all nodes.
Updating instance configuration on all nodes.
Check consistence of memCheck and coresCheck on database nodes.
Configuring pg_hba on all nodes.
Configuration is completed.
Successfully started cluster.
Successfully installed application.
end deploy..
安装过程中需要输入数据库的密码,密码不能出现特殊字符。
检查安装后的数据库状态
gs_om -t status --detail
出现以上界面,说明磐维数据库安装成功。
进入磐维用户
su - omm
设置远程连接
修改加密算法类型
如果想让磐维数据库支持多种客户端连接,需要修改磐维密码的加密类型
将 修改ChinaMobildDB的postgresql.conf文件 中的 password_encryption_type 设置为 1。
password_encryption_type = 1 #Password storage type, 0 is md5 for PG, 1 is sha256 + md5, 2 is sha256 only
设置白名单
gs_guc reload -N all -I all -h "host all all 10.12.3.0/24 md5"
10.12.3.0/24:ip段,请填写真实的ip段。
创建远程连接账号:
进入磐维数据库
gsql -d postgres -p 17700 -r
创建远程连接账号
CREATE USER cipherPlatform WITH PASSWORD 'q7SREqPxTTDZ6ZZ$';
赋予 admin 权限
grant ALL PRIVILEGE to cipherPlatform;
所有数据修改完成之后,重启磐维数据库/启动磐维数据库
gs_om -t stop && gs_om -t start
\q 退出数据库
一定要重启,否者可能会导致远程无法连接。
还原 /etc/ssh/sshd_config 的参数配置
vi /etc/ssh/sshd_config
修改内容,将 注释 PermitRootLogin 注释
#PermitRootLogin yes
这一步一定要执行,否则可能会导致 root 账号无法正常登录。