Рейтинг:0

Вопросы о запуске postgres в качестве контейнера Docker. 1. Часовой пояс, 2. global.stat

флаг cn

Я уже давно использую postgres как Docker Container. Изначально TZ и PGTZ не были установлены, поэтому я думаю, что по умолчанию было установлено UTC. В моей системе разработки я попробовал следующее в docker-compose.yml:

  постгрес:
    изображение: postgres:13
    порты: ["5557:5432"]
    перезапуск: если не остановлен
    тома:
       - ./Index:/var/lib/postgresql/данные
    среда:
       ТЗ: "Америка/Кайманы"
       ПГТЗ: «Америка/Кайманы»
       POSTGRES_PASSWORD: "постгрес"

и это, кажется, корректирует местный часовой пояс. Я не развертывал это в действующей системе, потому что мне интересно, не испортит ли это что-нибудь в отношении истории транзакций БД, файлов журналов и т. Д. С целостностью БД сейчас все в порядке, и у меня есть резервная копия, возвращающаяся довольно давно. Я не уверен, что действительно необходимо устанавливать часовой пояс, но неплохо, чтобы все контейнеры были настроены на локальную зону, а не на UTC.

Другая проблема не имеет отношения к делу и упоминается здесь: ВНИМАНИЕ: не удалось открыть файл статистики "pg_stat_tmp/global.stat": операция не разрешена

Кратко:

Этот индекс базы данных сопоставляется с папкой на хосте в корне пакета Docker, и все остальное, похоже, работает нормально, что касается базы данных. Я использую Mac, но если я укажу разрешение от CLI для папки БД, я получаю:

-rw-------@ 1 sscotti staff 3 22 фев 11:01 PG_VERSION
drwx------@ 6 sscotti staff 192 22 фев 11:54 база
drwx------@ 60 sscotti staff 1920 22 фев 16:00 глобально
drwx------@ 2 sscotti staff 64 Feb 22 11:01 pg_commit_ts
drwx------@ 2 sscotti staff 64 22 фев 11:01 pg_dynshmem
-rw-------@ 1 sscotti staff 4782 22 февраля 11:02 pg_hba.conf
-rw-------@ 1 sscotti staff 1636 22 фев 11:01 pg_ident.conf
drwx------@ 5 sscotti staff 160 22 фев 17:46 pg_logical
drwx------@ 4 sscotti staff 128 Feb 22 11:01 pg_multixact
drwx------@ 2 sscotti staff 64 Feb 22 11:01 pg_notify
drwx------@ 2 sscotti staff 64 Feb 22 11:01 pg_replslot
drwx------@ 2 sscotti staff 64 Feb 22 11:01 pg_serial
drwx------@ 2 sscotti staff 64 Feb 22 11:01 pg_snapshots
drwx------@ 2 sscotti staff 64 22 фев 16:00 pg_stat
drwx------@ 5 sscotti staff 160 22 фев 17:50 pg_stat_tmp
drwx------@ 3 sscotti staff 96 Feb 22 11:01 pg_subtrans
drwx------@ 2 sscotti staff 64 Feb 22 11:01 pg_tblspc
drwx------@ 2 sscotti staff 64 Feb 22 11:01 pg_twophase
drwx------@ 4 sscotti staff 128 Feb 22 11:01 pg_wal
drwx------@ 3 sscotti staff 96 Feb 22 11:01 pg_xact
-rw-------@ 1 sscotti staff 88 22 фев 11:01 postgresql.auto.conf
-rw-------@ 1 sscotti staff 28073 22 февраля 11:01 postgresql.conf
-rw-------@ 1 sscotti staff 36 22 фев 16:00 postmaster.opts
-rw------- 1 sscotti staff 94 22 фев 16:00 postmaster.pid

Папка pg_stat на самом деле пуста.

и pg_stat_temp имеет:

-rw------- 1 sscotti staff 1952 22 февраля 17:54 db_0.stat
-rw------- 1 sscotti staff 20360 22 фев 17:54 db_13395.stat
-rw------- 1 sscotti staff 1151 22 фев 17:54 global.stat

Похоже, проблема в том, что файлы БД привязаны к локальной папке на хосте, а не к тому Docker. Гораздо удобнее привязать его к локальной папке, легко доступной с хоста, но я думаю, что с этим связаны некоторые проблемы с разрешениями. Я мог бы на самом деле захотеть перейти на том, но этот том по-прежнему должен быть постоянным и легко резервироваться в локальный NAS или облачный сервис, который мы используем для резервного копирования.

С Docker Desktop для MacOS, похоже, немного снижается производительность при использовании связанных папок, а не томов, но в LINUX это, похоже, не вызывает проблем, хотя там также появляется предупреждение «файл статистики».

Спасибо.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.