本文分享自華為雲社群《openGauss 6.0.0新版本安裝測評》,作者:馬順華。
前言
近日,備受矚目的openGauss 6.0.0版本正式上線,作為國產資料庫的佼佼者,openGauss一直致力於為使用者提供高效、穩定的資料庫解決方案。恰逢openGauss社群舉辦的第七屆openGauss技術文章徵集活動正式開啟,我有幸親身體驗了這一新版本,並在此分享我的安裝及使用測評。
一、安裝體驗
openGauss 6.0.0版本在安裝方面進行了重大改進,推出了全新的一站式互動安裝功能。這一功能極大地簡化了安裝流程,降低了使用者的學習成本。在安裝過程中,使用者只需透過互動介面輸入資料庫的相關資訊,系統便會自動生成xml配置檔案,並自動進行資料庫的初始化安裝。相比之前的版本,這一改變無疑是一大亮點。
在實際安裝過程中,我按照提示逐步操作,整個過程流暢無阻。值得一提的是,openGauss 6.0.0版本還解除了對root使用者的依賴,進一步提升了安裝的安全性。安裝完成後,我成功啟動了資料庫服務,並進行了基本的測試。
二、使用體驗
效能最佳化:openGauss 6.0.0版本在效能方面進行了最佳化,特別是在主備複製方面。透過實際測試,我發現新版本在資料同步和故障恢復方面表現優異,能夠滿足大多數業務場景的需求。
中文日誌支援:新版本還增加了中文日誌支援功能,這一功能對於國內使用者來說非常實用。透過檢視中文日誌,使用者可以更直觀地瞭解資料庫的執行狀態和錯誤資訊,從而更快速地定位問題並進行修復。
多版本支援:openGauss 6.0.0版本提供了企業版和輕量版兩個安裝版本供使用者選擇。企業版適用於大規模、高效能的業務場景,而輕量版則更加適合小規模、輕量級的應用。這種多版本的支援策略使得openGauss能夠滿足不同使用者的需求。
三、安裝準備
本章詳細介紹openGauss極簡安裝的環境準備和配置,極簡安裝包括單節點安裝和一主一備節點安裝,請在安裝之前仔細閱讀本章的內容。如果已完成本章節的配置,請忽略。
1、獲取安裝包
openGauss開源社群上提供了安裝包的獲取方式。
本次試驗環境如下:(根據實際軟硬體情況,選擇不同的安裝包)
架構 :x86x_64
作業系統:Centos 7.6
軟體包:openGauss_6.0.0-RC1 極簡版
2、下載到伺服器
[root@worker1 soft]# ls openGauss-6.0.0-RC1-CentOS-64bit.tar.bz2 [root@worker1 soft]#
3、系統環境配置
3.1 目前僅支援在防火牆關閉的狀態下進行安裝。
[root@worker1 soft]# sestatus SELinux status: disabled [root@worker1 soft]# [root@worker1 soft]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) [root@worker1 soft]#
3.2 設定字符集引數
將各資料庫節點的字符集設定為相同的字符集,可以在/etc/profile檔案中新增“export LANG=XXX”(XXX為Unicode編碼)。
en_US.UTF-8
[root@worker1 soft]# echo 'export LANG=en_US.UTF-8' >>/etc/profile [root@worker1 soft]#
3.3 關閉RemoveIPC
在各資料庫節點上,關閉RemoveIPC。CentOS作業系統預設為關閉,可以跳過該步驟。、
RemoveIPC=no
3.4 關閉HISTORY記錄
HISTSIZE=0
4、建立使用者和組
4.1 建立使用者組dbgroup。
[root@worker1 ~]# [root@worker1 ~]# groupadd dbgroup [root@worker1 ~]#
4.2 建立使用者組dbgroup下的普通使用者omm,並設定普通使用者omm的密碼。
[root@worker1 ~]# useradd -g dbgroup omm [root@worker1 ~]# passwd omm Changing password for user omm. New password: Retype new password: passwd: all authentication tokens updated successfully. [root@worker1 ~]#
四、單節點安裝
前提條件
- 已完成使用者組和普通使用者的建立。
- 所有伺服器作業系統和網路均正常執行。
- 普通使用者必須有資料庫包解壓路徑、安裝路徑的讀、寫和執行操作許可權,並且安裝路徑必須為空。
- 普通使用者對下載的openGauss壓縮包有執行許可權。
- 安裝前請檢查指定的openGauss埠是否被佔用,如果被佔用請更改埠或者停止當前使用埠程序。
1、使用者登入
使用普通使用者登入到openGauss包安裝的主機,解壓openGauss壓縮包到安裝目錄(假定安裝目錄為/opt/software/openGauss,請用實際值替換)。
[root@worker1 soft]# ls openGauss-6.0.0-RC1-CentOS-64bit.tar.bz2 [root@worker1 soft]# tar -jxf openGauss-6.0.0-RC1-CentOS-64bit.tar.bz2 -C /opt/software/openGauss/ [root@worker1 soft]#
如果報錯沒有許可權
[omm@worker1 soft]$ tar -jxf openGauss-6.0.0-RC1-CentOS-64bit.tar.bz2 -C /opt/software/openGauss/ tar: ./bin: Cannot mkdir: Permission denied tar: ./bin: Cannot mkdir: Permission denied
切換為root使用者後新增許可權就可以了
[root@worker1 opt]# chown omm:dbgroup /opt/software/openGauss/ [root@worker1 opt]# chmod 755 /opt/software/openGauss/
2、解壓
假定解壓包的路徑為/opt/software/openGauss,進入解壓後目錄下的simpleInstall。
[root@worker1 soft]# cd /opt/software/openGauss/simpleInstall
[root@worker1 simpleInstall]# ls
finance.sql install.sh README.md school.sql
[root@worker1 simpleInstall]#
3、指令碼安裝
執行install.sh指令碼安裝openGauss。
[root@worker1 simpleInstall]# sh install.sh -w "openGauss666" &&source ~/.bashrc [step 1]: check parameter Error: can not install openGauss with root [root@worker1 simpleInstall]#
安裝報錯
[omm@worker1 simpleInstall]$ sh install.sh -w "openGauss666" &&source ~/.bashrc [step 1]: check parameter [step 2]: check install env and os setting On systemwide basis, the maximum number of SEMMNI is not correct. the current SEMMNI value is: 128. Please check it. The required value should be greater than 321. You can modify it in file '/etc/sysctl.conf'. [omm@worker1 simpleInstall]$
解決辦法:
用root登入修改所需的值應大於321,然後執行sysctl -p
[root@worker1 ~]# [root@worker1 ~]# sysctl -w kernel.sem="250 85000 250 330" kernel.sem = 250 85000 250 330 [root@worker1 ~]#
再次執行install.sh指令碼安裝openGauss。
[omm@worker1 simpleInstall]$ sh install.sh -w "openGauss666" &&source ~/.bashrc [2024-05-17 16:39:10.010][7802][][gs_ctl]: done [2024-05-17 16:39:10.010][7802][][gs_ctl]: server started (/opt/software/openGauss/data/single_node) import sql file Would you like to create a demo database (yes/no)?
4、完成安裝
5、檢查安裝程序
安裝執行完成後,使用ps和gs_ctl檢視程序是否正常。
[omm@worker1 simpleInstall]$ [omm@worker1 simpleInstall]$ ps ux | grep gaussdb omm 7805 2.2 2.8 6267816 922936 ? Ssl 16:39 0:04 /opt/software/openGauss/bin/gaussdb -D /opt/software/openGauss/data/single_node omm 8180 0.0 0.0 110480 908 pts/0 S+ 16:42 0:00 grep --color=auto gaussdb [omm@worker1 simpleInstall]$
ps ux | grep gaussdb
gs_ctl query -D /opt/software/openGauss/data/single_node
5.1 執行ps命令,顯示類似如下資訊:
omm 20377 0.0 0.0 119880 1216 pts/0 S+ 15:37 0:00 grep --color=auto gaussdb
5.2 執行gs_ctl命令,顯示類似如下資訊:
HA state: local_role : Normal static_connections : 0 db_state : Normal detail_information : Normal Senders info: No information Receiver info: No information [omm@worker1 simpleInstall]$
五、資料庫的增刪改查
1、連線本地連線資料庫
gsql ((openGauss 6.0.0-RC1 build ed7f8e37) compiled at 2024-03-31 11:59:31 commit 0 last mr ) Non-SSL connection (SSL connection is recommended when requiring high-security) Type "help" for help. openGauss=#
登入埠可以檢視 postgresql.conf檔案
[omm@worker1 single_node]$ cat postgresql.conf |grep port port = 5432 # (change requires restart) #ssl_renegotiation_limit = 0 # amount of data between renegotiations, no longer supported # supported by the operating system:
2、建立資料庫
資料庫安裝完成後,預設生成名稱為postgres的資料庫。您需要自己建立一個新的資料庫。
openGauss=# CREATE DATABASE database_openGauss;
CREATE DATABASE
openGauss=#
3、檢視資料庫
3.1 使用“\l”用於檢視已經存在的資料庫。
\l
openGauss=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges --------------------+-------+----------+-------------+-------------+------------------- database_opengauss | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | finance | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | postgres | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | school | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/omm + | | | | | omm=CTc/omm template1 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/omm + | | | | | omm=CTc/omm (6 rows) openGauss=#
3.2 使用 “\c + 資料庫名” 進入已存在資料庫。
openGauss=# openGauss=# \c database_opengauss Non-SSL connection (SSL connection is recommended when requiring high-security) You are now connected to database "database_opengauss" as user "omm". database_opengauss=#
4、修改資料庫
ALTER DATABASE database_opengauss RENAME TO new_name666;
openGauss=# ALTER DATABASE database_opengauss RENAME TO new_name666; ALTER DATABASE openGauss=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+-------+----------+-------------+-------------+------------------- finance | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | new_name666 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | postgres | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | school | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/omm + | | | | | omm=CTc/omm template1 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/omm + | | | | | omm=CTc/omm (6 rows) openGauss=#
5、刪除資料庫
openGauss=# DROP DATABASE new_name666 ; DROP DATABASE openGauss=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+-------+----------+-------------+-------------+------------------- finance | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | postgres | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | school | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/omm + | | | | | omm=CTc/omm template1 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/omm + | | | | | omm=CTc/omm (5 rows) openGauss=#
總結
openGauss 6.0.0版本在安裝和使用方面都帶來了很大的改進和最佳化。一站式互動安裝功能極大地簡化了安裝流程,降低了使用者的學習成本;效能最佳化和中文日誌支援功能則進一步提升了資料庫的穩定性和易用性。透過實際測試,我認為openGauss 6.0.0版本是一款非常優秀的國產資料庫產品,值得廣大使用者嘗試和使用。
HDC 2024,6月21日-23日,東莞松山湖,期待與您相見!
更多詳情請關注官網:
中文:https://developer.huawei.com/home/hdc
英文:https://developer.huawei.com/home/en/hdc
點選關注,第一時間瞭解華為雲新鮮技術~