1. 공사 준비
OpenGauss 개발에는 Linux 환경을 사용해야 합니다. 먼저 원격 연결 도구인 Xshell/MobaXterm을 다운로드하세요.
1. 도구를 사용하여 원격 Linux 서버에 연결하고 루트 계정을 사용하여 원격으로 로그인한 후 개인 계정을 만듭니다.
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 Warehouse로 포크한 다음 가져오는 것이 좋습니다. 후속 커뮤니티 개발을 용이하게 하기 위한 코드입니다. 코드 통합 프로세스, 코드 수정 및 PR 제출.
mkdir xxx
cd xxx
git clone https://gitee.com/opengauss/openGauss-server.git
openGauss的编译,需要提前把所依赖的开源第三方软件进行编译和构建。
타사 소프트웨어 도구를 얻는 두 가지 방법
1. 소스코드 컴파일
이러한 오픈 소스 타사 소프트웨어는 openGauss-third_party 창고에 저장됩니다. 사용자는 코드를 가져온 후 일반적으로 한 번만 코드를 컴파일할 수 있습니다. 오픈 소스 소프트웨어 버전이 업데이트되면 다시 빌드해야 합니다.
git clone https://gitee.com/opengauss/openGauss-third_party.git
cd openGauss-third_party/build
sh build_all.sh
2. 컴파일 및 빌드된 파일을 직접 사용
오픈 소스 소프트웨어를 컴파일하고 구성하는 데 시간이 오래 걸리기 때문에 커뮤니티에서는 사용자가 다운로드할 수 있도록 세 가지 플랫폼으로 컴파일된 바이너리 파일을 제공합니다.
● 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
소스 코드가 준비되면 코드를 컴파일할 수 있습니다.
두 가지 컴파일 방법
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-서버
구성된 환경 변수는 원클릭 스크립트 컴파일과 약간 다릅니다.
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
구성할 버전 선택
선택할 수 있는 세 가지 대상 버전
release: 릴리스 버전을 생성하는 바이너리 프로그램을 나타냅니다. 이 버전을 컴파일할 때 GCC 고급 최적화 옵션을 구성하고 커널 디버깅 코드를 제거합니다. 일반적으로 프로덕션 환경이나 성능 테스트 환경에서 사용됩니다.
debug: 디버그 버전을 생성하는 바이너리 프로그램을 나타내며, 이 버전이 컴파일되면 커널 코드 디버깅 기능이 추가되며 일반적으로 자체 테스트 환경을 개발하는 데 사용됩니다.
memcheck: memcheck 버전을 생성하는 바이너리 프로그램을 나타냅니다. 이 버전이 컴파일되면 기본적으로 디버그 버전을 기반으로 하는 ASAN 기능이 추가됩니다. 이 버전은 일반적으로 메모리 문제를 찾는 데 사용됩니다.
디버그 버전:
./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는 실행 시 동시성 수를 계속 증가시키며 때로는 'cannot allicate memory' 오류가 발생합니다. 일반적으로 -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 코어는 데이터베이스 분야에서 Huawei가 수년간 쌓아온 경험과 기업 수준 시나리오의 요구 사항을 깊이 통합하여 경쟁력 있는 기능을 지속적으로 구축합니다.
오늘의 나눔은 여기까지입니다. 소통 환영합니다~
동료 치킨 "오픈 소스" deepin-IDE 및 마침내 부트스트랩을 달성했습니다! 좋은 친구, Tencent는 Switch를 "생각하는 학습 기계"로 전환했습니다. Tencent Cloud의 4월 8일 실패 검토 및 상황 설명 RustDesk 원격 데스크톱 시작 재구성 웹 클라이언트 WeChat의 SQLite 기반 오픈 소스 터미널 데이터베이스 WCDB의 주요 업그레이드 TIOBE 4월 목록: PHP 사상 최저치로 떨어졌고 FFmpeg의 아버지인 Fabrice Bellard는 오디오 압축 도구인 TSAC를 출시했으며 Google은 대규모 코드 모델인 CodeGemma를 출시했습니다 . 오픈소스라서 너무 좋아요 - 오픈소스 사진 및 포스터 편집기 도구