一键部署 openGauss2.0.1[CentOS 7.6]

本文档目的是为了帮助高校学生提供基于 CentOS7.6 操作系统,实现 openGauss 数据库一键式安装的脚本。

该脚本执行成功后,所有关于 openGauss 数据库的文件将保存在/gaussdb 目录中。

脚本内容中“...”请替换为服务器实际的私有 IP 地址。

脚本内容中“...”请替换为服务器实际的私有 IP 地址。

脚本内容中“...”请替换为服务器实际的私有 IP 地址。

!/bin/bash

Author: 贾军锋

Date: 2021-04-15

OS: CentOS7.6 [最小硬件配置:2c/4G]

Database:openGauss 2.0.1

Description:一键式实现操作系统环境配置、openGauss软件下载、openGauss软件安装等步骤,帮助大家提升安装openGauss数据库效率

Tips: 请确保操作系统可以连接外网

0.关闭virbr0网卡 [本地虚拟机标准化安装openEuler系统会默认存在virbr0网卡,删除该网卡以避免干扰数据库的安装]

virsh net-destroy default

virsh net-list

echo "Net device virbr0 is disabled."

1.定义主机信息[请根据实际情况修改]

export MY_HOSTNAME=node1 ## 主机名

export MY_HOSTIP=... ## IP地址

export MY_SOFTWARE_DIRECTORY=/soft/openGauss ## 软件包所在目录

export MY_XML=/soft/openGauss/clusterconfig.xml ## 集群配置文件XML

export openGauss_Download_url=https://opengauss.obs.cn-south-1.myhuaweicloud.com/2.0.1/x86/openGauss-2.0.1-CentOS-64bit-all.tar.gz ## openGauss软件包下载地址

1. 设置主机名并配置hosts文件

hostnamectl set-hostname $MY_HOSTNAME

sed -i '/$MY_HOSTIP/d' /etc/hosts

echo "$MY_HOSTIP $MY_HOSTNAME #Gauss OM IP Hosts Mapping" >> /etc/hosts

cat /etc/hosts

echo "1.Configure /etc/hosts completed."

echo -e "\n"

2. 关闭防火墙

systemctl disable firewalld.service

systemctl stop firewalld.service

echo "Firewalld " systemctl status firewalld|grep Active

echo "2.Disable firewalld service completed."

echo -e "\n"

3. 关闭SELinux

sed -i '/^SELINUX=/d' /etc/selinux/config

echo "SELINUX=disabled" >> /etc/selinux/config

cat /etc/selinux/config|grep "SELINUX=disabled"

echo "3.Disable SELINUX completed."

echo -e "\n"

4. 设置操作系统字符集编码

echo "LANG=en_US.UTF-8" >> /etc/profile

source /etc/profile

echo $LANG

echo "4.Configure encoding completed."

echo -e "\n"

5. 设置操作系统时区

rm -fr /etc/localtime

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

date -R

hwclock

echo "5.Configure Timezone completed."

echo -e "\n"

6. 关闭SWAP分区 [对于2G内存的设备,建议待安装完毕后再打开SWAP以间接 “扩容内存容量”]

sed -i '/swap/s/^/#/' /etc/fstab

swapoff -a

free -m

echo "6.Close swap partition completed."

echo -e "\n"

7. 配置SSH服务,关闭Banner,允许root远程登录

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

cat /etc/ssh/sshd_config |grep -v ^#|grep -E 'PermitRoot|Banner'

echo "7.Configure SSH Service completed."

echo -e "\n"

8. 配置YUM源、安装依赖包、修改默认Python3版本

mkdir /etc/yum.repos.d/bak

mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/

wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo

yum clean all

yum install -y bzip2 python3

yum install -y libaio-devel flex bison ncurses-devel glibc-devel patch redhat-lsb-core readline-devel net-tools tar

mv /usr/bin/python /usr/bin/python2_bak

ln -s /usr/bin/python3 /usr/bin/python

python -V

echo "8.Configure Install Packages and change default Python version completed."

echo -e "\n"

9. 配置 sysctl.conf 和 performance.sh

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

EOF

sysctl -p

echo "9.Configure sysctl.conf and performance.sh completed."

echo -e "\n"

10. 配置资源限制

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

echo "10.Configure resource limits completed."

echo -e "\n"

11. 关闭透明大页[Only for CentOS]

cat >>/etc/rc.d/rc.local<<EOF

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

EOF

chmod +x /etc/rc.d/rc.local

/usr/bin/sh /etc/rc.d/rc.local

cat /sys/kernel/mm/transparent_hugepage/enabled

cat /sys/kernel/mm/transparent_hugepage/defrag

echo "11.Close transparent_hugepage completed."

echo -e "\n"

12. 禁用RemoveIPC[Only for openEuler]

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

echo "12.Disable RemoveIPC completed."

echo -e "\n"

13. 下载openGauss软件包

mkdir -p $MY_SOFTWARE_DIRECTORY

cd $MY_SOFTWARE_DIRECTORY

wget $openGauss_Download_url

echo "13.openGauss software download completed."

echo -e "\n"

14. 配置XML文件

rm -fr $MY_XML

cat >> $MY_XML <<EOF

    <!--dbnode-->
<PARAM name="dataNum" value="1"/>
<PARAM name="dataPortBase" value="26000"/>
<PARAM name="dataNode1" value="/gaussdb/data/db1"/>
</DEVICE>
</DEVICELIST>

EOF
cat $MY_XML
echo "14.Configure XML file completed."
echo -e "\n"

15. 解压安装包并修改目录权限

echo "Begin to Uncompress openGauss Package and Modify directory permissions:"

cd $MY_SOFTWARE_DIRECTORY

tar -zxvf *all.tar.gz

tar -zxvf *om.tar.gz

ls -l

chmod -R 777 $MY_SOFTWARE_DIRECTORY/../

echo "15.Uncompress openGauss Package completed."

echo -e "\n"

16. 执行 gs_preinstall

echo "Begin to execute openGauss preinstall:"

python $MY_SOFTWARE_DIRECTORY/script/gs_preinstall -U omm -G dbgrp -X $MY_XML

echo "16.openGauss preinstall completed."

echo -e "\n"

17. 检查预安装环境

echo "Begin to Check OS environment:"

$MY_SOFTWARE_DIRECTORY/script/gs_checkos -i A -h $MY_HOSTNAME --detail

18. 执行 gs_install

echo "Begin to execute openGauss install:"

touch /home/omm/install_db

cat >> /home/omm/install_db <<EOF

source ~/.bashrc

gs_install -X $MY_XML --gsinit-parameter="--encoding=UTF8" --dn-guc="max_process_memory=3GB" --dn-guc="shared_buffers=128MB" --dn-guc="cstore_buffers=16MB"

EOF

chown -R omm:dbgrp /home/omm/install_db

su - omm -c "sh /home/omm/install_db"

echo "17.openGauss install completed."

echo -e "\n"

安装完毕!

echo "openGauss Install completed.congratulations"

echo "Congratulations!!!"

一键部署openGauss2.0.1 CentOS 7.6的更多相关文章

  1. 一键部署redis-5.0.5

    #!/bin/bash echo "-------------------------------------" echo -e "\e[1;33m 下面开始部署redi ...

  2. Centos 环境一键部署脚本(shell脚本)

    谨以此文纪念吊炸天的Centos环境一键部署方案的新鲜出炉 辛苦大半年,产品准备上线了,BOSS亲自体验安装部署,看着超过200+页的安装文档直接崩溃了(需要部署23个基础服务),经历了超过3个小时的 ...

  3. centos 7 部署 open-falcon 0.2.0

    =============================================== 2017/12/06_第2次修改                       ccb_warlock 更 ...

  4. 源码编译安装Apache-附一键部署脚本

    1.进入apache官网https://www.apache.org/,点击Download 2.如图选择 3.选择httpd 4.下载两个包,2.2为CentOS6使用,2.4为CentOS7使用 ...

  5. 使用docker-compose 一键部署你的分布式调用链跟踪框架skywalking

    一旦你的程序docker化之后,你会遇到各种问题,比如原来采用的本地记日志的方式就不再方便了,虽然你可以挂载到宿主机,但你使用 --scale 的话,会导致 记录日志异常,所以最好的方式还是要做日志中 ...

  6. Docker Compose 一键部署LNMP

    Docker Compose 一键部署LNMP 目录结构 [root@localhost ~]# tree compose_lnmp/ compose_lnmp/ ├── docker-compose ...

  7. Docker Compose 一键部署Nginx代理Tomcat集群

    Docker Compose 一键部署Nginx代理Tomcat集群 目录结构 [root@localhost ~]# tree compose_nginx_tomcat/ compose_nginx ...

  8. Docker Compose 一键部署多节点爬虫程序

    Docker Compose 一键部署多节点爬虫程序 目录结构 [root@localhost ~]# tree compose_crawler/ compose_crawler/ ├── cento ...

  9. ansible一键部署k8s单机环境

    一.虚拟机准备 干净的Centsot7.4.4G内存.2个CPU 最小化安装,最好带虚拟化 二.执行初始化脚本 注意:脚本中配置静态网卡根据实际网卡名称配置,我用的是ens33 可以用 sed -i ...

  10. 从域名到网站,快速创建全新社区站点 - phpwind一键部署操作文档

    关于phpwind一键部署服务,请查阅PW官网:http://www.phpwind.com/setup.html 选择一键部署镜像版本,立即开始使用: PW建站系统(Centos 64位) ———— ...

随机推荐

  1. [Rocky Linux] 使用btrfs

    使用btrfs rocky本身并没有btrfs的相关管理工具,所以需要自己安装,但是遗憾的发现它的源中啥也没有.只能考虑自己安装. 相关说明 btrfs Wiki (kernel.org) 可以从中得 ...

  2. 方便快速的看到C/C++代码汇编 objdump 英特尔语法

    目录 概述 Objdump 所有参数 其他的 概述 因为奇怪的考试要求,最近经常有奇怪的问题,例如为什么(++a)+(++a)=14 发现反编译出汇编之后,就能解释很多奇怪的问题 Objdump 一次 ...

  3. hadoop集群启动成功但进入web50070管理界面显示DataNode为0与集群运行,结果全为0的问题总结

    Hadoop完全分布式出现DataNode为0的解决方案 问题:在配置好Hadoop后,jps命令下看见Hadoop服务已经启动,namenode和datanode都已经启动,但进入Hadoop界面还 ...

  4. welearn平台答案 大学英语 视听说 综合教程

    打开页面 1. F12 2. ctrl+shift+c 3. 鼠标移动到选项位置 4. 带data-solution的就是答案

  5. 一款开源、免费、跨平台的Redis可视化管理工具

    前言 经常有小伙伴在技术群里问:有什么好用的Redis可视化管理工具推荐的吗?, 今天大姚给大家分享一款我一直在用的开源.免费(MIT License).跨平台的Redis可视化管理工具:Anothe ...

  6. Zabbix自动发现:python-json模块应用介绍

    一.JSON模块介绍 json模块是python内置的库,其主要功能是将序列化数据从文件里读取出来或者存入文件.该模块有四个方法:dump().load().dumps().loads(),其中dum ...

  7. manjaro配置软件源

    sudo pacman-mirrors -i -c China -m rank从中选择最快的软件源!

  8. day01-1-需求分析和项目设计

    满汉楼01 1.需求分析 满汉楼项目说明 因为javaGUI不是学习的重点,这里将继续使用控制台界面来代替界面和事件处理 完成的功能: 登录 订座 点餐 结账 查看账单等功能 在实际项目中,独立完成项 ...

  9. MediaBox音视频终端SDK已适配鸿蒙星河版(HarmonyOS NEXT)

    2024年1月,HarmonyOS NEXT 鸿蒙星河版系统开发者预览版开放申请,该系统将只能安装为鸿蒙开发的原生应用,而不再兼容安卓应用.对此,阿里云MediaBox音视频终端SDK产品已实现功能的 ...

  10. 云VR:虚拟现实专业化的下一步

    传统的VR通常需要功能强大的计算机和其他高性能设备来提供良好的用户体验.但是,如果有一种方法可以从任何设备和任何地方处理VR内容呢?这就是云VR对VR用户的承诺.随着5G和其他网络的到来,VR技术的未 ...