service:postgres
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
service:postgres [18.07.2024 08:31] – [Установка и управление сервером] viacheslav | service:postgres [30.07.2024 19:21] (текущий) – внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 69: | Строка 69: | ||
POSTGRES_PASSWORD: | POSTGRES_PASSWORD: | ||
POSTGRES_INITDB_ARGS: | POSTGRES_INITDB_ARGS: | ||
+ | TZ: Europe/ | ||
+ | PGTZ: Europe/ | ||
volumes: | volumes: | ||
- ./ | - ./ | ||
Строка 78: | Строка 80: | ||
</ | </ | ||
+ | Если база уже создана, | ||
+ | https:// | ||
+ | |||
[[https:// | [[https:// | ||
Строка 100: | Строка 105: | ||
# С какими параметрами собран кластер | # С какими параметрами собран кластер | ||
docker exec postgres-postgres-1 pg_config --configure | docker exec postgres-postgres-1 pg_config --configure | ||
+ | |||
+ | # Проверка/ | ||
+ | pg_ctl stop | ||
+ | sudo / | ||
+ | sudo / | ||
+ | pg_ctl start | ||
+ | # Без остановки сервера статус контрольных сумм можно проверить | ||
+ | psql -Axtc 'show data_checksums' | ||
+ | docker exec -u postgres postgres-postgres-1 pg_controldata |grep checksum # Data page checksum version: 1 (включено) | ||
</ | </ | ||
+ | https:// | ||
**Специфика Ubuntu:** вместо '' | **Специфика Ubuntu:** вместо '' | ||
Строка 109: | Строка 124: | ||
</ | </ | ||
===== Использование psql ===== | ===== Использование psql ===== | ||
- | https:// | + | psql — терминальный клиент для работы с СУБД. При запуске требуются параметры подключения. Выполняет команды SQL и psql.\\ |
+ | Содержит инструменты для интерактивной работы, | ||
+ | https:// | ||
+ | https:// | ||
<code powershell> | <code powershell> | ||
# Клиент на винде | # Клиент на винде | ||
Строка 118: | Строка 135: | ||
\conninfo | \conninfo | ||
Вы подключены к базе данных " | Вы подключены к базе данных " | ||
+ | # новое подключение, | ||
+ | \c[onnect] | ||
+ | # Команды SQL, в отличие от команд psql, могут располагаться на нескольких строках. | ||
+ | SELECT schemaname, tablename, tableowner | ||
+ | FROM pg_tables | ||
+ | LIMIT 5; | ||
+ | </ | ||
+ | ==== Форматирование вывода результатов запроса ==== | ||
+ | Формат по умолчанию - включены заголовки, | ||
+ | <code sql> | ||
+ | SELECT schemaname, tablename, tableowner FROM pg_tables LIMIT 3; | ||
+ | | ||
+ | ------------+------------------+------------ | ||
+ | | ||
+ | | ||
+ | | ||
+ | (3 строки) | ||
+ | </ | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | ==== Взаимодействие с ОС ==== | ||
+ | <code bash> | ||
+ | \! pwd | ||
+ | # Задать переменную hello | ||
+ | \setenv hello world | ||
+ | \! echo hello | ||
+ | world | ||
+ | # \o[ut] - вывод в файл (в Windows тоже нужно использовать / в путях, например, | ||
+ | \o folder/ | ||
+ | \o # Вернуть вывод на экран | ||
</ | </ | ||
+ | ==== Скрипты ==== | ||
+ | <code bash> | ||
+ | # Сгенерировать строки путём запроса и выгрузить в файл. Если файл не указывать, | ||
+ | SELECT format(' | ||
+ | \g (tuples_only=on format=unaligned) tmp/ | ||
+ | # Выполнить файл как скрипт (\i[nclude]), | ||
+ | \i tmp/ | ||
+ | psql < tmp/ | ||
+ | psql -f tmp/ | ||
+ | # Можно запрос сразу выполнить как скрипт | ||
+ | SELECT format(' | ||
+ | </ | ||
+ | |||
+ | ==== Переменные, | ||
+ | <code sql> | ||
+ | -- Связать переменную User с переменной окружения USER (в Windows переменную %USERNAME% нужно писать без %) | ||
+ | \getenv Username USER | ||
+ | -- Задать переменную Test | ||
+ | \set Test Hi | ||
+ | -- Вывод | ||
+ | \echo :Test :Username! | ||
+ | Hi student! | ||
+ | -- Запись запроса в переменную (запрос должен возвращать только одну запись) | ||
+ | SELECT now() AS curr_time \gset | ||
+ | \echo :curr_time | ||
+ | 2024-07-20 08: | ||
+ | -- Вывести все переменные | ||
+ | \set | ||
+ | |||
+ | -- Условие - если переменная не определена, | ||
+ | \if : | ||
+ | \else | ||
+ | -- В винде будет `echo %cd%` | ||
+ | \set working_dir `pwd` | ||
+ | \endif | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== Настройка psql ==== | ||
+ | При запуске psql выполняются 2 скрипта, | ||
+ | |||
+ | <code sql> | ||
+ | -- Если добавить этот код в ~/.psqlrc, то сразу после старта psql можно будет ввести :top5 для просмотра 5 самых больших таблиц | ||
+ | \set top5 ' | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Настройка сервера ===== | ||
+ | https:// | ||
+ | [[https:// | ||
+ | |||
+ | Базовая конфигурация хранится в файлах конфигурации. Основной файл (путь по умолчанию) - '' | ||
+ | раз, будет использоваться значение, | ||
+ | |||
+ | Каталог с доп. файлами конфигурации - ''/ | ||
+ | <code sql> | ||
+ | -- Показать путь к файлу конфигурации | ||
+ | SHOW config_file; | ||
+ | </ |
service/postgres.1721291510.txt.gz · Последнее изменение: 30.07.2024 19:20 (внешнее изменение)