Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
product:settings:pssql [13.03.2024 13:04] Белугин Александрproduct:settings:pssql [09.12.2025 08:02] (текущий) – [Бэкап и восстановление базы] Сердцев Сергей
Строка 1: Строка 1:
-====== PostgreSQL ======+====== Настройка базы данных PostgreSQL ======
 ===== Версия PostgreSQL ===== ===== Версия PostgreSQL =====
-Поддерживаются версии PostgreSQL начиная с 13 (рекомендуется на ниже 14) версии с поддержкой ICU.+Поддерживаются версии PostgreSQL начиная с 13 (рекомендуется не ниже 14) версии с поддержкой ICU.
  
 Для однообразной сортировки в PostgreSQL на Windows и Linux, и для сортировки как в SQL Server, используется провайдер icu, который использует внешнюю библиотеку ICU. Локали ICU можно использовать, только если поддержка ICU была включена в конфигурации сборки PostgreSQL. Для однообразной сортировки в PostgreSQL на Windows и Linux, и для сортировки как в SQL Server, используется провайдер icu, который использует внешнюю библиотеку ICU. Локали ICU можно использовать, только если поддержка ICU была включена в конфигурации сборки PostgreSQL.
Строка 21: Строка 21:
  
 После запуска скриптов надо перезапустить сервис PostgreSQL: <code bash> sudo service postgresql restart </code> После запуска скриптов надо перезапустить сервис PostgreSQL: <code bash> sudo service postgresql restart </code>
- +<code bash> pgbadger -j 4  /rs-analyse/log/pg_clean.log </code> 
-=== Пример для PostgreSQL 13: === \\+=== Пример для PostgreSQL 13: ===
  
 # OS Type: GNU/Linux based \\ # OS Type: GNU/Linux based \\
Строка 98: Строка 98:
 на на
  
-  <add name="db" providerName="Npgsql" connectionString="Server=localhost;Port=5432;Database=sl_3_24;User +  <add name="db" providerName="Npgsql" connectionString="Server=localhost;Port=5432;Database=a2nta_db;User 
   Id=postgres;Password=123;Pooling=true;CommandTimeout=7200;Timeout=500;MaxPoolSize=500;Max Auto Prepare=100;Auto Prepare Min Usages=3;"/>   Id=postgres;Password=123;Pooling=true;CommandTimeout=7200;Timeout=500;MaxPoolSize=500;Max Auto Prepare=100;Auto Prepare Min Usages=3;"/>
-  <add name="dbCubes" providerName="Npgsql" connectionString="Server=localhost;Port=5432;Database=sl_3_24;User +  <add name="dbCubes" providerName="Npgsql" connectionString="Server=localhost;Port=5432;Database=a2nta_db;User 
   Id=postgres;Password=123;Pooling=true;CommandTimeout=7200;Timeout=500;MaxPoolSize=500;Max Auto Prepare=100;Auto Prepare Min Usages=3;"/>   Id=postgres;Password=123;Pooling=true;CommandTimeout=7200;Timeout=500;MaxPoolSize=500;Max Auto Prepare=100;Auto Prepare Min Usages=3;"/>
-  <add name="busDb" providerName="Npgsql" connectionString="Server=localhost;Port=5432;Database=sl_3_24;User +  <add name="busDb" providerName="Npgsql" connectionString="Server=localhost;Port=5432;Database=a2nta_db;User 
   Id=postgres;Password=123;Pooling=true;CommandTimeout=7200;Timeout=500;MaxPoolSize=500;Max Auto Prepare=100;Auto Prepare Min Usages=3;"/>   Id=postgres;Password=123;Pooling=true;CommandTimeout=7200;Timeout=500;MaxPoolSize=500;Max Auto Prepare=100;Auto Prepare Min Usages=3;"/>
  
Строка 386: Строка 386:
  
 ===== Бэкап и восстановление базы ===== ===== Бэкап и восстановление базы =====
-https://postgrespro.ru/docs/postgresql/13/backup+https://postgrespro.ru/docs/postgresql/14/backup
   
 Бэкап базы делается утилитой '' pg_dump '', нужно использовать '' pg_dump '' той же версии, которая установлена на сервере PostgreSQL: Бэкап базы делается утилитой '' pg_dump '', нужно использовать '' pg_dump '' той же версии, которая установлена на сервере PostgreSQL:
   
-<code bash>  pg_dump.exe --file "D:\\DbBackups\\sl_3_24.bak" --host "sl_3_24" --port "5432" --username "postgres" --password --verbose --format=c --blobs "sl_3_24" </code>+<code bash>  pg_dump.exe --file "D:\\DbBackups\\a2nta_db.bak" --host "a2nta_db" --port "5432" --username "postgres" --password --verbose --format=c --blobs "a2nta_db" </code>
   
  
Строка 396: Строка 396:
 <code sql> <code sql>
   sql   sql
-  CREATE DATABASE "sl_3_24"+  CREATE DATABASE "a2nta_db"
   WITH    WITH 
   OWNER = postgres   OWNER = postgres
Строка 408: Строка 408:
   CONNECTION LIMIT = -1;    CONNECTION LIMIT = -1;
  
-  ALTER DATABASE "sl_3_24" SET search_path TO "$user", public, dbo;+  ALTER DATABASE "a2nta_db" SET search_path TO "$user", dbo;
  
   CREATE EXTENSION IF NOT EXISTS "uuid-ossp";   CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
Строка 415: Строка 415:
 И запустить утилиту '' pg_restore '' , в созданную пустую базу: И запустить утилиту '' pg_restore '' , в созданную пустую базу:
  
-<code bash> pg_restore.exe --host "localhost" --port "5432" --username "postgres" --password --dbname "sl_3_24" --verbose "D:\\DbBackups\\sl_3_24.bak" </code>+<code bash> pg_restore.exe --host "localhost" --port "5432" --username "postgres" --password --dbname "a2nta_db" --verbose "D:\\DbBackups\\a2nta_db.bak" </code>
  
 Можно установить search_path на системном уровне, чтобы при каждом восстановление базы не надо было это настраивать отдельно: Можно установить search_path на системном уровне, чтобы при каждом восстановление базы не надо было это настраивать отдельно:
Строка 421: Строка 421:
   sql   sql
   ALTER SYSTEM SET search_path    ALTER SYSTEM SET search_path 
-  TO "$user", public, dbo;+  TO "$user", dbo;
  
   SELECT pg_reload_conf();   SELECT pg_reload_conf();
 </code> </code>
  
-Если нужно выдать права пользователю на базу (https://postgrespro.ru/docs/postgresql/13/sql-grant):+Нужно выдать права пользователю на базу (https://postgrespro.ru/docs/postgresql/14/sql-grant):
 <code sql> <code sql>
   sql   sql
Строка 462: Строка 462:
  
 #... #...
 +</code>
 +
 +В случае возникновения ошибки "53200: нехватка разделяемой памяти" возможно повышение параметра до значения 1000:
 +<code config [highlight_lines_extra="9"]>
 +max_locks_per_transaction = 1000
 </code> </code>