作者:每天譯點曉知識
引入 | 鯤鵬認證-openEuler歐拉作業系統-openGauss資料庫

開篇:寫在前面的話,每一篇摘文都以實際案例場景出發,周末抽空余時間記錄每一次mark歷程,在不一樣的業務實際場景下,針對專案階段所產生的變化,制定不一樣的技術方案,不論多么渺小的技術方案,放在其對應的場景下都有著不一樣的意義,實踐是檢驗真理的唯一標準,當真正實操過后參與討論,或許會讓你有一點新發現,希望對讀者在思考上有點不一樣的IDea,歡迎Join誰與說,熱衷擁抱新知識,旨在技術交流+心得分享->每天譯點曉知識,
資訊:繼鴻蒙之后,基于openEuler作業系統正式推出,鯤鵬計算生態迅速發展起來,鯤鵬920系列服務器CPU,鯤鵬920處理器兼容ARM架構,在性能、吞吐方面都有創新突破,支持國產-計算推向新高度,不僅CPU,作業系統配套歐拉openEuler,麒麟Kylin,鴻蒙就在我們身邊,
下文,小編主要以鯤鵬認證->資料庫openGauss為例->常見問答Q-A的方式闡述:

首先,獲取鯤鵬相關環境資訊,

繼續查閱,FAQ操作手冊,

(注:鯤鵬作業系統及安裝,遠程終端連接可參考上述FAQ手冊,本文不重點闡述,)
接著,通過類似終端Xshell或Xftp工具連接鯤鵬云主機,

創建軟體包檔案夾并授權,
mkdir -p /home/softchmod 755 -R /home/soft
創建當前部署路徑并授權,
mkdir /home/opengausschmod 777 /home/opengauss

查詢當前作業系統資訊,
cat /etc/os-release

查詢當前硬體環境-鯤鵬架構服務器,
lscpu

進入軟體安裝包檔案路徑,下載openGauss安裝包,
cd /home/softwget https://opengauss.obs.cn-south-1.myhuaweicloud.com/1.0.0/arm/openGauss-1.0.0-openEuler-64bit.tar.gz

進入當前部署路徑,解壓openGauss安裝包,
cd /home/opengausstar -zxvf openGauss-1.0.0-openEuler-64bit.tar.gz

輸入命令,yum install輔助安裝包,
yum install -y bzip2 libaio-devel flex bison ncurses-devel glibc-devel patch

(注:初始化openGauss安裝環境+python環境前,可提前查閱,更多請參考openGauss官方摘文,其中performance.sh腳本修改+LD_LIBRARY_PATH環境變數配置也可參考,)

export LD_LIBRARY_PATH=/home/opengauss/script/gspylib/clib:$LD_LIBRARY_PATHhttps://opengauss.org/en/docs/1.0.0/docs/installation/initializing-the-installation-environment.html#initializing-the-installation-environmenta-nameen-us_topic_0249784559a
系統默認python版本,

其中,python版本匹配,可自行根據當前環境參考修改,
vi gspylib/common/CheckPythonVersion.pyif not pythonVersion == (3, 6)更新為if not pythonVersion >= (3, 6)

在script檔案夾下創建clusterconfig.xml檔案,
vi script/clusterconfig.xml
<?xml version=“1.0” encoding=“UTF-8”?>
<ROOT>
<!-- openGauss資訊 -->
<CLUSTER>
<PARAM name=“clusterName” value=“opengauss_cluster” />
<PARAM name=“nodeNames” value=“opengauss_node1” />
<PARAM name=“backIp1s” value=“ip”/>
<PARAM name=“gaussdbAppPath” value="/home/opengauss/install/app" />
<PARAM name=“gaussdbLogPath” value="/var/log/omm" />
<PARAM name=“tmpMppdbPath” value="/home/opengauss/tmp" />
<PARAM name=“gaussdbToolPath” value="/home/opengauss/install/om" />
<PARAM name=“corePath” value="/home/opengauss/corefile" />
<!-- openGauss 型別簇型別,該引數是可選的,single-inst表示一個主節點多個備節點的獨立集群,–>
<PARAM name=“clusterType” value=“single-inst”/>
</CLUSTER>
<DEVICELIST>
<!-- opengauss_node1節點資訊 -->
<DEVICE sn=“1000001”>
<!-- 主機名,–>
<PARAM name=“name” value=“opengauss_node1”/>
<!-- AZ 名稱,該值為字串,不能包含特殊字符,例如AZ1、AZ2、AZ3,–>
<PARAM name=“azName” value=“AZ1”/>
<!-- AZ優先,–>
<PARAM name=“azPriority” value=“1”/>
<!-- 如果服務器只有一個網卡可用,將backIP1和sshIP1配置成同一個IP,后端存盤網路中主機的內網IP地址,所有的 openGauss 主機都在這個網路上相互通信,–>
<PARAM name=“backIp1” value=“ip”/>
<!-- SSH可靠通道的外部IP地址,如果沒有使用外部網路,您可以將其留慷訓將其設定為backIp1的值,–>
<PARAM name=“sshIp1” value=“ip”/><!--dbnode1--> <!-- 當前主機上要部署的資料庫節點數,--> <PARAM name="dataNum" value="1"/> <!-- 資料庫節點的基本埠號,默認值為40000,--> <PARAM name="dataPortBase" value="15400"/> <!-- 當前主機上存盤資料庫節點資料的目錄,它是一個資料存盤目錄,應該在資料盤上,--> <PARAM name="dataNode1" value="/home/opengauss/install/data/db1"/> <!-- 當前集群中同步模式的節點數,該引數是可選的,取值范圍為 0 到備用資料庫節點數,--> <PARAM name="dataNode1_syncNum" value="0"/> </DEVICE> </DEVICELIST>
</ROOT>
接下來,初始化安裝環境,
./gs_preinstall -U omm -G dbgrp -X /home/opengauss/script/clusterconfig.xml


// 驅動-連接地址-賬號-密碼等資訊String driverClassName = “org.postgresql.Driver”;String url = “jdbc:postgresql://ip:8000/postgres”;String username = “yxd179”;String password = “yxd179”;// 加載驅動Class.forName(driverClassName);// 獲取資料庫連接物件Connection con = (Connection) DriverManager.getConnection(url,username,password);// 獲取資料庫操作物件PreparesStatement ps = con.preparesStatement(“SELECT COUNT(*) FROM TEST;”);// 執行sqlResultSet rs= ps.executeQuery();// 這里還可以獲取到資料庫產品名稱DatabaseMetaData metaData = (DatabaseMetaData) con.getMetaData();// 這里為國產資料庫-適配,在xml指定國產資料庫的databaseId奠定基礎System.out.println(“資料庫產品名稱:” + metaData.getDatabaseProductName());最后需關閉連接close,釋放資源->rs-ps-con.

其中,分頁的SQL拼裝原理,
protected BoundSql getPageBoundSql(Object parameterObject) {
String tempSql = sql;
String orderBy = PageHelper.getOrderBy();
if (orderBy != null) {
tempSql = OrderByParser.converToOrderBySql(sql, orderBy);
}
tempSql = localParser.get().getPageSql(tempSql);
return new BoundSql(configuration, tempSql, localParser.get().getPageParameterMapping(configuration, original.getBoundSql(parameterObject)), parameterObject);
}
(注:歡迎童鞋私信留言_,由于時間等原因,闡述不一定俱全,對于國產化這塊,搜索可用資源較少,希望對各位讀者,在適配鯤鵬-麒麟,歐拉作業系統以及國產化資料庫程序中能夠有所幫助,將不斷完善技術手冊-共享,涵蓋Java微服務+Kafka+Reids+Elastic中間件安裝FAQ手冊.)

其中,多資料庫連接工具,可選Tool->DBeaver,

文末:
在國產資料庫適配程序中,引出-思考:
當需要作多資料庫兼容適配的時候,若提前預估需要改動代碼的一個數量級,這時若需要對資料庫層中各個SQL方言撰寫測驗用例,作成功或失敗率評估,那么如何擁有一個Java版本,單元測驗用例-代碼自動生成器,根據類名配置,即可知曉當前類中所有SQL方言的成功或失敗率_
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/387894.html
標籤:其他
