Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| product:settings:pssql [08.12.2022 07:37] – [Настройка PostgreSQL] anna.makhneva | product:settings:pssql [09.12.2025 08:02] (текущий) – [Бэкап и восстановление базы] Сердцев Сергей | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ====== PostgreSQL ====== | + | ====== |
| ===== Версия PostgreSQL ===== | ===== Версия PostgreSQL ===== | ||
| - | Поддерживаются версии PostgreSQL начиная с 13 версии с поддержкой ICU. | + | Поддерживаются версии PostgreSQL начиная с 13 (рекомендуется не ниже 14) версии с поддержкой ICU. |
| Для однообразной сортировки в PostgreSQL на Windows и Linux, и для сортировки как в SQL Server, используется провайдер icu, который использует внешнюю библиотеку ICU. Локали ICU можно использовать, | Для однообразной сортировки в PostgreSQL на Windows и Linux, и для сортировки как в SQL Server, используется провайдер icu, который использует внешнюю библиотеку ICU. Локали ICU можно использовать, | ||
| Строка 21: | Строка 21: | ||
| После запуска скриптов надо перезапустить сервис PostgreSQL: <code bash> sudo service postgresql restart </ | После запуска скриптов надо перезапустить сервис PostgreSQL: <code bash> sudo service postgresql restart </ | ||
| - | + | <code bash> pgbadger -j 4 / | |
| - | === Пример для PostgreSQL 13: === \\ | + | === Пример для PostgreSQL 13: === |
| # OS Type: GNU/Linux based \\ | # OS Type: GNU/Linux based \\ | ||
| # Architecrure: | # Architecrure: | ||
| # Storage type: ssd \\ | # Storage type: ssd \\ | ||
| - | # Application profile: | + | # Application profile: |
| # CPUs num: 16 \\ | # CPUs num: 16 \\ | ||
| - | # Total Memory | + | # Total Memory: 40 GB \\ |
| # Connections num: 1000 \\ | # Connections num: 1000 \\ | ||
| # Data Storage: ssd \\ | # Data Storage: ssd \\ | ||
| Строка 39: | Строка 39: | ||
| ALTER SYSTEM SET shared_buffers TO ' | ALTER SYSTEM SET shared_buffers TO ' | ||
| ALTER SYSTEM SET effective_cache_size TO ' | ALTER SYSTEM SET effective_cache_size TO ' | ||
| - | ALTER SYSTEM SET work_mem TO '10MB'; | + | ALTER SYSTEM SET work_mem TO '14MB'; |
| ALTER SYSTEM SET maintenance_work_mem TO ' | ALTER SYSTEM SET maintenance_work_mem TO ' | ||
| Строка 75: | Строка 75: | ||
| -- CSV Configuration | -- CSV Configuration | ||
| - | ALTER SYSTEM SET log_destination TO ' | + | ALTER SYSTEM SET log_destination TO ' |
| </ | </ | ||
| После запуска скрипта с установкой настроек нужно перезапустить сервис PostgreSQL: <code bash> sudo service postgresql restart </ | После запуска скрипта с установкой настроек нужно перезапустить сервис PostgreSQL: <code bash> sudo service postgresql restart </ | ||
| - | ===== Конвертация базы из SQL Server в PostgreSQL и обратно ===== | ||
| ===== Настройка приложения ===== | ===== Настройка приложения ===== | ||
| Строка 99: | Строка 98: | ||
| на | на | ||
| - | <add name=" | + | <add name=" |
| Id=postgres; | Id=postgres; | ||
| - | <add name=" | + | <add name=" |
| Id=postgres; | Id=postgres; | ||
| - | <add name=" | + | <add name=" |
| Id=postgres; | Id=postgres; | ||
| Строка 186: | Строка 185: | ||
| sudo pg_ctlcluster 13 main start </ | sudo pg_ctlcluster 13 main start </ | ||
| | | ||
| - | 2. Как отредакировать файл от имени админа | + | 2. Как отредакnировать файл от имени админа |
| https:// | https:// | ||
| Строка 387: | Строка 386: | ||
| ===== Бэкап и восстановление базы ===== | ===== Бэкап и восстановление базы ===== | ||
| - | https:// | + | https:// |
| Бэкап базы делается утилитой '' | Бэкап базы делается утилитой '' | ||
| - | <code bash> | + | <code bash> |
| Строка 397: | Строка 396: | ||
| <code sql> | <code sql> | ||
| sql | sql | ||
| - | CREATE DATABASE "sl_3_24" | + | CREATE DATABASE "a2nta_db" |
| WITH | WITH | ||
| OWNER = postgres | OWNER = postgres | ||
| Строка 409: | Строка 408: | ||
| CONNECTION LIMIT = -1; | CONNECTION LIMIT = -1; | ||
| - | ALTER DATABASE "sl_3_24" SET search_path TO " | + | ALTER DATABASE "a2nta_db" SET search_path TO " |
| CREATE EXTENSION IF NOT EXISTS " | CREATE EXTENSION IF NOT EXISTS " | ||
| Строка 416: | Строка 415: | ||
| И запустить утилиту '' | И запустить утилиту '' | ||
| - | <code bash> pg_restore.exe --host " | + | <code bash> pg_restore.exe --host " |
| Можно установить search_path на системном уровне, | Можно установить search_path на системном уровне, | ||
| Строка 422: | Строка 421: | ||
| sql | sql | ||
| ALTER SYSTEM SET search_path | ALTER SYSTEM SET search_path | ||
| - | TO " | + | TO " |
| SELECT pg_reload_conf(); | SELECT pg_reload_conf(); | ||
| </ | </ | ||
| - | Если нужно выдать права пользователю на базу (https:// | + | Нужно выдать права пользователю на базу (https:// |
| <code sql> | <code sql> | ||
| sql | sql | ||
| Строка 438: | Строка 437: | ||
| - Документация по PostgreSQL: https:// | - Документация по PostgreSQL: https:// | ||
| - Документация по PostgreSQL на русском: | - Документация по PostgreSQL на русском: | ||
| - | - Онлайн утилита генерации настроек для конфигурации сервера PostgreSQL: https://pgtune.leopard.in.ua/ | + | - Онлайн утилита генерации настроек для конфигурации сервера PostgreSQL: https://www.pgconfig.org/ |
| - PgBouncer FAQ: https:// | - PgBouncer FAQ: https:// | ||
| + | |||
| + | ===== Решение проблем с PostgreSQL ===== | ||
| + | |||
| + | ==== Блокировки транзакций ==== | ||
| + | Если возникают проблемы с операциями в БД PostgreSQL по причине конфликта блокировок транзакций, | ||
| + | |||
| + | <code config [highlight_lines_extra=" | ||
| + | #... | ||
| + | |||
| + | # | ||
| + | # LOCK MANAGEMENT | ||
| + | # | ||
| + | |||
| + | # deadlock_timeout = 1s | ||
| + | |||
| + | max_locks_per_transaction = 100 # min 10 | ||
| + | # (change requires restart) | ||
| + | |||
| + | # | ||
| + | # (change requires restart) | ||
| + | |||
| + | #... | ||
| + | </ | ||
| + | |||
| + | В случае возникновения ошибки " | ||
| + | <code config [highlight_lines_extra=" | ||
| + | max_locks_per_transaction = 1000 | ||
| + | </ | ||