1. 建設準備
OpenGauss の開発には Linux 環境を使用する必要があります。まず、リモート接続ツール Xshell/MobaXterm をダウンロードします。
1. ツールを使用してリモート Linux サーバーに接続し、root アカウントを使用してリモートでログインし、個人アカウントを作成します。
useradd -d /home/xxx -m xxx
2. パスワードを設定します。
passwd xxx
3. 個人アカウントに切り替えて、今後の接続のために個人アカウントでログインします。
su - xxx
2. openGauss-server をコンパイルします
openGauss-server をコンパイルするには、openGauss-server ソース コードと、それが依存するサードパーティ ソフトウェア リポジトリ openGauss-third_party が必要です。
ルート ディレクトリ /data/ の下に作業ディレクトリとして独自の名前のフォルダを作成し、そのフォルダに入って、openGauss-server の最新のソース コードをプルします。最初に独自の gitee ウェアハウスにフォークしてから、そのソース コードをプルすることをお勧めします。その後のコミュニティ開発を容易にするためのコードを作成し、コードを変更して PR を送信します。
mkdir xxx
cd xxx
git clone https://gitee.com/opengauss/openGauss-server.git
openGauss的编译,需要提前把所依赖的开源第三方软件进行编译和构建。
サードパーティ ソフトウェア ツールを入手する 2 つの方法
1. ソースコードのコンパイル
これらのオープン ソース サードパーティ ソフトウェアはウェアハウス openGauss-third_party に保存されており、ユーザーはコードをプルした後、通常は 1 回だけコンパイルできます。オープンソース ソフトウェアのバージョンが更新された場合は、再ビルドする必要があります。
git clone https://gitee.com/opengauss/openGauss-third_party.git
cd openGauss-third_party/build
sh build_all.sh
2. コンパイルおよびビルドされたファイルを直接使用する
オープンソース ソフトウェアのコンパイルと構築には長い時間がかかるため、コミュニティではユーザーがダウンロードできるように 3 つのプラットフォームでコンパイルされたバイナリ ファイルが提供されています。
● openEuler_arm : https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.0/binarylibs/openGauss-third_party_binarylibs_openEuler_arm.tar.gz
● openEuler_x86 : https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.0/binarylibs/openGauss-third_party_binarylibs_openEuler_x86_64.tar.gz
● Centos_x86 : https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.0/binarylibs/openGauss-third_party_binarylibs_Centos7.6_x86_64.tar.gz
圧縮パッケージの openEuler_arm バージョンをダウンロードし、Xftp ツールを使用してそれを作業ディレクトリに転送し、解凍して、名前を固定名に変更します。
tar -zxvf openGauss-third_party_binarylibs_openEuler_arm.tar.gz
mv openGauss-third_party_binarylibs_openEuler_arm binarylibs
ソース コードの準備ができたら、コードをコンパイルできます。
2 つのコンパイル方法
1. ワンクリックでスクリプトをコンパイルします。
コンパイルには組み込みスクリプトを使用します。
cd openGauss-server
sh build.sh -m release -3rd /data/meicheng/opengauss_src/install/binarylibs
#debug版将release换成debug
5 ~ 10 分間応答がなく実行処理が継続され、最終的に以下の内容が表示され、コンパイルが成功したことがわかります。
コンパイルが成功しました!
その後のデータベースの初期化と起動のために環境変数をインポートします。
export CODE_BASE=_________ #openGauss-server的路径
export GAUSSHOME=$CODE_BASE/mppdb_temp_install/
export LD_LIBRARY_PATH=$GAUSSSHOME/lib:$LD_LIBRARY_PATH
export PATH=$GAUSSHOME/bin:$PATH
2. 手動コンパイル。
cd openGauss-server
設定される環境変数は、ワンクリック スクリプト コンパイルの環境変数とは若干異なります。
export CODE_BASE=_________ #openGauss-server的路径
export BINARYLIBS=_________ #binarylibs的路径
export GAUSSHOME=$CODE_BASE/dest/
export GCC_PATH=$BINARYLIBS/buildtools/gcc7.3/
export CC=$GCC_PATH/gcc/bin/gcc
export CXX=$GCC_PATH/gcc/bin/g++
export LD_LIBRARY_PATH=$GAUSSSHOME/lib:$GCC_PATH/gcc/lib64:$GCC_PATH/isl/lib/:$GCC_PATH/mpc/lib/:$GCC_PATH/mpfr/lib/:$GCC_PATH/gmp/lib/:$LD_LIBRARY_PATH
export PATH=$GAUSSHOME/bin:$GCC_PATH/gcc/bin:$PATH
設定するバージョンを選択してください
3 つのターゲット バージョンから選択可能
release: このバージョンをコンパイルするときに、GCC の高レベルの最適化オプションを構成し、カーネル デバッグ コードを削除するバイナリ プログラムを表します。これは通常、実稼働環境またはパフォーマンス テスト環境で使用されます。
debug: デバッグ バージョンを生成するバイナリ プログラムを表します。このバージョンがコンパイルされると、カーネル コードのデバッグ機能が追加され、通常はセルフテスト環境の開発に使用されます。
memcheck: memcheck バージョンを生成するバイナリ プログラムを表します。このバージョンがコンパイルされると、通常、このバージョンはメモリの問題を特定するために使用されます。
デバッグバージョン:
./configure --gcc-version=7.3.0 CC=g++ CFLAGS='-O0'
--prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-debug
--enable-cassert --enable-thread-safety
--with-readline --without-zlib
release版:
./configure --gcc-version=7.3.0 CC=g++ CFLAGS='-O2
-g3' --prefix=$GAUSSHOME --3rd=$BINARYLIBS
--enable-cassert --enable-thread-safety
--with-readline --without-zlib
memcheck バージョン:
./configure --gcc-version=7.3.0 CC=g++ CFLAGS='-O0'
--prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-debug
--enable-cassert --enable-thread-safety --with-readline
--without-zlib --enable-memory-check
コンパイルを開始する
make -sj4
make install -sj4
-s はサイレント モードを示し、一部のコンパイル情報は出力されません。
-j パラメータを使用すると、make は実行中に同時実行数を増やし続け、場合によっては「メモリを割り当てられません」エラーが発生することがあります。通常、-j パラメータの後に指定できる数は、CPU の数 X2 です。コンパイル環境が 4CPU の場合は、make -j8 パラメーターを使用してコンパイルできます。
コンパイルが成功したことを示す次の内容が表示されます。
openGauss InstallationGuide complete
3. openGauss-OM のコンパイル
openGauss-OM は、openGauss の日常のメンテナンスと構成管理のための管理インターフェイスとツールを提供する運用保守管理モジュール (OperationManager) です。
ソース コードが openGauss-server コード ウェアハウスでコンパイルされた後は、gs_om は存在しません。 openGauss-OM を個別にコンパイルし、コンパイルされた openGauss-xxx-om.tar.gz パッケージを openGauss-server インストール パッケージが配置されているディレクトリにコピーして、エンタープライズ バージョンに従ってインストールする必要があります。
ステップ
1. コード リポジトリをダウンロードします。
git clone https://gitee.com/opengauss/openGauss-OM.git
2. コンパイルを実行します。
ocd openGauss-OM
chmod +x build.sh
export BINARYLIBS=/data/XXX/binarylibs #这里写你的第三方软件包的文件目录
./build.sh -3rd $BINARYLIBS
次の内容が表示され、gauss-OM が正常にコンパイルされたことが示されます。
ROOT_DIR:XXXXX
Everything is ready.
success!
パッケージ ディレクトリを入力し、コンパイルされた openGauss-xxx-om.tar.gz パッケージを openGauss-server インストール パッケージが配置されているディレクトリにコピーし、エンタープライズ バージョンに従ってインストールします。
4. 製品インストールパッケージをコンパイルします。
このステップでは、openGauss ソフトウェア インストール パッケージを作成します。インストール パッケージのコンパイルとパッケージ化のプロセスも build.sh に統合されます。
ステップ
1. openGauss-server ディレクトリに入ります。
2. コマンドを実行してインストールパッケージをコンパイルします。
osh build.sh -m [debug | release | memcheck] -3rd [binarylibs path] -pkg
3. インストールパッケージがコンパイルされたことを示す次の内容が表示されます。
make server(all) package success!
4. パッケージ化されたインストール パッケージは ./output ディレクトリに保存されます。
5. コンパイル後の検証
コンパイル後、コンパイルされた openGauss は次のように検証できます。
1. データ ディレクトリとログ ディレクトリを作成します。
mkdir ~/data
mkdir ~/log
2. データベースの初期化。
gs_initdb -D ~/data --nodename=db1
3. データベースサーバーを起動します。
gs_ctl start -D ~/data -Z single_node -l ~/log/opengauss.log
4. データベースサーバーを入力します。
データベースのインストールが完了すると、デフォルトで postgres という名前のデータベースが生成され、テストのためにこのデータベースに接続できます。
gsql -d postgres
接続が成功すると、次のような情報が表示されます。
gsql(一些版本时间信息)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help
openGauss=#
5. openGauss を使用します。
5.1 データベースユーザーを作成します。
CREATE USER XXX WITH PASSWORD "xxxxxxx";
5.2 ユーザーをシステム管理者として設定します。
GRANT ALL PRIVILEGES TO xxx;
5.3 データベースを作成します。
CREATE DATABASE db_tpcc OWNER XXX;
5.4 db_tpcc データベースの作成後、次のように postgres データベースを終了し、新しいユーザーを使用して db_tpcc データベースに接続し、テーブルの作成やその他の操作を実行できます。
\q #退出当前数据库
gsql -d db_tpcc -U XXX #连接数据库db_tpcc
5.5 スキーマを作成します。
CREATE SCHEMA test AUTHORIZATION XXX;
5.6 テーブルを作成します。
CREATE TABLE mytable (name varchar(16), age int);
5.7 テーブルにデータを挿入します。
INSERT INTO mytable values("XXX", 18);
5.8 テーブル内のデータを表示します。
SELECT * FROM mytable;
6. まとめ
openGauss は、Mulan Permissive License v2 に基づいてリリースされたオープン ソースのリレーショナル データベース管理システムです。 openGaussコアは、データベース分野におけるファーウェイの長年の経験とエンタープライズレベルのシナリオのニーズを深く統合し、競争力のある機能を継続的に構築します。
今日の共有はこれで終わりです。コミュニケーションを歓迎します~
仲間のニワトリがDeepin-IDE を 「オープンソース」化し、ついにブートストラップを達成しました。 いい奴だ、Tencent は本当に Switch を「考える学習機械」に変えた Tencent Cloud の 4 月 8 日の障害レビューと状況説明 RustDesk リモート デスクトップ起動の再構築 Web クライアント WeChat の SQLite ベースのオープンソース ターミナル データベース WCDB がメジャー アップグレードを開始 TIOBE 4 月リスト: PHPは史上最低値に落ち、 FFmpeg の父であるファブリス ベラールはオーディオ圧縮ツール TSAC をリリースし 、Google は大規模なコード モデル CodeGemma をリリースしました 。それはあなたを殺すつもりですか?オープンソースなのでとても優れています - オープンソースの画像およびポスター編集ツール