Использование национальной локали ru_RU.UTF-8 повышает производительность PostgreSQL при работе с русскоязычными данными:
- улучшается работа механизмов сортировки и индексирования данных;
- ускоряется выполнение поисковых и текстовых операций.
Установка локали состоит из четырёх этапов:
- Проверить доступные локали.
- Остановить работу приложения ELMA365.
- Создать базу данных с локалью ru_RU.UTF-8.
- Возобновить работу приложения ELMA365.
Шаг 1. Проверить доступные локали
- Проверьте наличие локали ru_RU.UTF-8 в системе. Для этого выполните команду:
locale -a | grep ru_RU
Если локаль доступна, отобразится её название.
- Если локаль отсутствует:
- Установите её, выполнив команду:
sudo locale-gen ru_RU.UTF-8
sudo update-locale
- Перезагрузите сервис PostgreSQL для применения изменений:
sudo systemctl restart postgresql
- Проверьте наличие локали ru-RU в PostgreSQL, выполнив команду:
sudo -u postgres psql -c "SELECT * FROM pg_collation WHERE collname LIKE 'ru%';"
Шаг 2. Остановить работу приложения ELMA365
Остановите все сервисы приложения ELMA365 и дождитесь их завершения. Для этого используйте команду:
kubectl scale deploy --replicas=0 --all [-n <elma365-namespace>]
Шаг 3. Создать базу данных с локалью ru_RU.UTF-8
- Поскольку изменить локаль в существующей базе данных нельзя, создайте новую с нужными параметрами. Для этого выполните команду:
sudo -u postgres psql -c "CREATE DATABASE elma365_new WITH OWNER = elma365
LOCALE_PROVIDER = icu ICU_LOCALE = 'ru-RU' ENCODING = 'UTF8' LC_COLLATE =
'ru_RU.UTF-8' LC_CTYPE = 'ru_RU.UTF-8' TEMPLATE = template0;"
sudo -u postgres psql -d elma365_new -c "CREATE EXTENSION \"uuid-ossp\"; CREATE
EXTENSION pg_trgm;"
- Создайте резервную копию существующей базы данных, использовав команду:
sudo -u postgres pg_dump elma365 > elma365-dump.sql
- Перенесите данные из резервной копии в новую базу данных с локалью ru_RU.UTF-8:
sudo -u postgres psql elma365_new < elma365-dump.sql
начало внимание
Перед выполнением следующего действия убедитесь, что все данные перенесены.
конец внимание
- Удалите старую базу данных и переименуйте новую:
sudo -u postgres psql -c "DROP DATABASE elma365;"
sudo -u postgres psql -c "ALTER DATABASE elma365_new RENAME TO elma365;"
Шаг 4. Возобновить работу приложения ELMA365
Запустите все сервисы приложения ELMA365, используя команду:
kubectl scale deploy --replicas=1 --all [-n <elma365-namespace>]