Быстрый старт
Развертывание
Моделирование данных
Подключение
Запись данных
Миграция
Запросы
Операции и обслуживание
Типовое обслуживание
Секционирование
Резервное копирование и восстановление
Масштабирование
Зеркалирование
Управление ресурсами
Безопасность
Мониторинг
Настройка производительности
Устранение неполадок
Справочник
Руководство по инструментам
Типы данных
Хранилище данных
Выполняющая система
Потоковая передача
Восстановление после сбоев
Конфигурация
Индексы
Расширения
Справочник по SQL
Часто задаваемые вопросы
Симптомы
Ошибка после установки пакета yum install matrixdb: cpio read error
Причина
Среда пользователя — Windows с VMware Workstation 15. Установочный пакет был скачан на Windows и перетащен в виртуальную машину, что привело к обрезке файлов.
Решение
Используйте механизм общих папок VMware для передачи файлов. См. https://blog.csdn.net/highning/article/details/106000215.
Симптомы
Ошибка при создании расширения MARS:
could not load library "/usr/local/matrixdb-4.0.0.enterprise/lib/postgresql/mars.so": /lib64/libarrow.so.300: undefined symbol: LZ4F_resetDecompressionContext
Причина
YMatrix 4 зависит от версии Arrow 300, которая требует LZ4 версии >= 1.8.
Решение
Обновите библиотеку LZ4.
Симптомы
Инициализация завершается ошибкой:
could not connect to server: No route to host
Is the server running on host "192.168.88.203" and accepting
TCP/IP connections on port 40000?
(seg0 192.168.88.203:40000)
Причина
Файрволл iptables был остановлен, но не отключен на хосте 203. После перезагрузки файрволл автоматически запустился снова. Неоткрытые необходимые порты препятствуют межузловой связи, что приводит к бесконечной блокировке инициализации.
Решение
Очистите правила файрволла на хосте 203, остановите службу iptables и отключите её, чтобы предотвратить автоматический запуск после перезагрузки.
Симптомы
Сообщение об ошибке:
error: could not access directory \"/data/mxdata_20221104084534/master/mxseg-1\": Permission denied
Лог инициализации mxui:
"error": "execute: do execute: run: initialize_database: 7 errors occurred: *
error execute \"/usr/local/matrixdb-4.5.0.community/bin/initdb\"\n\n STDOUT:
The files belonging to this database system will be owned by user \"mxadmin\".
This user must also own the server process.
The database cluster will be initialized with locale \"en_US.utf8\".\n The default text search configuration will be set to \"english\".
Data page checksums are enabled.
STDERR:
initdb: error: could not access directory \"/data/mxdata_20221104084534/master/mxseg-1\": Permission denied\n * error execute \"/usr/local/matrixdb-4.5.0.community/bin/initdb\"
STDOUT:
The files belonging to this database system will be owned by user \"mxadmin\".
This user must also own the server process.\n\n The database cluster will be initialized with locale \"en_US.utf8\".
The default text search configuration will be set to \"english\".
Data page checksums are enabled.
Причина
Директория данных имеет ограничивающие права — только владелец имеет права на чтение, запись и выполнение (rwx). Пользователи группы и остальные не имеют доступа.
[root@mdw ~]# ll /
total 36
lrwxrwxrwx. 1 root root 7 Jun 1 19:38 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Oct 26 18:28 boot
drwxr-xr-x 20 root root 3200 Oct 26 14:45 dev
drwxr-xr-x. 80 root root 8192 Oct 28 13:53 etc
drwxr-xr-x. 5 root root 8192 Oct 26 18:17 export
drwxr-xr-x. 5 root root 105 Oct 26 18:28 home
drwx------. 5 root root 105 Oct 26 18:28 data
Решение
Настройте права доступа к директории данных:
sudo chmod 755 /data
Симптомы
Setuptools сообщает об неподдерживаемом аргументе:
unknown distribution option: "long_description_content_type"
Причина
Устаревшая версия setuptools.
Решение
sudo python3 -m pip install --upgrade setuptools
Симптомы
После удаления и повторной установки кластер не может быть переинициализирован.
Причина
Повторная установка требует корректной очистки.
Решение
~/.matrixdb.env для пользователя mxadmin./etc/matrixdb/cluster.conf.systemctl restart matrixdb.supervisor.serviceСимптомы
Порт SSH по умолчанию не равен 22.
Решение
Добавьте конфигурацию хоста, порта и пользователя в файл .ssh/config:
Host mdw
Hostname mdw
Port 29022
User mxadmin
Host sdw1
Hostname sdw1
Port 29022
User mxadmin
Симптомы
Стресс-тест JDBC с 50 параллельными соединениями через пул соединений Druid от Alibaba. Время отклика остаётся стабильным в течение первых 2,5 минут, затем возрастает. Логи мастера показывают:
ERROR "failed to acquire resources on one or more segments", "could not connect to server: Connection timed out"
Ошибок или паник в логах сегментов нет.
Причина
Распределённые базы данных генерируют большой объём трафика TCP/UDP. Каждая передача использует другой порт, который ОС воспринимает как отдельное соединение (запись conntrack). Параметр ядра nf_conntrack_max ограничивает общее количество отслеживаемых параллельных соединений. В данной конфигурации несколько виртуальных машин работают на одном физическом хосте с использованием NAT-сети. При высокой параллельности количество виртуальных соединений резко возрастает, превышая nf_conntrack_max. Это приводит к потере пакетов из-за перегрузки сетевой обработки.
Решение
Настройте параметры ядра:
sudo sysctl net.netfilter.nf_conntrack_buckets=262144
sudo sysctl net.netfilter.nf_conntrack_max=1048576
Симптомы
Высокая нагрузка наблюдается при операциях движения во время запросов.
Причина
debug5, что приводит к избыточному логированию и снижению эффективности передачи UDP.Решение
Симптомы
При использовании клиентского интерфейса для подключения к удалённой базе данных долгие запросы или запросы после длительного простоя иногда возвращают:
server closed the connection unexpectedly
Причина
Настройки таймаута на стороне клиента могут отменять запросы или закрывать неактивные соединения.
Решение
Измените настройки таймаута клиента, отключив таймауты для запросов и неактивных соединений.
Симптомы
Для партиционированных таблиц запрос UNION ALL с простыми условиями фильтрации выполняется медленнее, чем эквивалентный запрос IN.
Причина
В запросе IN фильтрация партиций приводит к сканированию только стандартной партиции. Однако в запросе UNION ALL каждое подзапрос независимо фильтрует до стандартной партиции, что приводит к многократному сканированию одной и той же партиции и значительному падению производительности.
Решение
Для партиционированных таблиц:
IN конструкциям UNION ALL.Симптомы
INSERT в целочисленный столбец с последующим SELECT работает быстро при отдельном выполнении, но медленно выполняется внутри функции PL/pgSQL.
Причина
Запросы внутри функций PL/pgSQL используют SPI (Server Programming Interface). План SPI показывает соединение двух таблиц с использованием вложенных циклов. Оценённое количество строк — 1, и ANALYZE не выполнялся.
Решение
Выполните ANALYZE для соответствующих таблиц.
Симптомы
Два параллельных сеанса, выполняющие обновления в партиционированной таблице, вызывают взаимную блокировку.
Причина
Распределённая мёртвая блокировка.
Решение
Включите обнаружение распределённых мёртвых блокировок:
gpconfig -c gp_enable_global_deadlock_detector -v on
Симптомы
Низкая производительность загрузки данных.
Причина
gpcheckperf показывает производительность диска всего 80 МБ/с.
Решение
Используйте несколько дисков для повышения производительности ввода-вывода. Разделите диски WAL и данных для снижения конкуренции ввода-вывода.
Симптомы
При одновременной загрузке 30 таблиц с помощью mxgate возникает ошибка:
failed to acquire resources on one or more segments, fatal out of memory
Причина
PostgreSQL/Greenplum использует многопроцессную архитектуру. Высокая параллельность приводит к избыточному количеству соединений, исчерпывающему доступную память на запрос.
Решение
Настройте /etc/sysctl.conf:
vm.overcommit_memory = 2
Измените mxgate prepared=10 на prepared=5.
Симптомы
После развертывания PXF доступ к HDFS завершается ошибкой:
remote component error, Failed connect to localhost:5888; Connection refused (libchurl.c:950)
Решение
pxf/servers/core-site.xml и hdfs-site.xml точно соответствуют файлам конфигурации Hadoop.pxf/servers/core-site.xml.pxf/core-site.xml.Симптомы
При вводе данных поле, содержащее символ перевода строки, разбивает одну строку на две. При разборе по разделителю количество полей не совпадает. То есть присутствуют два символа \n — один в середине и один в конце, но внутренний \n не должен интерпретироваться как разделитель строк.
Решение
escape 'off' в параметры.FORMAT 'text:multi'.Симптомы
Необходимо установить мониторинг Grafana в офлайн-режиме.
Решение
Скачайте пакет репозитория Grafana. Создайте локальный репозиторий и установите.
# ls
create_repo.sh grafana-7.3.6-1.x86_64.rpm grafana_repo
# sh create_repo.sh
Create ymatrix-grafana repo successfully!
# yum install --disablerepo=* --enablerepo=ymatrix_grafana grafana-7.3.6-1.x86_64.rpm