Sql

Postgresql trunc: PostgreSQL функция trunc — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

#3904 (сбой PostgreSQL 11 на магистрали PostGIS 2.5) — PostGIS

Открыт 6 лет назад

Закрыт 5 лет назад

Сообщил: халат Владелец: детская коляска
Приоритет: блокиратор Веха: ПостГИС 2.5.0
Компонент: почта Версия: 2.4.х
Ключевые слова: Копия:

Поскольку этот коммит pg11 Пробеги Дебби на стр.

11 не увенчались успехом. Я не проверял PostGIS 2.4, так как мы не тестируем 11 на 2.4.

 Сводка
    Добавьте макрос pg_noinline в c.h. (подробности)
    Улучшить производительность sys/catcache. (подробности)
Совершить a0247e7a11bb9f5fd55694b594a3906b7bd05881 от Андреса
Добавьте макрос pg_noinline в c.h.
Заставить функцию не быть встроенной может быть полезно, если это медленный путь.
функции, критической для производительности, или должны быть видны в профилях, чтобы
позволяют правильно распределять затраты.
Автор: Андрес Фройнд Обсуждение:
https://postgr.es/m/[email protected]
Файл был изменен src/include/c.h
Зафиксировать 141fd1b66ce6e3d10518d66d4008bd368f1505fd от Андреса
Улучшить производительность sys/catcache.
Ниже приведены отдельные улучшения: 1) Предотвращение
Вызовы функций на основе FunctionCallInfo заменены на
  более эффективные функции с собственным интерфейсом аргументов C. 2) Не
извлекать столбцы из кортежа записи кэша при каждом совпадении
  записи - вместо этого сохраните их как массив Datum.
Это также позволяет избавиться от необходимости создавать фиктивные кортежи для отрицательного и списка записи и хак для работы со странностями cstring и text. 3) Измените порядок членов структуры catcache.h, чтобы важные записи были более вероятно, будет на одной кэш-линии. 4) Разрешение компилятору специализироваться критический SearchCatCache для определенное количество атрибутов позволяет разворачивать петли и избегать другая инициализация, зависящая от nkeys. 5) Только инициализация ScanKey при необходимости, т.е. промахи catcache, значительно уменьшает кеш-память ненужных промахов кеша процессора. 6) Разделение случай промаха кеша из поиска хэша, уменьшение стека распределения и т. д. в общем случае. 7) CatCTup и соответствующие им heaptuple размещаются в одном кусок. Это приводит к тому, что поиск в кэше выполняется примерно в три раза чаще, чем быстро - полносистемные тесты явно улучшаются меньше, чем это. Я также оценил дополнительные методы: - заменить хеш с открытым кодом на простой хэш - список гуляем прямо сейчас отображается в профилях.
К сожалению, это не так просто сделать так безопасно, как расположение записи в памяти может меняться в разное время, что плохо работает с подсчетом ссылок и аннулированием кеша. - Cacheline-выравнивание записей CatCTup - помогает некоторым с производительностью, но выигрыш невелик и код для него некрасивый, т.к. кортежи также должны быть освобождены. - добавить больше правильных функций, а не макросов для SearchSysCacheCopyN и т. д., но сейчас они не отображаются в профили. Причина, по которой макрос-оболочка для syscache.c/h должна быть изменена, скорее чем просто catcache, заключается в том, что в противном случае потребовалось бы разоблачение Массив SysCache наружу. В любом случае, это может быть хорошей идеей, но это на другой день. Автор: Андрес Фройнд. Рецензент: Роберт Хаас. Обсуждение: https://postgr.es/m/[email protected] Файл был изменен src/tools/pgindent/typedefs.list Файл был изменен src/include/utils/syscache.h Файл был изменен src/backend/utils/cache/catcache.
c Файл был изменен src/include/utils/catcache.h Файл был изменен src/backend/utils/cache/syscache.c

Журнал регресса postgis выглядит так:

 PostgreSQL 11devel на x86_64-pc-linux-gnu, скомпилированный gcc (Debian 5.2.1-22) 5.2.1 20151010, 64-разрядная версия
  Постгис 2.5.0dev - r15979 - 2017-10-13 22:01:30
  скрипты 2.5.0dev r15979
  ГЕОС: 3.7.0dev-CAPI-1.11.0 a51a06b1
  ПРОДЖ: Отн. 4.9.2, 08 сентября 2015 г.
  SFCGAL: 1.3.0
Запуск тестов
 загрузчик/точка .............. ок
 загрузчик/PointM .............. ок
 загрузчик/PointZ .............. ок
 загрузчик/многоточечный .............. в порядке
 загрузчик/MultiPointM .............. нормально
 загрузчик/MultiPointZ ........... в порядке
 загрузчик/дуга .............. в порядке
 загрузчик/ArcM ........... в порядке
 загрузчик/ArcZ ........... в порядке
 загрузчик/полигон ........... в порядке
 загрузчик/PolygonM .............. ок
 загрузчик/PolygonZ ........... нормально
 загрузчик/TSTPolygon ......... нормально
 загрузчик/TSIPolygon .
........ нормально загрузчик/TSTIPolygon ......... нормально загрузчик/PointWithSchema ..... ок загрузчик/NoTransPoint ......... нормально загрузчик/NotReallyMultiPoint ......... нормально загрузчик/MultiToSinglePoint ......... нормально загрузчик/ReprojectPts ........ ок загрузчик/ReprojectPtsGeog ........ ок загрузчик/Latin1 .... ок загрузчик/Latin1-неявный .... хорошо загрузчик/mfile .... хорошо dumper/literalsrid ....... хорошо самосвал/реальный ....... нормально аффинный .. хорошо бестсрид .. хорошо бинарный .. хорошо граница .. ок кластер .. хорошо concave_hull .. хорошо кторс .. ок криволинейный .. хорошо дамп .. ок точки сброса .. хорошо пусто .. хорошо предполагаемый экстент .. не удалось (ожидаемый результат: /var/lib/jenkins/workspace/postgis/regress_pgdev/tmp/2_4_pg11.0w64/test_38_diff) -------------------------------------------------- --------------------------- --- предполагаемый_экстендент_ожидаемый 01.01.2017 03:28:16.191591396 +0000 +++ /var/lib/jenkins/workspace/postgis/regress_pgdev/tmp/2_4_pg11.
0w64/test_38_out 13-10-2017 22:03:16.164629222 +0000 @@ -1,41 +1,4 @@ -ВНИМАНИЕ: статистика для "t.g" не существует -#877.1| -ВНИМАНИЕ: статистика для "t.g" не существует -#877.2| -ВНИМАНИЕ: подпись ST_Estimated_Extent устарела в версии 2.1.0. Пожалуйста, используйте ST_EstimatedExtent -ВНИМАНИЕ: статистика для "t.g" не существует -#877.2.устарело| -ВНИМАНИЕ: статистика для "t.g" не существует -#877.3|||| -#877.4|-10.15000|20.15000|-50.40000|30.40000 -#877.5|-10.15000|20.15000|-50.40000|30.40000 -ВНИМАНИЕ: статистика для "c1.g" не существует -#3391.1|||| -ВНИМАНИЕ: статистика для "c2.g" не существует -#3391.2|||| -ВНИМАНИЕ: статистика для "p.g" не существует -#3391.3|||| -#3391.4|0,00|1,00|0,00|1,00 -ВНИМАНИЕ: статистика для "c2.g" не существует -#3391.5|||| -#3391.6|0.00|1.00|0.00|1.00 -#3391.7|0.00|1.00|0.00|1.00 -#3391.8|-1.00|0.00|-1.00|0.00 -#3391.9|-1.01|1.01|-1.01|1.01 -#3391.10|0,00|1,00|0,00|1,00 -#3391.11|-1,00|0,00|-1,00|0,00 -#3391.12|-1.01|2.02|-1.01|2.02 -ВНИМАНИЕ: статистика для "p.
g" не существует -#3391.13|||| -ВНИМАНИЕ: статистика для "p.g" не существует -#3391.14|||| -ВНИМАНИЕ: статистика для "c1.g" не существует -#3391.15|||| -ВНИМАНИЕ: статистика для "c1.g" не существует -#3391.16|||| -#3391.17|0,00|1,00|0,00|1,00 -ВНИМАНИЕ: статистика для "p.g" не существует -#3391.18|||| -#3391.19|0,00|1,00|0,00|1,00 -#3391.20|0,00|1,00|0,00|1,00 -ВНИМАНИЕ: бросайте каскады на 2 других объекта +сервер неожиданно закрыл соединение + Вероятно, это означает, что сервер аварийно завершил работу + до или во время обработки запроса. + соединение с сервером потеряно -------------------------------------------------- --------------------------- forcecurve .. не удалось (ожидаемый результат: /var/lib/jenkins/workspace/postgis/regress_pgdev/tmp/2_4_pg11.0w64/test_39_diff) -------------------------------------------------- --------------------------- --- forcecurve_expected 01.01.2017 03:28:18.503591901 +0000 +++ /var/lib/jenkins/workspace/postgis/regress_pgdev/tmp/2_4_pg11.0w64/test_39_out 2017-10-13 22:03:16.
192628299 +0000 @@ -1,12 +1 @@

Тогда многое остальное — это просто pg11, пытающийся встать, а затем снова сбой.

 -ndovm1|{1,2,3,4,5,8}
-ndovm2|{1,2,4,6,7}
-#3777|ГЕОМЕТРИЧЕСКАЯ КОЛЛЕКЦИЯ ПУСТА|1
-#3777|LINESTRING(0 0,0 1)|1
-#3777|ПУСТАЯ ТОЧКА|1
-#3777|ТОЧКА(0 0)|3
-#3777|ТОЧКА(0 1)|1
-#3777.1|ГЕОМЕТРИЧЕСКАЯСБОРНИК ПУСТОЙ|1
-#3777.1|LINESTRING(0 0,0 1)|1
-#3777.1|ПУСТАЯ ТОЧКА|1
-#3777.1|ТОЧКА(0 0)|3
-#3777.1|ТОЧКА(0 1)|1
+psql: FATAL: система базы данных находится в режиме восстановления
-------------------------------------------------- ---------------------------
 ориентация .. не удалась (ожидаемый результат: /var/lib/jenkins/workspace/postgis/regress_pgdev/tmp/2_4_pg11.0w64/test_54_diff)
-------------------------------------------------- ---------------------------
--- ориентация_ожидаемая 2017-03-17 00:52:28.667011501 +0000
+++ /var/lib/jenkins/workspace/postgis/regress_pgdev/tmp/2_4_pg11.0w64/test_54_out 13-10-2017 22:03:16.276625529+0000
@@ -1,36 +1 @@
-1|т
-2|т
:
:
-pgcast_06|ПОЛИГОН((0 0,0 1,1 1,1 0,0 0))
+psql: FATAL: система базы данных находится в режиме восстановления
-------------------------------------------------- ---------------------------
 out_geography .
. не удалось (ожидаемый результат: /var/lib/jenkins/workspace/postgis/regress_pgdev/tmp/2_4_pg11.0w64/test_56_diff) -------------------------------------------------- --------------------------- --- out_geography_expected 01.01.2017 03:28:16.555591475 +0000 +++ /var/lib/jenkins/workspace/postgis/regress_pgdev/tmp/2_4_pg11.0w64/test_56_out 13-10-2017 22:03:16.284625266 +0000 @@ -1,68 +1 @@

Я подозреваю, что это может быть что-то, что нужно исправить вышестоящим, поэтому нам придется придумать пример, не связанный с PostGIS, который создает беспорядок.

Показать комментарии Показать изменения свойства

История изменений (4)

Разрешение: → исправлено
Статус: новый → закрытый

Службы не запускаются PostgreSQL, 3CXPhoneStstemMC01.service

На данный момент я исправил эту проблему. Для всех будущих людей, столкнувшихся с такой же проблемой или интересующихся, вот мои краткие шаги по устранению неполадок:

Это сервер Debian, размещенный в частном порядке.

Первоначально весь сервер не отвечал, поэтому я выполнил на нем полную перезагрузку.

Как только я смог получить доступ к консоли, я сделал следующее:

systemctl start 3CXPhoneServerMC01.service

Сбой из-за ошибки «зависимости». Он сказал мне запустить другую команду для просмотра журналов:

Journalctl -xe

Это показало, что [электронная почта защищена] не запускается.

Я сосредоточился на этой службе, так как подумал, что это должно означать, что системная база данных не запускается.

После долгого поиска и устранения неполадок/гугления и исследований я обнаружил следующее:

Статус Systemctl [электронная почта защищена]

Эта команда показала мне, что существует проблема в языковом/локальном пакете:

10 января 08:29:09 ag3cx01 [email protected][2125]: 2023-01-10 08:29:09. 319 +08 [2130] ЖУРНАЛ: недопустимое значение для параметра «lc_messages»: «en_AU.UTF-8»

10 января 08:29:09 ag3cx01 [email protected][2125]: 2023-01-10 08:29:09.319 +08 [2130] ЖУРНАЛ: недопустимое значение для параметра «lc_monetary»: «en_AU.UTF-8»

10 января 08:29:09 ag3cx01 [email protected][2125]: 2023-01-10 08:29:09.319 +08 [2130] ЖУРНАЛ: недопустимое значение для параметра «lc_numeric»: «en_AU.UTF-8»

10 янв 08:29:09ag3cx01 [электронная почта защищена][2125]: 2023-01-10 08:29:09.319 +08 [2130] ЖУРНАЛ: недопустимое значение параметра «lc_time»: «en_AU.UTF-8»

10 января 08:29:09 ag3cx01 [email protected][2125]: 2023-01-10 08:29:09.319 +08 [2130] FATAL: файл конфигурации «/etc/postgresql/11/main/postgresql.conf» содержит ошибки

10 января 08: 29:09 ag3cx01 [электронная почта защищена][2125]: pg_ctl: не удалось запустить сервер

Еще погуглил Я смог установить пакет локали:

Sudo locale-gen en_AU.utf8

Повторно проверил статус и обнаружил новую ошибку:

10 января 08:47:06 ag3cx01 systemd[1]: Starting PostgreSQL Cluster 11-main. ..

10 января 08:47:06 ag3cx01 [email protected][548]: Ошибка: /usr/lib/postgresql/11/bin/pg_ctl /usr/lib/postgresql/11/bin/pg_ctl start -D /var/lib/postgresql/11/main -l /var/ log/postgresql/postg

resql-11-main.log -s -o -c config_file=»/etc/postgresql/11/main/postgresql.conf» завершен со статусом 1:

10 января 08:47:06 ag3cx01 [email protected][548]: 2023-01-10 08:47:06.268 +08 [553] FATAL: каталог данных «/var/lib/postgresql/11/main» имеет недопустимые разрешения

10 января 08:47:06 ag3cx01 [email protected][548]: 2023-01-10 08:47:06.268 +08 [553] DETAIL: Разрешения должны быть u=rwx (0700) или u=rwx,g =rx (0750).

10 января 08:47:06 ag3cx01 [email protected][548]: pg_ctl: не удалось запустить сервер

10 января 08:47:06 ag3cx01 systemd[1]: [электронная почта защищена]: невозможно открыть файл PID /run/postgresql/11-main.pid (пока?) после запуска: нет такого файла или каталога

, 10 января, 08:47:06 ag3cx01 systemd[1]: [электронная почта защищена]: ошибка с результатом «протокол».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *