一、操作系统配置
1、配置主机名
1、设置主机名
hostnamectl set-hostname gsdb01
输入bash命令查看主机名是否改变
[root@gsdb01 ~]#
2、输入hostname查看:
hostname #输出为gsdb01
3、查看配置文件
cat /etc/hostname #输出为gsdb01
4、添加主机名映射
vi /etc/hosts
ip gsdb01 #添加主机名和ip映射
2、关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
3、关闭SELINUX
用命令查询:
getenforce #看看执行结果是否是Disabled
如果不是:
vi /etc/selinux/config
SELINUX=disabled
reboot #必须得重启操作系统才能生效
4、设置字符集参数
将各数据库节点的字符集设置为相同的字符集,可以在/etc/profile文件中添加“export LANG=XXX”(XXX为Unicode编码)
1、配置字符集参数
vim /etc/profile
export LANG=en_US.UTF-8
2、重新加载生效
source /etc/profile
echo $LANG
5、设置时区和时间
1、查看操作系统时区
timedatectl status|grep 'Time zone' #输出应该为Time zone: Asia/Shanghai (CST, +0800)
##如果不是Asia/Shanghai
timedatectl set-timezone Asia/Shanghai
2、查看数据库服务器时间是否一致
date #两者时间应该是一样的
#可以使用date -s命令将各主机的时间设置为统一时间
#建议启动ntpd服务,开启时间同步
6、关闭swap交换分区
关闭swap交换内存是为了保障数据库的访问性能,避免把数据库的缓冲区内存淘汰到磁盘上。
如果服务器内存比较小,内存过载时,可打开swap交换内存保障正常运行。
1、临时关闭,重启失效
swapoff -a
2、修改配置文件,以后重启会自动执行
sed -i 's/.*swap.*/#&/' /etc/fstab
或者
sed -i '/swap/s/^/#/' /etc/fstab
7、设置网卡MTU值(可选)
将各数据库节点的网卡MTU值设置为相同大小。对于X86,MTU值推荐1500;对于ARM,MTU值推荐8192。
1、查看命令
ifconfig |grep mtu
2、临时修改设置,重启失效
ifconfig 网卡编号 mtu 值
3、修改配置文件
vi /etc/sysconfig/network-scripts/ifcfg-eth0
MTU=2000
##需要重启生效
8、关闭RemoveIPC
#关闭RemoveIPC,CentOS 7.6已经默认关闭,该步骤可以跳过
sed -i '/^RemoveIPC/d' /etc/systemd/logind.conf
sed -i '/^RemoveIPC/d' /usr/lib/systemd/system/systemd-logind.service
echo "RemoveIPC=no" >> /etc/systemd/logind.conf
echo "RemoveIPC=no" >> /usr/lib/systemd/system/systemd-logind.service
systemctl daemon-reload
systemctl restart systemd-logind
loginctl show-session | grep RemoveIPC
systemctl show systemd-logind | grep RemoveIPC
9、关闭history(可选)
为避免指令历史记录安全隐患,需关闭各主机的history指令
vim /etc/profile
HISTSIZE=0 #设置HISTSIZE值为0。例如,系统中HISTSIZE默认值为1000,将其修改为0。
source /etc/profile
10、关闭透明大页transparent_hugepage
Linux的透明大页功能会降低操作系统的IO性能,而且需要一定的CPU资源对大页碎片进行整理,在实际生产中也遇到很多案例是因为透明大页的问题
导致数据库Hang或彻底宕机。所以,有经验的DBA在部署数据库时一般都会选择关闭操作系统的透明大页(THP)。
临时关闭,重启失效
echo 'never' >/sys/kernel/mm/transparent_hugepage/enabled
echo 'never' >/sys/kernel/mm/transparent_hugepage/defrag
写进配置文件
vi /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
chmod +x /etc/rc.d/rc.local
11、配置SSH服务(允许root登录,关闭Banner)
如果是单机版openGauss,可以不开启root远程登录权限
数据库需要root互信时才开启远程连接。在各主机操作完成并且验证完毕后请及时注销root用户,避免误操作。
vi /etc/ssh/sshd_config
PermitRootLogin yes
修改Banner配置,去掉连接到系统时,系统提示的欢迎信息。欢迎信息会干扰安装时远程操作的返回结果,影响安装正常执行。
#Banner XXX #注释掉Banner开头的
systemctl restart sshd.service
测试:
ssh root@xxx.xxx.xxx.xxx #登录成功看看是否还有欢迎语
bclinux注释掉Banner还是不能屏蔽登录时欢迎信息
vi /etc/profile.d/dynmotd.sh
continue #在$SCRIPT上面添加
$SCRIPT
12、适配python版本
1、通过python3查询一些操作系统信息
python3
>>> import platform
>>> import sys
>>> print(platform.platform()) #查询操作系统版本号
Linux-4.19.90-2107.6.0.0100.oe1.bclinux.x86_64-x86_64-with-openEuler-21.10-LTS-SP2
>>> print(sys.version_info[0:2]) #查询python版本号
(3, 7)
>>> quit()
2、openGauss判断python版本号的文件
./script/gspylib/common/CheckPythonVersion.py
如果操作系统版本号包括oe1,并且python版本号为3, 7则通过
如果python版本号为3, 6则通过
其他情况都视为python版本号不符合条件
3、如果查询出来的条件不符合,则修改CheckPythonVersion.py
比如python版本号为3, 8
将
else:
if not pythonVersion == (3, 6):
改为:
else:
if not pythonVersion >= (3, 6):
13、openEuler操作系统额外配置
仅限于openEuler操作系统,centos没有这个文件
vi /etc/profile.d/performance.sh
#sysctl -w vm.min_free_kbytes=112640 &> /dev/null #注释掉
14、安装依赖包
1、查询安装依赖包
rpm -qa | grep -E "libaio-devel|flex|bison|ncurses-devel|glibc-devel|patch|redhat-lsb-core|readline-devel|bzip2"
rpm -qa|grep libnsl #欧拉系统需要额外安装libnsl,是libnsl,不是libnsl2
2、全量安装
#需要额外安装expect
yum install -y libaio-devel flex bison ncurses-devel glibc-devel patch readline-devel bzip2 expect
yum install -y redhat-lsb-core #欧拉系统没有redhat-lsb-core依赖包,可以忽略
yum install -y libnsl #欧拉系统需要这个依赖包
15、额外说明
用户、用户组、安装目录建议不要提前创建和指定,最好通过gs_preinstall脚本自动创建;
操作系统资源限制操作不需要手动提前配置,使用gs_preinstall脚本自动配置;
操作系统内核参数配置操作不需要提前配置,使用gs_preinstall脚本自动配置,但有4条网络方面的内核参数依然需要手动配置(详见下文记录)。