目錄
- 前言
- 一、安裝包的下載
- 二、安裝環境的準備
- 1、硬件環境要求
- 2、軟件環境要求
- 3、軟件依賴要求
- 4、關閉操作系統防火墻
- 6、設置操作系統字符集編碼
- 7、設置時區和時間
- 8、關閉swap交換內存(可選)
- 9、設置網卡MTU值
- 10、關閉virbr0網卡
- 11、關閉RemoveIPC[Only for openEuler]
- 12、關閉HISTORY記錄
- 13、設置root用戶遠程登錄
- 14、配置Banner
- 15、創建用戶和用戶組
- 16、設置sysctl.conf 不用配置
- 17、配置資源限制
- 18、關閉透明大頁
- 19、創建目錄
- 20、解壓安裝包
- 21、創建XML配置文件
- 22、設置/etc/hosts
- 23、執行預安裝腳本
- 二、開始安裝數據庫
- 三、驗證
- 四、卸載openGauss
前言
本文對應視頻鏈接如下
【高校課堂】openGauss 數據庫安裝部署
一、安裝包的下載
1、centos 7.6的下載
- 下載地址3個
http://archive.kernel.org/centos-vault/7.6.1810/isos/x86_64/
http://linuxsoft.cern.ch/centos-vault/7.6.1810/isos/x86_64/ - 經過測試,下面這個源下載速度比較快
http://mirror.nsc.liu.se/centos-store/7.6.1810/isos/x86_64/

選擇DVD版本就行
2、openEuler 20.03LTS的下載
-
下載地址:
https://repo.openeuler.org/openEuler-20.03-LTS-SP3/ISO/x86_64/

如果操作系統不是centos7.6怎么辦?
修改/etc/redhad-release
3、openGauss安裝包的下載
- 下載地址
https://opengauss.org/zh/download.html
選擇最新版本:3.1.0

軟件包下載完畢。
二、安裝環境的準備
1、硬件環境要求
| 項目 | 配置描述 |
|---|---|
| 內存 | 功能調試建議32GB以上。 性能測試和商業部署時,單實例部署建議128GB以上。 復雜的查詢對內存的需求量比較高,在高并發場景下,可能出現內存不足。 此時建議使用大內存的機器,或使用負載管理限制系統的并發。 |
| CPU | 功能調試最小1×8核,2.0GHz。 性能測試和商業部署時,單實例部署建議1×16核,2.0GHz。 CPU超線程和非超線程兩種模式都支持。 說明:目前,openGauss僅支持ARM服務器和基于x86_64通用PC服務器的CPU。 |
| 硬盤 | 用于安裝openGauss的硬盤需最少滿足如下要求: 至少1GB用于安裝openGauss的應用程序。 每個主機需大約300MB用于元數據存儲。 預留70%以上的磁盤剩余空間用于數據存儲。 建議系統盤配置為RAID1,數據盤配置為RAID5,且規劃4組RAID5數據盤用于安裝openGauss。有關RAID的配置方法在本手冊中不做介紹。請參考硬件廠家的手冊或互聯網上的方法進行配置,其中Disk Cache Policy一項需要設置為Disabled,否則機器異常掉電后有數據丟失的風險。 openGauss支持使用SSD盤作為數據庫的主存儲設備,支持SAS接口和NVME協議的SSD盤,以RAID的方式部署使用。 |
| 網絡要求 | 300兆以上以太網。 建議網卡設置為雙網卡冗余bond。 有關網卡冗余bond的配置方法在本手冊中不做介紹。請參考硬件廠商的手冊或互聯網上的方法進行配置。 |
- 本次實驗環境:
內存:4G
cpu 2x4
硬盤:20G
2、軟件環境要求
| 軟件類型 | 配置描述 |
|---|---|
| Linux操作系統 | ARM: openEuler 20.03LTS(推薦采用此操作系統) 麒麟V10 Asianux 7.5 x86: openEuler 20.03LTS CentOS 7.6 Asianux 7.6 說明:當前安裝包只能在英文操作系統上安裝使用。 |
| Linux文件系統 | 剩余inode個數 > 15億(推薦) |
| 工具 | bzip2 |
| Python | openEuler:支持Python 3.7.X CentOS:支持Python 3.6.X 麒麟:支持Python 3.7.X Asianux:支持Python 3.6.X 說明: python需要通過–enable-shared方式編譯。 |
本次實驗環境
Linux操作系統:CentOS 7.6
3、軟件依賴要求
| 所需軟件 | 建議版本 |
|---|---|
| libaio-devel | 建議版本:0.3.109-13 |
| flex | 要求版本:2.5.31 以上 |
| bison | 建議版本:2.7-4 |
| ncurses-devel | 建議版本:5.9-13.20130511 |
| glibc-devel | 建議版本:2.17-111 |
| patch | 建議版本:2.7.1-10 |
| redhat-lsb-core | 建議版本:4.1 |
| readline-devel | 建議版本:7.0-13 |
| libnsl(openEuler+x86環境中) | 建議版本:2.28-36 |
使用yum來安裝依賴包
yum -y install libaio-devel flex bison ncurses-devel glibc-devel patch redhat-lsb-core readline-devel python3
4、關閉操作系統防火墻
- 目前僅支持在防火墻關閉的狀態下進行安裝。
設置防火墻開機不自動啟動
systemctl disable firewalld.service
關閉防火墻
systemctl stop firewalld.service
設置selinux
vi /etc/selinux/config
修改為:SELINUX=disabled
在root用戶下臨時關閉selinux
setenforce 0
6、設置操作系統字符集編碼
LANG=en_US.UTF-8
echo "LANG=en_US.UTF-8" >> /etc/profile
source /etc/profile
echo $LANG
7、設置時區和時間
查詢時區
timedatectl
timedatectl list-timezones |grep Shanghai
timedatectl set-timezone Asia/Shanghai
修改時區和時間
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date -s "2021-04-29 15:51:50"
8、關閉swap交換內存(可選)
關閉swap交換內存是為了保障數據庫的訪問性能,避免把數據庫的緩沖區內存淘汰到磁盤上。 如果服務器內存比較小,內存過載時,可打開swap交換內存保障正常運行。
- 關閉
swapoff -a
- 開啟
swapon -a
9、設置網卡MTU值
將各數據庫節點的網卡MTU值設置為相同大小。
操作步驟
執行如下命令查詢服務器的網卡名稱。
ifconfig
使用如下命令將各數據庫節點的網卡MTU值設置為相同大小。MTU值推薦8192,要求不小于1500。
ifconfig ens33 mtu 8192
10、關閉virbr0網卡
centos 7.6
ifconfig virbr0 down
systemctl disable libvirtd.service
11、關閉RemoveIPC[Only for openEuler]
在各數據庫節點上,關閉RemoveIPC。CentOS操作系統無該參數,可以跳過該步驟。
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
12、關閉HISTORY記錄
為避免指令歷史記錄安全隱患,需關閉各主機的history指令。
- 步驟 1 修改根目錄下/etc/profile文件。
vim /etc/profile
- 步驟 2 設置HISTSIZE值為0。例如,系統中HISTSIZE默認值為1000,將其修改為0。
HISTSIZE=0
- 步驟 3 保存/etc/profile。
wq
- 步驟 4 設置/etc/profile生效。
source /etc/profile
13、設置root用戶遠程登錄
修改PermitRootLogin配置,允許用戶遠程登錄。
- a. 打開sshd_config文件。
vim /etc/ssh/sshd_config
- b. 修改權限配置,可以使用以下兩種方式實現:
注釋掉“PermitRootLogin no”。
#PermitRootLogin no
將“PermitRootLogin”改為“yes”。
PermitRootLogin yes
14、配置Banner
修改Banner配置,去掉連接到系統時,系統提示的歡迎信息。
歡迎信息會干擾安裝時遠程操作的返回結果,影響安裝正常執行。
- a. 編輯sshd_config文件。
vim /etc/ssh/sshd_config
- b. 修改Banner配置,注釋掉“Banner”所在的行。
#Banner XXXX
- c. 執行:wq保存并退出編輯頁面。
使用如下命令使設置生效。
systemctl restart sshd.service
以root用戶身份重新登錄。
ssh xxx.xxx.xxx.xxx
15、創建用戶和用戶組
為了實現安裝過程中安裝帳戶權限最小化,及安裝后openGauss的系統運行安全性,安裝腳本在安裝過程中會自動按照用戶指定內容創建安裝用戶,并將此用戶作為后續運行和維護openGauss的管理員帳戶。
1、用戶組:dbgrp
初始化安裝環境時,由-G參數所指定的安裝用戶所屬的用戶組。
該用戶組如果不存在,則會自動創建,也可提前創建好用戶組。
在執行gs_preinstall腳本時會檢查權限。
gs_preinstall腳本會自動賦予此組中的用戶對安裝目錄、數據目錄的訪問和執行權限。
2、用戶:omm
初始化安裝環境時,由-U參數所指定和自動創建的操作系統用戶。
此用戶具備數據庫的最高操作權限,此用戶初始密碼由用戶指定。
從安全性考慮,用戶所屬組是dbgrp
操作:
groupadd dbgrp
useradd -g dbgrp omm
echo 'omm@123' | passwd --stdin omm
16、設置sysctl.conf 不用配置
vi /etc/sysctl.conf
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_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_intvl = 30
net.ipv4.tcp_retries2 = 12
net.ipv4.ip_local_reserved_ports = 15400-15407,20050-20057
net.core.wmem_max = 21299200
net.core.rmem_max = 21299200
net.core.wmem_default = 21299200
net.core.rmem_default = 21299200
kernel.sem = 250 6400000 1000 25600
net.ipv4.tcp_rmem = 8192 250000 16777216
net.ipv4.tcp_wmem = 8192 250000 16777216
vm.min_free_kbytes = 201318
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.core.somaxconn = 65535
kernel.shmall = 1152921504606846720
kernel.shmmax = 18446744073709551615
執行命令,使其生效
sysctl -p
問題:
sysctl: cannot stat /proc/sys/net/sctp/path_max_retrans: No such file or directory
sysctl: cannot stat /proc/sys/net/sctp/max_init_retransmits: No such file or directory
解決方式:安裝sctp
lsmod |grep sctp
yum -y install lksctp*
modprobe sctp
再次執行sysctl -p
17、配置資源限制
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
18、關閉透明大頁
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.d/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
/usr/bin/sh /etc/rc.d/rc.local
19、創建目錄
mkdir -p /opt/software/openGauss
chmod 755 -R /opt/software
20、解壓安裝包
cd /root
tar -zxvf openGauss-3.1.0-CentOS-64bit-all.tar.gz -C /soft/openGauss/

繼續解壓安裝包openGauss-3.1.0-CentOS-64bit-om.tar.gz
tar -zxvf openGauss-3.1.0-CentOS-64bit-om.tar.gz

解壓出來的內容比較多
chmod -R 777 /opt/software/openGauss
21、創建XML配置文件
- 需要修改的地方:
數據庫節點名稱
nodeNames value=node1_hostname
sn=node1_hostname
把value后面的值改為主機名
IP地址
節點IP,與數據庫節點名稱列表一一對應
backIp1s value=192.168.204.16
backIp1 value=192.168.204.16
sshIp1 value=192.168.204.16
端口
dataPortBase value=15400
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- openGauss整體信息 -->
<CLUSTER>
<!-- 數據庫名稱 -->
<PARAM name="clusterName" value="dbCluster" />
<!-- 數據庫節點名稱(hostname) -->
<PARAM name="nodeNames" value="node1_hostname" />
<!-- 數據庫安裝目錄-->
<PARAM name="gaussdbAppPath" value="/opt/software/install/app" />
<!-- 日志目錄-->
<PARAM name="gaussdbLogPath" value="/opt/software/log/omm" />
<!-- 臨時文件目錄-->
<PARAM name="tmpMppdbPath" value="/opt/software/tmp" />
<!-- 數據庫工具目錄-->
<PARAM name="gaussdbToolPath" value="/opt/software/om" />
<!-- 數據庫core文件目錄-->
<PARAM name="corePath" value="/opt/software/corefile" />
<!-- 節點IP,與數據庫節點名稱列表一一對應 -->
<PARAM name="backIp1s" value="192.168.204.16"/>
</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.204.16"/>
<PARAM name="sshIp1" value="192.168.204.16"/>
<!--dbnode-->
<PARAM name="dataNum" value="1"/>
<PARAM name="dataPortBase" value="15400"/>
<PARAM name="dataNode1" value="/opt/software/install/data/dn"/>
<PARAM name="dataNode1_syncNum" value="0"/>
</DEVICE>
</DEVICELIST>
</ROOT>
22、設置/etc/hosts
配置了幾個ip都要對應到hosts中
vi /etc/hosts
[root@master01 om]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.204.16master01
192.168.204.141 master01
23、執行預安裝腳本
export MY_HOSTNAME=master01
cd /opt/software/openGauss/script
./gs_preinstall -U omm -G dbgrp -X /opt/software/open.xml
- 查系統環境
./gs_checkos -i A -h master01 –detail


二、開始安裝數據庫
1、切換用戶
必須使用上面預安裝指定的用戶進行安裝
su – omm
2、開始安裝
使用XML配置文件
./gs_install -X /opt/software/open.xml
需要輸入密碼,密碼要求:
- 最少包含8個字符。
- 不能和用戶名、當前密碼(ALTER)、或當前密碼反序相同。
- 至少包含大寫字母(A-Z)、小寫字母(a-z)、數字、非字母數字字符(限定為~!@#$%^&*()-_=+|[{}];:,<.>/?)四類字符中的三類字符。
su - omm
gs_install -X /opt/software/open.xml
Parsing the configuration file.
Check preinstall on every node.
Successfully checked preinstall on every node.
Creating the backup directory.
Last time end with Start cluster.
Continue this step.
Successfully created the backup directory.
begin deploy..
Successfully started cluster.
Successfully installed application.
end deploy..
安裝成功
三、驗證
su - omm
gs_om -t status

cluster_state:Normal
- 登錄庫
gsql -d postgres -p 15400
四、卸載openGauss
卸載openGauss的過程包含卸載openGauss和對openGauss服務器的環境做清理。
執行卸載
openGauss提供了卸載腳本幫助用戶完整的卸載openGauss。
操作步驟
- 以操作系統用戶omm登錄數據庫主節點。
- 使用gs_uninstall卸載openGauss。
1、卸載openGauss
集群卸載
su - omm
gs_uninstall --delete-data
本地卸載
gs_uninstall --delete-data -L
2、清理環境
一鍵式環境清理
在openGauss卸載完成后,如果不需要在環境上重新部署openGauss,可以運行腳本gs_postuninstall對openGauss服務器上環境信息做清理。openGauss環境清理是對環境準備腳本gs_preinstall所做設置的清理。
前提條件
- openGauss卸載執行成功。
- root用戶互信可用。
- 只能使用root用戶執行gs_postuninstall命令。
操作步驟
- 以root用戶登錄openGauss服務器。
- 查看root用戶互信是否建立,如果root用戶沒有建立互信,需要手工建立root用戶互信。
root用戶
cd /opt/software/openGauss/script
./gs_postuninstall -U omm -X /opt/software/open.xml --delete-user --delete-group




