1. Подготовка к строительству
Для разработки OpenGauss требуется использование среды Linux. Сначала загрузите инструмент удаленного подключения Xshell/MobaXterm.
1. Используйте инструменты для подключения к удаленному серверу Linux, удаленно войдите в систему, используя учетную запись root, и создайте личную учетную запись.
useradd -d /home/xxx -m xxx
2. Установите пароль.
passwd xxx
3. Перейдите в личный кабинет и войдите в личный кабинет для будущих подключений.
su - xxx
2. Скомпилируем openGauss-сервер
Для компиляции openGauss-server требуется исходный код openGauss-server и сторонний репозиторий программного обеспечения openGauss- Third_party, от которого он зависит.
Создайте папку со своим собственным именем в качестве рабочего каталога в корневом каталоге /data/, войдите в папку и загрузите последний исходный код openGauss-сервера. Рекомендуется сначала выполнить форк на свой собственный склад gitee, а затем загрузить его. код, чтобы облегчить последующую разработку сообщества, процесс интеграции кода, изменение кода и отправку 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 минут, и журнал будет автоматически выведен. Наконец, будет отображено следующее содержимое, указывающее, что компиляция прошла успешно.
make успешно скомпилировался!
Импортируйте переменные среды для последующей инициализации и запуска базы данных.
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
Версия выпуска:
./configure --gcc-version=7.3.0 CC=g++ CFLAGS='-O2
-g3' --prefix=$GAUSSHOME --3rd=$BINARYLIBS
--enable-cassert --enable-thread-safety
--with-readline --without-zlib
версия мемчека:
./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, — это количество процессоров X2. Если среда компиляции — 4CPU, для компиляции можно использовать параметр make -j8.
Следующее содержимое отображается для обозначения успешной компиляции.
openGauss InstallationGuide complete
3. Компиляция openGauss-OM
openGauss-OM — это модуль управления эксплуатацией и обслуживанием (OperationManager), который предоставляет интерфейсы управления и инструменты для ежедневного обслуживания и управления конфигурацией openGauss.
После компиляции исходного кода в хранилище кода openGauss-сервера gs_om нет. Вам необходимо скомпилировать openGauss-OM отдельно, скопировать скомпилированный пакет openGauss-xxx-om.tar.gz в каталог, где находится установочный пакет openGauss-сервера, а затем установить его согласно корпоративной версии.
Шаги
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 от 8 апреля и объяснение ситуации. Реконструкция запуска удаленного рабочего стола RustDesk. Веб-клиент . Терминальная база данных с открытым исходным кодом WeChat на основе SQLite. WCDB положила начало серьезному обновлению. Апрельский список TIOBE: PHP упал до рекордно низкого уровня, Фабрис Беллард, отец FFmpeg, выпустил инструмент сжатия звука TSAC , Google выпустил большую модель кода CodeGemma , она вас убьет? Это так хорошо, что это инструмент с открытым исходным кодом - инструмент для редактирования изображений и плакатов с открытым исходным кодом.