一键部署 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. 【Azure API 管理】APIM服务资源删除后,为什么不能马上创建相同名称的APIM服务呢?

    问题描述 使用Azure APIM服务,在删除旧资源准备新建相同名称的新APIM服务时,尝试多次都是出现"指定的服务名称已正在使用"错误.但实际上同名称的服务已经被删除.为什么多次 ...

  2. 二: sql模式(sql_mode)

    # sql_mode 1 介绍 sql_mode 会影响 MySQL支持的SQL语法以及它执行的数据验证检查.通过设置sql_mode,可以完成不同严格程度 的数据校验,有效地保障数据准确性. MyS ...

  3. C语言之牛必克拉斯 main() 函数

    C语言之main()函数 C程序最大的特点就是所有的程序都是用函数来装配的.main()称之为主函数,是所有程序运行的入口.其余函数分为有参或无参两种,均由main()函数或其它一般函数调用,若调用的 ...

  4. C1. Good Subarrays (Easy Version)

    思路:我们枚举每一个左端点,对于每一个左端点,寻找最长的满足条件的区间,这个区间长度就是左端点对答案的贡献,可以发现具有单调性,右端点只会前进不会倒退.所以我们两个指针各扫一遍区间就可以. #incl ...

  5. OpenCV开发笔记(七十七):相机标定(二):通过棋盘标定计算相机内参矩阵矫正畸变摄像头图像

    前言   通过相机图片可以识别出棋盘角点了,这时候我们需要通过角点去计算相机内参矩阵,通过上篇得知畸变的原理,所以我们尽可能要全方位都能获取标定图片,全方位意思是提供的多张图综合起来基本覆盖了相机所有 ...

  6. Failed to collect dependencies at com.oneconnect......-Intellij-IDEA-使用maven打包采坑记录

    一.问题由来 由于刚开始使用Intellij-IDEA,使用不是很熟练,因此使用过程中出现各种各样的问题.最近开发过程中,准备使用IDEA打包项目发布到测试服务器,报错信息如下: Failed to ...

  7. 玩转Vue3之深入理解响应式编程

    前言 Vue 3是一个功能强大的前端框架,它引入了一些令人兴奋的新特性,其中最引人注目的是ref和reactive.这两个API是Vue 3中响应式编程的核心,本文将深入探讨它们的用法和差异. 什么是 ...

  8. apt-get install安装软件时出现依赖错误解决方案

    在使用apt-get install安装软件时,经常会遇到如上图所示错误,该错误的意思为缺少依赖软件,解决方案为: aptitude install golang-go

  9. FreeRTOS教程6 互斥量

    1.准备材料 正点原子stm32f407探索者开发板V2.4 STM32CubeMX软件(Version 6.10.0) Keil µVision5 IDE(MDK-Arm) 野火DAP仿真器 XCO ...

  10. 爬虫实战:探索XPath爬虫技巧之热榜新闻

    之前我们已经详细讨论了如何使用BeautifulSoup这个强大的工具来解析HTML页面,另外还介绍了利用在线工具来抓取HTTP请求以获取数据的方法.在今天的学习中,我们将继续探讨另一种常见的网络爬虫 ...