English | Упрощенный китайский
openGauss — это открытая система управления реляционными базами данных, обладающая такими корпоративными характеристиками, как высокая производительность на многоядерных процессорах, полная безопасность цепочки поставок и интеллектуальное управление.
openGauss воплощает многолетний опыт Huawei в области ядра баз данных, адаптированного и оптимизированного для архитектуры, транзакций, хранилища, оптимизатора и ARM. Как открытая база данных, она стремится к совместной разработке разнообразного технического сообщества открытых баз данных.
Высокая производительность
openGauss преодолел ограничения многоядерных CPU, достигнув 1,5 миллиона tpmC на двухканальном Kunpeng с 128 ядрами, а движок MOT (Memory Optimized Table) достиг 3,5 миллиона tpmC.
Разделение данных
Ключевые структуры данных, общие для внутренних потоков, разделены на данные, что снижает конфликты при доступе к блокировкам. Например, CLOG использует разделение для решения проблемы блокировки ClogControlLock.
NUMA-оптимизированные структуры данных ядра
Ключевые структуры данных распределяются по NUMA, что снижает межпроцессорные обращения. Например, глобальный массив PGPROC делится на части в соответствии с числом NUMA Node, каждая часть выделяется памятью на соответствующем NUMA Node. Это решает проблему блокировки ProcArrayLock.
Оптимизация привязки к ядрам
Сетевые прерывания и фоновые рабочие потоки привязываются к разным ядрам, что предотвращает миграцию рабочих потоков между ядрами и обеспечивает стабильную производительность.
Оптимизация команд ARM
Используется атомарные операции lse для оптимизации ARM платформы, что позволяет эффективно выполнять атомарные операции с ключевыми взаимоисключающими переменными.
SQL BY PASS
Оптимизация SQL BY PASS упрощает процесс выполнения SQL, снижая нагрузку на CPU.
Высокая надежность
При нормальной нагрузке RTO меньше 10 секунд, что снижает время недоступности бизнеса при отказе узла.
Параллельное восстановление
Журналы передаются от основного сервера на резервный, где они записываются на диск и одновременно отправляются потокам восстановления. Эти потоки распределяют журналы по типам и страницам данных, отправляя их нескольким параллельным потокам восстановления. Это обеспечивает скорость восстановления резервного сервера, соответствующую скорости генерации журналов основного сервера, что позволяет резервному серверу всегда оставаться в готовом состоянии и обеспечивает мгновенное переключение при отказе.
MOT движок (бета версия)
Движок MOT (Memory Optimized Table) — это движок хранения, оптимизированный для многоядерных систем с большим объемом памяти. Он обладает высокой производительностью OLTP (On-Line Transaction Processing) и эффективным использованием ресурсов. Данные и индексы MOT полностью хранятся в памяти, что обеспечивает низкую задержку доступа к данным и эффективное выполнение транзакций благодаря NUMA-осведомленному выполнению, алгоритмам устранения конфликтов захвата и JIT локальной компиляции запросов. Подробнее см. в документации MOT движка.
Безопасность
openGauss поддерживает управление учетными записями, аутентификацию учетных записей, проверку сложности паролей, блокировку учетных записей, управление и проверку прав доступа, шифрование передачи данных и аудит операций для обеспечения комплексной безопасности базы данных, удовлетворяющей требованиям безопасности бизнеса.
Легкость управления
openGauss интегрирует алгоритмы ИИ в базу данных, что снижает нагрузку на ее обслуживание.
openGauss использует исторические данные производительности для кодирования и обучения на основе глубокого обучения, а также для предсказания времени выполнения SQL.
openGauss поддерживает диагностикатор SQL для выявления медленных запросов заранее.
openGauss автоматически настраивает параметры базы данных с помощью методов машинного обучения, повышая эффективность настройки и снижая стоимость правильной настройки параметров.
Перед установкой openGauss необходимо создать файл clusterconfig.xml. XML файл содержит информацию о серверах для развертывания openGauss, пути установки, IP адреса и порты. Этот файл используется для указания openGauss, как следует развернуть систему. Пользователи должны создавать соответствующий XML файл в зависимости от конкретной конфигурации.
Пример создания XML конфигурационного файла для схемы с одним основным и одним резервным сервером. Приведенные значения являются примерами и могут быть заменены. Каждая строка содержит комментарий для объяснения.
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- Общая информация о openGauss -->
<CLUSTER>
<!-- Имя базы данных -->
<PARAM name="clusterName" value="dbCluster" />
<!-- Имена узлов базы данных (hostname) -->
<PARAM name="nodeNames" value="node1,node2" />
<!-- IP адреса узлов, соответствующие nodeNames -->
<PARAM name="backIp1s" value="192.168.0.11,192.168.0.12"/>
<!-- Путь установки базы данных -->
<PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" />
<!-- Путь к логам -->
<PARAM name="gaussdbLogPath" value="/var/log/omm" />
<!-- Путь к временным файлам -->
<PARAM name="tmpMppdbPath" value="/opt/huawei/tmp"/>
<!-- Путь к инструментам базы данных -->
<PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" />
<!-- Путь к core файлам -->
<PARAM name="corePath" value="/opt/huawei/corefile"/>
<!-- Тип openGauss, здесь пример — одиночный узел с одним основным и несколькими резервными узлами -->
<PARAM name="clusterType" value="single-inst"/>
</CLUSTER>
<!-- Информация о развертывании узлов на каждом сервере -->
<DEVICELIST>
<!-- Информация о развертывании узлов на node1 -->
<DEVICE sn="1000001">
<!-- Имя хоста node1 -->
<PARAM name="name" value="node1"/>
<!-- Имя AZ и приоритет AZ для node1 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- Если на сервере доступен только один сетевой интерфейс, backIP1 и sshIP1 должны быть настроены на один и тот же IP -->
<PARAM name="backIp1" value="192.168.0.11"/>
<PARAM name="sshIp1" value="192.168.0.11"/>
<!--dbnode-->
<PARAM name="dataNum" value="1"/>
<!--Порт DBnode-->
<PARAM name="dataPortBase" value="26000"/>
<!--Директории данных DBnode на основном узле и резервном узле-->
<PARAM name="dataNode1" value="/opt/huawei/install/data/db1,node2,/opt/huawei/install/data/db1"/>
<!--Количество узлов синхронизации на DBnode-->
<PARAM name="dataNode1_syncNum" value="0"/>
</DEVICE>
<!-- Информация о развертывании узлов на node2, где значение "name" должно быть установлено как имя хоста (hostname) -->
<DEVICE sn="1000002">
<PARAM name="name" value="node2"/>
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- Если на сервере доступен только один сетевой интерфейс, backIP1 и sshIP1 должны быть настроены на один и тот же IP -->
<PARAM name="backIp1" value="192.168.0.12"/>
<PARAM name="sshIp1" value="192.168.0.12"/>
</DEVICE>
</DEVICELIST>
</ROOT>
После создания конфигурационного файла openGauss перед выполнением установки необходимо запустить предустановочный скрипт gs_preinstall для подготовки пользователя и среды установки с минимальными правами доступа, чтобы обеспечить безопасность системы.
Предустановочный скрипт gs_preinstall помогает автоматически выполнить следующие задачи по подготовке среды установки:
Важные замечания
Процедура
Войдите в систему как пользователь root на любой хост для установки openGauss и создайте директорию для хранения пакетов установки по плану.
mkdir -p /opt/software/openGauss chmod 755 -R /opt/software
> **Примечание**
>
> - Не рекомендуется планировать директорию для хранения пакетов установки в домашней директории пользователя openGauss или ее поддиректориях, так как это может привести к проблемам с правами доступа.
> - Пользователь openGauss должен иметь права чтения и записи в директории /opt/software/openGauss.
2. Загрузите пакет установки "openGauss-x.x.x-openEULER-64bit.tar.gz" и конфигурационный файл "clusterconfig.xml" в созданную директорию.
3. В директории с пакетом установки распакуйте пакет openGauss-x.x.x-openEULER-64bit.tar.gz. После распаковки в директории /opt/software/openGauss автоматически создастся директория script. В этой директории будут созданы скрипты OM инструментов, такие как gs_preinstall.
cd /opt/software/openGauss tar -zxvf openGauss-x.x.x-openEULER-64bit.tar.gz
4. Перейдите в директорию со скриптами инструментов.
cd /opt/software/openGauss/script
5. Если используется операционная система openEuler, выполните следующую команду для открытия файла performance.sh и закомментируйте строку `sysctl -w vm.min_free_kbytes=112640 &> /dev/null`, нажмите клавишу "ESC", перейдите в командный режим и выполните `:wq` для сохранения и выхода из редактора.
vi /etc/profile.d/performance.sh
6. Для обеспечения правильной версии openssl перед выполнением предустановки загрузите библиотеки из пакета установки. Выполните следующую команду, где `{packagePath}` — это путь к директории с пакетом установки (в данном примере /opt/software/openGauss).
export LD_LIBRARY_PATH={packagePath}/script/gspylib/clib:$LD_LIBRARY_PATH
7. Для успешной установки проверьте соответствие hostname файла /etc/hostname. В процессе предустановки будет выполняться проверка hostname.
8. Используйте gs_preinstall для подготовки среды установки. Если используется общая среда, добавьте параметр `--sep-env-file=ENVFILE` для разделения переменных окружения, чтобы избежать взаимного влияния пользователей. Путь к файлу ENVFILE задается пользователем.
Выполните следующую команду для интерактивного выполнения предустановки и автоматического создания доверия между пользователями root и omm:
./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/clusterconfig.xml
omm — это пользователь базы данных (пользователь операционной системы для выполнения openGauss), dbgrp — это имя группы пользователей операционной системы для выполнения openGauss, /opt/software/ openGauss/clusterconfig.xml — это путь к конфигурационному файлу openGauss. В процессе выполнения необходимо выбрать создание доверия и ввести пароль пользователя root или omm.
### Выполнение установки
После подготовки среды установки с помощью предустановочного скрипта можно приступать к процессу установки openGauss.
**Предварительные условия**
- Успешно выполнен предустановочный скрипт gs_preinstall.
- Все серверы работают под управлением операционной системы и сети.
- Пользователь должен убедиться, что локали на всех хостах совпадают.
**Процедура**
1. (Необязательно) Проверьте наличие пакета установки и конфигурационного файла openGauss в запланированной директории. Если их нет, повторно выполните предустановку, чтобы убедиться в успешном завершении предустановки, прежде чем продолжать следующие шаги.
2. Войдите на хост с openGauss и переключитесь на пользователя omm.
su - omm
> **Примечание**
>
> - omm — это пользователь, указанный в параметре `-U` скрипта gs_preinstall.
> - Выполняйте скрипт gs_install от имени пользователя omm. В противном случае возникнет ошибка выполнения.
3. Используйте gs_install для установки openGauss. Если используется режим разделения переменных окружения для кластера, необходимо загрузить файл ENVFILE с разделенными переменными окружения.
gs_install -X /opt/software/openGauss/clusterconfig.xml
/opt/software/openGauss/script/clusterconfig.xml — это путь к конфигурационному файлу openGauss. В процессе выполнения пользователю потребуется ввести пароль базы данных по запросу. Пароль должен быть достаточно сложным для обеспечения нормального использования базы данных пользователем.
Требования к сложности пароля:
- Длина не менее 8 символов.
- Не должно совпадать с именем пользователя, текущим паролем (ALTER) или обратным порядком текущего пароля.
- Должен содержать не менее трех из следующих категорий: заглавные буквы (A-Z), строчные буквы (a-z), цифры (0-9), другие символы (только ~!@#$%^&*()-_=+\|[{}];:,<.>/?).
4. После успешной установки необходимо вручную удалить доверие между пользователями root на всех узлах базы данных openGauss, то есть удалить файлы доверия.
rm -rf ~/.ssh
### Удаление openGauss
Процесс удаления openGauss включает удаление самой базы данных и очистку среды серверов openGauss.
#### **Выполнение удаления**
openGauss предоставляет скрипт для удаления базы данных, который помогает пользователям удалить openGauss.
**Процедура**
1. Войдите в систему как пользователь omm на главный узел базы данных.
2. Используйте gs_uninstall для удаления openGauss.
gs_uninstall --delete-data
Или выполните локальное удаление на каждом узле openGauss.
gs_uninstall --delete-data -L
#### **Однократная очистка среды**
После успешного удаления openGauss можно использовать скрипт gs_postuninstall для очистки информации о среде на серверах openGauss, если не требуется повторное развертывание openGauss в этой среде. Очистка среды openGauss является очисткой настроек, выполненных скриптом подготовки среды gs_preinstall.
**Предварительные условия**
- Успешно выполнено удаление openGauss.
- Доверие между пользователями root доступно.
- Скрипт gs_postuninstall можно выполнять только от имени пользователя root.
**Процедура**
1. Войдите в систему как пользователь root на сервере openGauss.
2. Проверьте успешное создание доверия между хостами, выполнив команду `ssh hostname`. Введите `exit` для выхода.
plat1:~ # ssh plat2 Last login: Tue Jan 5 10:28:18 2016 from plat1 plat2:~ # exit logout Connection to plat2 closed. plat1:~ #
3. Перейдите в директорию script.
cd /opt/software/openGauss/script
4. Используйте gs_postuninstall для очистки среды. Если используется режим разделения переменных окружения для кластера, необходимо загрузить файл ENVFILE с разделенными переменными окружения.
./gs_postuninstall -U omm -X /opt/software/openGauss/clusterconfig.xml --delete-user --delete-group
Или выполните локальную очистку после удаления на каждом узле openGauss.
./gs_postuninstall -U omm -X /opt/software/openGauss/clusterconfig.xml --delete-user --delete-group -L
omm — это имя пользователя операционной системы для выполнения openGauss, /opt/software/openGauss/clusterconfig.xml — это путь к конфигурационному файлу openGauss.
Если используется режим разделения переменных окружения для кластера, удалите параметр env `unset MPPDB_ENV_SEPARATE_PATH`.
5. Удалите доверие между пользователями root на всех узлах базы данных openGauss.
## Компиляция
### Обзор
Для компиляции openGauss требуются два компонента: openGauss-server и binarylibs.
- openGauss-server: основной код openGauss. Его можно получить из открытого сообщества.
- binarylibs: сторонние открытые библиотеки, необходимые для openGauss. Вы можете скомпилировать их самостоятельно из исходного кода openGauss-third_party или скачать уже скомпилированный вариант из открытого сообщества.
Для компиляции базы данных, сторонних библиотек и GCC, а также решения распространенных проблем см. блог [Руководство по компиляции базы данных openGauss](https://opengauss.org/zh/blogs/blogs.html?post/xingchen/opengauss_compile/)
Перед компиляцией openGauss проверьте требования к операционной системе и программному обеспечению.openGauss можно скомпилировать с помощью одношагового shell инструмента build.sh или командами напрямую. Установочный пакет генерируется build.sh.
### Требования к операционной системе и программному обеспечению
openGauss поддерживает следующие операционные системы:
- CentOS 7.6 (x86 архитектура)
- openEuler-20.03-LTS (aarch64 архитектура)
- openEuler-20.03-LTS (x86_64 архитектура)
- openEuler-22.03-LTS (aarch64 архитектура)
- openEuler-22.03-LTS (x86_64 архитектура)
- openEuler-24.03-LTS (aarch64 архитектура)
- openEuler-24.03-LTS (x86_64 архитектура)
Для адаптации других систем см. блог [Руководство по компиляции базы данных openGauss](https://opengauss.org/zh/blogs/blogs.html?post/xingchen/opengauss_compile/)
В следующей таблице перечислены требования к программному обеспечению для компиляции openGauss.
Рекомендуется использовать стандартные пакеты зависимостей программного обеспечения из дистрибутивов или источников установки перечисленных операционных систем. Если указанные ниже пакеты отсутствуют, см. рекомендуемые версии программного обеспечения.
Требования к программному обеспечению:
| Программное обеспечение | Рекомендуемая версия |
| ------------- | --------------- |
| libaio-devel | 0.3.109-13 |
| flex | 2.5.31及以上版本 |
| bison | 2.7-4 |
| ncurses-devel | 5.9-13.20130511 |
| glibc-devel | 2.17-111 |
| patch | 2.7.1-10 |
| lsb_release | 4.1 |
| readline-devel | 7.0-13 |
### Загрузка openGauss
Скачайте openGauss-server и openGauss-third_party с открытого сообщества.
https://opengauss.org/zh/
Скомпилированные binarylibs можно скачать по следующим ссылкам. После загрузки распакуйте архив и переименуйте его в **binarylibs**.
Ссылки на скомпилированные бинарные файлы сторонних библиотек для различных версий и веток:
<table>
<tr>
<td>Ветка</td>
<td>Тег</td>
<td>Версия gcc</td>
<td>Ссылка на скачивание</td>
</tr>
<tr>
<td rowspan=2>1.0.0</td>
<td>v1.0.0</td>
<td rowspan=2>gcc7.3</td>
<td rowspan=2><a href="https://opengauss.obs.cn-south-1.myhuaweicloud.com/1.0.0/openGauss-third_party_binarylibs.tar.gz">https://opengauss.obs.cn-south-1.myhuaweicloud.com/1.0.0/openGauss-third_party_binarylibs.tar.gz</a></td>
<tr><td>v1.0.1</td></tr>
</tr>
<tr>
<td rowspan=1>1.1.0</td>
<td>v1.1.0</td>
<td>gcc7.3</td>
<td rowspan=1><a href="https://opengauss.obs.cn-south-1.myhuaweicloud.com/1.1.0/openGauss-third_party_binarylibs.tar.gz">https://opengauss.obs.cn-south-1.myhuaweicloud.com/1.1.0/openGauss-third_party_binarylibs.tar.gz</a></td>
</tr>
<tr>
<td rowspan=6>2.0.0</td>
<td>v2.0.0</td>
<td rowspan=6>gcc7.3</td>
<td rowspan=6><a href="https://opengauss.obs.cn-south-1.myhuaweicloud.com/2.0.0/openGauss-third_party_binarylibs.tar.gz">https://opengauss.obs.cn-south-1.myhuaweicloud.com/2.0.0/openGauss-third_party_binarylibs.tar.gz</a></td>
<tr><td>v2.0.1</td></tr>
<tr><td>v2.0.2</td></tr>
<tr><td>v2.0.3</td></tr>
<tr><td>v2.0.4</td></tr>
<tr><td>v2.0.5</td></tr>
</tr>
<tr>
<td rowspan=1>2.1.0</td>
<td>v2.1.0</td>
<td>gcc7.3</td>
<td rowspan=1><a href="https://opengauss.obs.cn-south-1.myhuaweicloud.com/2.1.0/openGauss-third_party_binarylibs.tar.gz">https://opengauss.obs.cn-south-1.myhuaweicloud.com/2.1.0/openGauss-third_party_binarylibs.tar.gz</a></td>
</tr>
<tr>
<td rowspan=4>3.0.0</td>
<td>v3.0.0</td>
<td rowspan=4>gcc7.3</td>
<td rowspan=3><a href="https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.0.0/openGauss-third_party_binarylibs.tar.gz">https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.0.0/openGauss-third_party_binarylibs.tar.gz</a></td>
<tr><td>v3.0.1</td></tr>
<tr><td>v3.0.2</td></tr>
<tr><td>v3.0.3</td>
<td rowspan=1>
<strong>openEuler_arm:</strong> <a href="https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.0.0/binarylibs/openGauss-third_party_binarylibs_openEuler_arm-3.0.3.tar.gz">https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.0.0/binarylibs/openGauss-third_party_binarylibs_openEuler_arm-3.0.3.tar.gz</a> <br/>
<strong>openEuler_x86:</strong> <a href="https://opengauss.obs.cn-south-1.myhuaweicloud.com/3。Заметка: для версий 6.0.0 и выше используйте библиотеки сторонних разработчиков, скомпилированные с помощью gcc10.3.
Теперь у нас есть полный код openGauss, который хранится в следующих каталогах (в качестве примера используется sda).
- /sda/openGauss-server
- /sda/binarylibs
- /sda/openGauss-third_party
### Компиляция стороннего ПО
Перед компиляцией openGauss необходимо скомпилировать открытые и сторонние библиотеки, на которые он зависит. Эти открытые и сторонние библиотеки хранятся в репозитории openGauss-third_party и обычно требуется их компиляция только один раз. Если открытые библиотеки были обновлены, необходимо перекомпилировать ПО.
Пользователи также могут получить готовые файлы компиляции и сборки открытого ПО из репозитория **binarylibs**.
Если вы хотите скомпилировать стороннее ПО самостоятельно, ознакомьтесь с подробностями в репозитории openGauss-third_party.
После выполнения вышеуказанных скриптов конечные результаты компиляции и сборки сохраняются в каталоге **binarylibs**, который находится на том же уровне, что и **openGauss-third_party**. Эти файлы будут использоваться при компиляции **openGauss-server**.
### Компиляция кода
##### Использование build.sh для компиляции кода
build.sh в openGauss-server является важным скриптом для компиляции. Этот инструмент объединяет функции установки и компиляции ПО, а также создания установочных пакетов, что позволяет быстро компилировать и упаковывать код.
Параметры описаны в следующей таблице.
| Опция | Значение по умолчанию | Параметр | Описание |
| :---- | :--------------------------- | :------------------------------------- | :------------------------------------------------ |
| -h | Не используйте этот параметр. | - | Меню помощи. |
| -m | release | [debug | release | memcheck] | Выбор целевой версии. |
| -3rd | ${Code directory}/binarylibs | [binarylibs path] | Указание пути к binarylibs. Этот путь должен быть абсолютным. |
| --cmake | - | - | Использование cmake для компиляции. |
| -pkg | Не используйте этот параметр. | - | Сжатие результатов компиляции в установочный пакет. |
| -nopt | Не используйте этот параметр. | - | Если использовать эту функцию, оптимизация не будет применяться к соответствующим CPU платформе Kunpeng. |
> **Примечание**
>
> - **-m [debug | release | memcheck]** указывает три доступные целевые версии:
> - **release**: создает бинарные файлы release версии. При компиляции этой версии используются настройки GCC для высокой оптимизации, а отладочный код ядра удаляется. Эта опция обычно используется в рабочей среде или для тестирования производительности.
> - **debug**: создает бинарные файлы debug версии. При компиляции этой версии добавляются функции отладки ядра, что обычно используется в среде разработки.
> - **memcheck**: создает бинарные файлы memcheck версии. При компиляции этой версии добавляется функционал ASAN на основе debug версии для обнаружения проблем с памятью.
> - **-3rd [binarylibs path]** — это путь к **binarylibs**. По умолчанию предполагается, что **binarylibs** находится в текущем каталоге с кодом, поэтому если **binarylibs** перемещен в **openGauss-server** или создан символическая ссылка на него в **openGauss-server**, этот параметр не требуется. Однако учтите, что в этом случае файл легко может быть удален командой `git clean`.
> - В этом скрипте каждый параметр имеет значение по умолчанию. Количество параметров мало, зависимости просты, поэтому скрипт легко использовать. Если фактические значения параметров отличаются от значений по умолчанию, настройте их в соответствии с вашими потребностями.
Теперь, когда вы знаете, как использовать build.sh, вы можете скомпилировать openGauss-server с помощью следующей команды:
[user@linux openGauss-server]$ sh build.sh -m [debug | release | memcheck] -3rd [binarylibs path]
Примеры:
[user@linux openGauss-server]$ sh build.sh # Компиляция и установка release версии openGauss. Требуется наличие binarylibs или символической ссылки на него в каталоге с кодом, иначе компиляция завершится ошибкой. [user@linux openGauss-server]$ sh build.sh -m debug -3rd /sda/binarylibs # Компиляция и установка debug версии openGauss [user@linux openGauss-server]$ sh build.sh -m debug -3rd /sda/binarylibs --cmake # Компиляция кода с помощью cmake, если не указан параметр --cmake, используется make по умолчанию
Путь установки скомпилированного ПО: **/sda/openGauss-server/dest**
Путь к скомпилированным бинарным файлам: **/sda/openGauss-server/dest/bin**
Лог компиляции: **make_compile.log**
##### Использование команд для компиляции кода
Для компиляции кода можно использовать два способа: make и cmake. Выберите один из них.
**Способ с использованием make:**
1. Получение соответствующих бинарных файлов сторонних библиотек:
С версий 3.1.0 и тега 3.0.3 для различных сред предоставляются различные бинарные файлы сторонних библиотек. В настоящее время сообщество предоставляет бинарные файлы для платформ Centos_x86_64, openEuler_aarch64 и openEuler_x86_64.
Вы можете скачать их по соответствующим ссылкам [Скачать openGauss](#Скачать_openGauss)
2. Настройка переменных окружения
export CODE_BASE=________ # Путь к openGauss-server export BINARYLIBS=________ # Путь к binarylibs export GAUSSHOME=$CODE_BASE/dest/ export GCC_PATH=$BINARYLIBS/buildtools/________ # Версия gcc, указывается в соответствии с версией gcc в пакете сторонних библиотек, обычно это gcc7.3 или gcc10.3 export CC=$GCC_PATH/gcc/bin/gcc export CXX=$GCC_PATH/gcc/bin/g++ export LD_LIBRARY_PATH=$GAUSSHOME/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. Выбор версии для настройки.
**Версия debug**:
./configure --gcc-version=10.3.1 CC=g++ CFLAGS='-O0' --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-debug --enable-cassert --enable-thread-safety --with-readline --without-zlib
./configure --gcc-version=10.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=10.3.1 CC=g++ CFLAGS="-O2 -g3" --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-thread-safety --with-readline --without-zlib
./configure --gcc-version=10.3.0 CC=g++ CFLAGS="-O2 -g3" --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-thread-safety --with-readline --without-zlib
**Версия memcheck**:
./configure --gcc-version=10.3.1 CC=g++ CFLAGS='-O0' --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-debug --enable-cassert --enable-thread-safety --with-readline --without-zlib --enable-memory-check
./configure --gcc-version=10.3.0 CC=g++ CFLAGS='-O0' --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-debug --enable-cassert --enable-thread-safety --with-readline --without-zlib --enable-memory-check
> **Примечание**
>
> - **[debug | release | memcheck]** указывает три доступные целевые версии.
> - На платформе **ARM** необходимо добавить **-D__USE_NUMA** в **CFLAGS**.
> - На платформах **ARMv8.1** и выше (например, Kunpeng 920) необходимо добавить **-D__ARM_LSE** в **CFLAGS**.
> - Если **binarylibs** перемещен в **openGauss-server** или создан символическая ссылка на него в **openGauss-server**, параметр **--3rd** не требуется. Однако учтите, что в этом случае файл легко может быть удален командой `git clean`.
4. Выполните следующие команды для компиляции openGauss:
[user@linux openGauss-server]$ make -sj [user@linux openGauss-server]$ make install -sj
5. Если отображается следующее сообщение, это означает успешную компиляцию и установку.
openGauss installation complete.
- Путь установки скомпилированного ПО: **$GAUSSHOME**.
- Путь к скомпилированным бинарным файлам: **$GAUSSHOME/bin**.
**Способ с использованием cmake:**
1. Получение соответствующих бинарных файлов сторонних библиотек
2. Настройка переменных окружения
#### Выбор версии и информации о платформе
export DEBUG_TYPE=release
export BUILD_TUPLE=aarch64
export GCC_VERSION=10.3.1
##### Импорт переменных окружения сторонних библиотек
export THIRD_BIN_PATH=________
export JAVA_HOME=$THIRD_BIN_PATH/kernel/platform/openjdk8/${BUILD_TUPLE}/jdk/
export PATH=${JAVA_HOME}/bin:$PATH
export APPEND_FLAGS="-g3 -w -fPIC"
export GCCFOLDER=$THIRD_BIN_PATH/buildtools/gcc10.3
export CC=$GCCFOLDER/gcc/bin/gcc
export CXX=$GCCFOLDER/gcc/bin/g++
export LD_LIBRARY_PATH=$GCCFOLDER/gcc/lib64:$GCCFOLDER/isl/lib:$GCCFOLDER/mpc/lib/:$GCCFOLDER/mpfr/lib/:$GCCFOLDER/gmp/lib/:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$THIRD_BIN_PATH/kernel/dependency/kerberos/comm/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$THIRD_BIN_PATH/kernel/dependency/libcgroup/comm/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$THIRD_BIN_PATH/kernel/dependency/openssl/comm/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$THIRD_BIN_PATH/kernel/dependency/libcurl/comm/lib:$LD_LIBRARY_PATH
export PATH=$GCCFOLDER/gcc/bin:$PATH
export PREFIX_HOME=________
export GAUSSHOME=$PREFIX_HOME
export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH
export PATH=$GAUSSHOME/bin:$PATH
3. Выбор версии для настройки
mkdir cmake_build && cd cmake_build cmake .. -DENABLE_MULTIPLE_NODES=OFF -DENABLE_THREAD_SAFETY=ON -DENABLE_READLINE=ON -DENABLE_MOT=ON
cmake .. -DENABLE_MULTIPLE_NODES=OFF -DENABLE_THREAD_SAFETY=ON -DENABLE_READLINE=ON -DENABLE_MOT=ON -DENABLE_OPENEULER_MAJOR=ON
> **Примечание**
>
> - Для версий openEuler22.03 и openEuler24.03 необходимо добавить **-DENABLE_OPENEULER_MAJOR=ON**
4. Выполните следующие команды для компиляции
[user@linux cmake_build]$ make -sj && make install -sj
5. Компиляция завершена
- Путь установки скомпилированного ПО: **$GAUSSHOME**.
- Путь к скомпилированным бинарным файлам: **$GAUSSHOME/bin**.
### Компиляция установочного пакета
Прежде чем приступать к этому разделу, ознакомьтесь с разделом [Использование build.sh для компиляции](#Использование_build.sh_для_компиляции), чтобы понять, как использовать build.sh и как компилировать openGauss с помощью этого скрипта.
Теперь, чтобы скомпилировать установочный пакет, достаточно добавить опцию `-pkg`.
[user@linux openGauss-server]$ sh build.sh -m [debug | release | memcheck] -3rd [binarylibs path] -pkg
Примеры:
sh build.sh -pkg # Создание установочного пакета release версии openGauss. Требуется наличие binarylibs или символической ссылки на него в каталоге с кодом, иначе компиляция завершится ошибкой. sh build.sh -m debug -3rd /sdc/binarylibs -pkg # Создание установочного пакета debug версии openGauss
- Каталог сгенерированного установочного пакета: **./package**.
- Лог компиляции: **make_compile.log**
- Лог упаковки установочного пакета: **./package/make_package.log**
## Быстрый старт
См. [Быстрый старт](https://opengauss.org/zh/docs/2。Примечание: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。Заметка: для версий 6。
## Документация
Больше руководств по установке, туториалов и API см. в [документации пользователя](https://gitee.com/opengauss/docs).
## Сообщество
### Управление
Смотрите, как реализовано открытое [управление](https://gitee.com/opengauss/community/blob/master/governance.md) в openGauss.
### Общение
- WeLink: платформа для общения разработчиков.
- IRC канал: `#opengauss-meeting` (только для протоколов встреч).
- Почтовые списки: https://opengauss.org/zh/community/onlineCommunication/
## Вклад
Мы рады видеть ваш вклад! Подробности см. в разделе [Вклад в сообщество](https://opengauss.org/zh/contribution/).
## Примечания к выпуску
См. [Примечания к выпуску](https://opengauss.org/zh/docs/2。
## Лицензия
[MulanPSL-2。
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )