openGauss資料庫在CentOS上的安裝實踐

来源:https://www.cnblogs.com/huaweiyun/archive/2023/08/10/17620417.html
-Advertisement-
Play Games

本文分享自華為雲社區《openGauss資料庫在CentOS上的安裝實踐》,作者:Gauss小松鼠 。 1.安裝前準備 安裝資料庫前先要有已安裝centOS 7.6的伺服器+資料庫安裝包。 首先找小伙伴申請了華為雲ECS伺服器安裝好了OS,這裡使用的是x86_64+centos。 華為雲伺服器現在可 ...


本文分享自華為雲社區《openGauss資料庫在CentOS上的安裝實踐》,作者:Gauss小松鼠 。

1.安裝前準備

安裝資料庫前先要有已安裝centOS 7.6的伺服器+資料庫安裝包。

首先找小伙伴申請了華為雲ECS伺服器安裝好了OS,這裡使用的是x86_64+centos。

華為雲伺服器現在可是很划算呢,安裝也很方便。

[root@pekphisprb70593 ~]# cat /etc/os-release

NAME="CentOS Linux"

VERSION="7 (Core)"

ID="centos"

ID_LIKE="rhel fedora"

VERSION_ID="7"

PRETTY_NAME="CentOS Linux 7 (Core)"

ANSI_COLOR="0;31"

CPE_NAME="cpe:/o:centos:centos:7"

HOME_URL="https://www.centos.org/"

BUG_REPORT_URL="https://bugs.centos.org/"



CENTOS_MANTISBT_PROJECT="CentOS-7"

CENTOS_MANTISBT_PROJECT_VERSION="7"

REDHAT_SUPPORT_PRODUCT="centos"

REDHAT_SUPPORT_PRODUCT_VERSION="7"

通過軟體包 | openGauss登錄openGauss開源社區,選擇3.0.0版本對應平臺企業版安裝包。我用的centos_x86_64,安裝包下載到本地。文件名:openGauss-3.0.0-CentOS-64bit-all.tar.gz。

cke_119.png

2. python3準備

centos自帶的python是python2,不符合官方文檔要求。(實際也確實不能支撐openGauss安裝,我已經試過了)

cke_120.png

而且官方文檔只寫了要求有python3,並沒有詳細的說明要怎麼裝,所以就對一些新手不太友好。

centos要求python只能是3.6.X,而不是及以上,也就是不能用3.7。我這裡用的3.6.15。Python3安裝還依賴zlib。所以無論線上還是離線安裝都需要先把zlib相關安裝完成。

如果伺服器可以直接連到互聯網yum源或者自己公司的yum源 ,就可以參考線上版安裝。否則使用離線安裝。

2.1 線上版安裝

這裡要求伺服器可以直接連到互聯網用yum 或者wget,或者配置了代理。

  • 安裝依賴包,有些可能系統自帶,沒關係。
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

完成後會提示“Complete!”

  • 下載python安裝包。
wget https://www.python.org/downloads/release/python-3615/複製

因為下載很慢,也可以先去python官網 https://www.python.org/downloads/release/python-3615/下載一個新版本到本地再上傳到伺服器。

解壓然後安裝python3.6。make編譯時間比較長,耐心等待,滿屏的輸出陪著你。

tar -zxvf Python-3.6.15.tgz

cd Python-3.6.15/

./configure --prefix=/usr/local/python3 --enable-shared

make

make install

最後提示Successfully就說明安裝成功了。

cke_121.png

但是,註意此時還需要設置下OS上python的軟連接。其中,/usr/local/python3/需要替換為你自己python安裝包的實際路徑,就是上面./configure的路徑。

如果是按照我的指導做的就不用改。

ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3

ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

ln -s /usr/local/python3/lib/libpython3.6m.so.1.0 /usr/lib64/

export LD_LIBRARY_PATH=/usr/local/python3/lib:$LD_LIBRARY_PATH

到這裡在centos上安裝python3.6就完成了。

2.2 離線版安裝

由於有時需要在公司內網安裝,伺服器直接下載不方便,什麼 yum 、wget 統統不可用。只能去官網下載軟體到windows然後上傳linux後安裝。

[root@pekphisprb70593 software]# rpm -qa|grep zlib

zlib-1.2.7-18.el7.x86_64

所以我機器上自帶了1.2.7版本,需要安裝1.2.7版本的zlib-devel。自己去搜一個對應版本的上傳到伺服器上。

rpm -ivh zlib-devel-1.2.7-18.el7.x86_64.rpm

cke_122.png

剩下的就是按照線上版中說的,將python安裝包下載本地後上傳,執行與線上版相同的安裝和配置動作即可。

3. 修改操作系統配置

目前僅支持在防火牆關閉的狀態下進行安裝。

修改/etc/selinux/config文件中的“SELINUX”值為“disabled”。使用VIM打開config文件。

vi /etc/selinux/config

查看“SELINUX”的值是否為“disabled”。是的話直接下一步。不是的話修改“SELINUX”的值“disabled”,執行:wq保存並退出修改,然後reboot重啟。

cke_123.png

檢查防火牆是否關閉。若防火牆狀態顯示為inactive (dead),直接下一步。

systemctl status firewalld

若防火牆狀態顯示為active (running),則表示防火牆未關閉,請關閉防火牆。

systemctl disable firewalld.service

systemctl stop firewalld.service

將各資料庫節點的字元集設置為相同的字元集,可以在/etc/profile文件中添加“export LANG=en_US.UTF-8”(也可以設置成GBK,看你習慣用啥)。

使用swapoff -a命令將交換記憶體關閉。

修改/etc/systemd/logind.conf的“RemoveIPC”的值“no”,前面的#也刪掉。

cke_124.png

重新載入參數並檢查。

[root@pekphisprb70594 ~]# systemctl daemon-reload

[root@pekphisprb70594 ~]# systemctl restart systemd-logind

執行ifconfig命令查詢伺服器的網卡名稱。預設一般就是對的。

如下圖所示,伺服器IP為10.244.53.173,則該伺服器的網卡名稱為eth0。對於X86,官方文檔MTU值推薦1500。

cke_125.png

設置root用戶遠程登錄

  1. vim打開配置文件/etc/ssh/sshd_config。
  2. 查看PermitRootLogin配置是否為yes,表示允許用戶遠程登錄。
  3. 在Banner XXX 前面加 #,註釋掉歡迎語。
  4. 重啟sshd服務。
[root@pekphisprb70596 openGauss]# systemctl restart sshd.service

在其他伺服器上執行上面的步驟。

4. 配置文件cluster_config.xml準備

從安裝文檔示例中,把主機名pekphisprb70593和IP 10.x.x.x替換成自己實際使用的值。保存到文件,文件名為cluster_config.xml。

下麵是修改後的內容。註意編碼格式,我用notepad++ 可以看到編碼格式為UTF-8。新手建議Windows上修改完再上傳伺服器。

<?xml version="1.0" encoding="UTF-8"?>

<ROOT>

<!-- openGauss整體信息 -->

<CLUSTER>

<PARAM name="clusterName" value="opengSingle" />

<PARAM name="nodeNames" value="pekphisprb70593" />

<PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" />

<PARAM name="gaussdbLogPath" value="/var/log/omm" />

<PARAM name="tmpMppdbPath" value="/opt/huawei/tmp" />

<PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" />

<PARAM name="corePath" value="/opt/huawei/corefile" />

<PARAM name="backIp1s" value="10.x.x.x"/>



</CLUSTER>

<!-- 每台伺服器上的節點部署信息 -->

<DEVICELIST>

<!-- node1上的節點部署信息 -->

<DEVICE sn="pekphisprb70593">

<PARAM name="name" value="pekphisprb70593"/>

<PARAM name="azName" value="AZ1"/>

<PARAM name="azPriority" value="1"/>

<!-- 如果伺服器只有一個網卡可用,將backIP1和sshIP1配置成同一個IP -->

<PARAM name="backIp1" value="10.x.x.x"/>

<PARAM name="sshIp1" value="10.x.x.x"/>



<!--dbnode-->

<PARAM name="dataNum" value="1"/>

<PARAM name="dataPortBase" value="15400"/>

<PARAM name="dataNode1" value="/opt/huawei/install/data/dn"/>

<PARAM name="dataNode1_syncNum" value="0"/>

</DEVICE>

</DEVICELIST>

</ROOT>

5. 安裝及驗證

這一步基本上就是按照產品文檔進行安裝的了,沒啥好說的。

以root用戶登錄待安裝openGauss的任意主機,並按規劃創建存放安裝包的目錄。

mkdir -p /opt/software/openGauss

chmod 755 -R /opt/software

將安裝包“openGauss-3.0.0-CentOS-64bit-all.tar.gz”和配置文件“cluster_config.xml”都放到上一步所創建的/opt/software/openGauss目錄中。

解壓安裝包。

cd /opt/software/openGauss

tar -zxvf openGauss-3.0.0-CentOS-64bit-all.tar.gz

tar -zxvf openGauss-3.0.0-CentOS-64bit-om.tar.gz

進入script執行預安裝命令。我採用的是互動式,所以需要在中間提示的時候輸入密碼。安裝時長大概一兩分鐘。

[root@opengauss1 openGauss]# cd script/

[root@opengauss1 script]# ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml

Parsing the configuration file.

Successfully parsed the configuration file.

Installing the tools on the local node.

Successfully installed the tools on the local node.

Are you sure you want to create trust for root (yes/no)?yes

Please enter password for root

Password:

Successfully created SSH trust for the root permission user.

Setting host ip env

...

...

Fixing server package owner.

Setting finish flag.

Successfully set finish flag.

Preinstallation succeeded.

切換到omm用戶,使用gs_install安裝openGauss。中間根據提示輸入要設置的資料庫密碼,大概兩三分鐘的樣子。

[root@pekphisprb70593 script]# su - omm

Last login: Wed Jul 6 09:17:01 CST 2022

[omm@pekphisprb70593 ~]$ gs_install -X /opt/software/openGauss/cluster_config.xml

Parsing the configuration file.

Check preinstall on every node.

Successfully checked preinstall on every node.

Creating the backup directory.

Successfully created the backup directory.

begin deploy..

Installing the cluster.

...

Please enter password for database:

Please repeat for database:

...

Configuration is completed.

Successfully started cluster.

Successfully installed application.

end deploy..

檢查下資料庫狀態,state都是Normal就可以。

[omm@opengauss1 dn]$ gs_om -t status --detail

現在試一下連接。

[omm@opengauss1 om]$ gsql -d postgres -p 15400

gsql ((openGauss 3.0.0 build 02c14696) compiled at 2022-04-01 18:12:19 commit 0 last mr )

Non-SSL connection (SSL connection is recommended when requiring high-security)

Type "help" for help.



openGauss=# CREATE DATABASE mydb WITH ENCODING 'GBK' template = template0;

CREATE DATABASE

openGauss=#

openGauss=# \q

安裝到此結束。

6. 可能遇到的問題

Python安裝 make install提示zipimport.ZipImportError:can't decompress data;zlib not available。

tar -zxvf Python-3.6.15.tgz

cd Python-3.6.15/

./configure prefix=/usr/local/python3

make

make install

然後這裡報錯了,提示zlib沒有,解壓不了數據。

cke_126.png

這種一般是沒有裝zlib-devel。可以用yum的話執行 yum -y install zlib-devel 裝一下。

只能離線裝的話就按照本文離線版安裝章節解決下。

PS:這裡我搜了很多資料,因為沒有配置yum,只能離線方式安裝。開始按照zlib-xxx.tar.gz安裝然後編譯,結果安裝python一直提示上面的錯,還以為是zlib配置的不對,後來嘗試了zlib-devel的其他版本也不可。遇到相同問題的人避開這個坑。

openGauss執行./preinstall時報錯提示“Unable to import module: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory.”是python配置沒弄好。

解決辦法:

找到這個文件,寫到python配置文件里。

[root@pekphisprb70593 script]# find / -name libpython3.6m.so.1.0

/usr/local/python3/lib/libpython3.6m.so.1.0

/opt/Python-3.6.15/libpython3.6m.so.1.0

[root@pekphisprb70593 script]# cd /etc/ld.so.conf.d/

在這個路徑下新建python3.conf,裡面寫入libpython3.6m.so.1.0的上一層目錄,我這裡找到兩條,寫一條就好了,比如/usr/local/python3/lib,然後保存退出。

執行下麵這個重新載入下。

[root@pekphisprb70593 ld.so.conf.d]# ldconfig

再重新執行步驟4 ./gs_preinstall那條命令就可以了。

點擊關註,第一時間瞭解華為雲新鮮技術~


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • # WSL獲得Ubuntu系統 ## 一、WSL介紹 ![uTools_1691654842978](https://img2023.cnblogs.com/blog/3178390/202308/3178390-20230810191800229-1878153067.png) ## 二、WSL部 ...
  • 屏蔽驅動列印信息 root許可權:echo "1 4 1 7" > /proc/sys/kernel/printk sudo sh -c "sudo echo "1 4 1 7" > /proc/sys/kernel/printk 實現觸摸屏校驗 第一次進入Linux系統時,會出現觸摸校驗提示,按提示 ...
  • 平時在運維的時候,有時候SSH無法使用的情況下就需要備用telnet遠程,本文就簡單分享如何安裝配置telnet遠程 一、獲取安裝包 安裝包需要準備telnet\telnet-server\xintet,都是非常成熟的軟體,可線上直接安裝。 線上安裝: yum install telnet teln ...
  • ## 首先 - 聲明:這是轉載,我只是做一個記錄,以下內容可解決問題(本人已嘗試並已解決),當然也可以去轉載出處查看大佬的原回答: >[Win10系統, administrator賬戶被微軟賬戶強行綁定,怎麼破? - 海爾森肯威的回答 - 知乎](https://www.zhihu.com/ques ...
  • 博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ...
  • ![](https://img2023.cnblogs.com/blog/3076680/202308/3076680-20230809235422409-1190410594.png) # 1. 2版DB版本 ## 1.1. DB2 11.5 ## 1.2. Oracle 19c ## 1.3.  ...
  • “數據孤島”簡單的講,各組織都持有各自的數據,這些數據之間互有關係但又獨立存儲於各組織。出於安全性、合規性等方面考慮,各組織只能查詢、使用己方數據,無法交換其它組織的數據。在聯邦學習出現前,針對數據隱私保護的密碼學已應用於本地數據機器學習,隨著“數據孤島”問題的浮現,聯邦學習的概念出現併發展的日益成... ...
  • 1 pentaho簡介 `pentaho`是一款開源`ETL`工具,純java編寫的C/S模式的工具,可綠色免安裝,開箱即用。支持Windows、macOS、Linux平臺。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...