- Запуск и остановка PostgreSQL без SystemD
- TablePlus
- How to start and stop PostgreSQL server?
- Linux и Windows: помощь админам и пользователям
- Администрируем и настраиваем Windows, Linux.
- 15 команд для управления PostgreSQL
- 1. Как изменить root пароль в PostgreSQL?
- 2. Как установить PostgreSQL в автозапуск?
- 3. Проверяем состояние сервера
- 4. Как запустить, остановить, перезапустить PostgreSQL?
- 5. Как посмотреть какая версия PostgreSQL запущена?
- 5. Как создать пользователя в PostgreSQL?
- 6. Как создать базу в PostgreSQL ?
- 7. Получаем список всех баз в Postgresql?
- 8. Как удалить базу в PostgreSQL?
- 9. Пользуемя встроенным хелпом к командам
- 10. Как получить список всех таблиц в базе данный в Postgresql?
- 11. Как узнать время выполнения запроса?
- 12. Как бэкапить и восстанавливать базы и таблицы в PostgreSQL?
- 13. Как посмотреть список доступных функций в PostgreSQL ?
- 14. Как отредактировать запрос к PostgreSQL в редакторе?
- 15. Где я могу найти файл истории postgreSQL?
- Комментариев: 10
- как красиво остановить все процессы postgres
- Остановить сервер постгрес linux
- Синтаксис
- Описание
- Параметры
- Параметры, специфичные для Windows
- Переменные окружения
- Файлы
- Примеры
- Запуск сервера
- Остановка сервера
- Повторный запуск сервера
- Вывод состояния сервера
Запуск и остановка PostgreSQL без SystemD
В общем у меня была проблема запуска PostgreSQL, которую я решил как было написано тут:
/usr/lib/postgresql/9.6/bin/postgres -D /etc/postgresql/9.6/Slave/ >/var/log/postgresql/postgresql-9.6-Slave.log 2>&1 &
Как остановить PostgreSQL, чтобы это было корректно.
Сейчас скрипты systemd не видят работающего сервера и когда я делаю
Ничего не происходит.
Как корректно потушить PostgreSQL
Если ты хочешь его останавливать используя systemctl, тебе необходимо им же и запускать.
Я хочу остановить сервер запущенный вручную.
А потом да, запускать и останавливать systemd.
Как сервер тормознуть запущенный без скриптов systemd.
Я так понимаю что команды kill это не есть «вежливое» выключение?
Если верить этому мануалу, то сигналом SIGTERM. Правда, мануал уже пятилетней давности, но вряд ли что-то в этом плане изменилось. На всякий случай можно проверить с тестовой БД, нагрузив её в момент «убийства» запросами на чтение и запись по самые гланды.
команды kill это не есть «вежливое» выключение?
Сигнал может обрабатываться, игнорироваться или выполнять действие по умолчанию (чаще всего прибивая процесс). Есть сигналы, которые не могут быть проигнорированы или обработаны, например SIGKILL (9). А другие могут обрабатываться, и реакция на них может быть вполне адекватной. А как systemd останавливает процессы? Посылкой тех же сигналов.
Как сервер тормознуть запущенный без скриптов systemd.
kill шлёт sigterm по-умолчанию.
Если верить этому мануалу, то сигналом SIGTERM.
Источник
TablePlus
How to start and stop PostgreSQL server?
October 30, 2018
In this post, we are going to figure out how to start, stop, and restart a PostgreSQL server on macOS, Linux, and Windows.
1. On macOS
If you installed PostgreSQL via Homebrew:
- To start PostgreSQL server now and relaunch at login:
If you want a hassle-free way to manage the local PostgreSQL database servers, use DBngin. It’s just one click to start, another click to turn off. No dependencies, no command line required, multiple drivers, multiple versions and multiple ports. And it’s free.
2. On Windows
First, you need to find the PostgreSQL database directory, it can be something like C:\Program Files\PostgreSQL\10.4\data . Then open Command Prompt and execute this command:
- Open Run Window by Winkey + R
- Type services.msc
- Search Postgres service based on version installed.
- Click stop, start or restart the service option.
3. On Linux
Update and install PostgreSQL 10.4
By default, the postgres user has no password and can hence only connect if ran by the postgres system user. The following command will assign it:
Need a good GUI tool for PostgreSQL on MacOS and Windows? TablePlus is a modern, native tool with an elegant GUI that allows you to simultaneously manage multiple databases such as MySQL, PostgreSQL, SQLite, Microsoft SQL Server and more.
Источник
Linux и Windows: помощь админам и пользователям
Администрируем и настраиваем Windows, Linux.
15 команд для управления PostgreSQL
В этой статье я покажу 15 наиболее полезных команд для управления postgreSQL.
1. Как изменить root пароль в PostgreSQL?
Изменение пароля для обычного пользователя происходит таким же образом. Пользователь root может поменять пароль любому пользователю.
2. Как установить PostgreSQL в автозапуск?
3. Проверяем состояние сервера
4. Как запустить, остановить, перезапустить PostgreSQL?
5. Как посмотреть какая версия PostgreSQL запущена?
5. Как создать пользователя в PostgreSQL?
Для этого существуют два метода..
Метод 1: Создаем пользователя в через PSQL шелл, командой CREATE USER.
Метод 2: Создаем пользователя в через шелл команду createuser.
6. Как создать базу в PostgreSQL ?
Для этого существует 2 метода.
Метод 1: Создаем базу черезе PSQL шелл, с помощью команды CREATE DATABASE.
Метод 2: Используем команду createdb.
7. Получаем список всех баз в Postgresql?
8. Как удалить базу в PostgreSQL?
9. Пользуемя встроенным хелпом к командам
Команда \? отобразит строку помощи для команда PSQL. \h CREATE покажет хелп для всех команд который начинаются с CREATE.
10. Как получить список всех таблиц в базе данный в Postgresql?
Для пустой базы вы получите сообщение “No relations found.”
11. Как узнать время выполнения запроса?
# \timing — после выполения данной команды каждый последующий запрос будет показывать время выполнения.
12. Как бэкапить и восстанавливать базы и таблицы в PostgreSQL?
Этот вопрос довольно велик и я опубликую его позднее отдельной статьей.
13. Как посмотреть список доступных функций в PostgreSQL ?
Для того чтобы получить список доступных функций, скажите \df+
14. Как отредактировать запрос к PostgreSQL в редакторе?
\e откроет редактор, в котором вы можете отредактировать запрос и сохранить его.
15. Где я могу найти файл истории postgreSQL?
/.bash_history, postgreSQL хранит все sql команды в файле
Разное
Лучшие выставочные стенды в Москве. Отличное качество выполнения, невысокие цены.
Курьерская служба, доставка по Москве и Московской области, срочная доставка, рассылки писем, счетов, журналов
Комментариев: 10
Очень хорошая статья, люблю живые примеры
С удовольствием прочитаю статью про бэкапы в postgresql
Спасибо, подборка очень выручила когда пришлось аврально разбираться, как с postgesql работать.
И да, примерах с кодом у меня повылазили тэги , лучше бы их убрать, читать мешает.
продвижение сайтов — SEO www.top5.com.ua и раскрутка в Киеве
Как и везде — много полезного, но нет нужного( ничего не сказано про разрешения и полномочия для обычных пользователей постгреса..
$ su — root
# tar xvfz postgresql-8.3.7.tar.gz
# cd postgresql-8.3.7
# cp contrib/start-scripts/linux /etc/rc.d/init.d/postgresql
# chmod a+x /etc/rc.d/init.d/postgresql
Не получается :((( команда postgresql status говорит что он остановлен.
Странно. Я пользуюсь Ruby On Rails и у меня иногда удаляется база данных. Причём, непонятно почему.
А так — спасибо за список команд — помогло.
Как посмотреть какая версия PostgreSQL запущена?
Полная ахинея. Нужно быть придурком чтобы таким образом определять версию постгреса,
в то время как простое —help нам подскажет, что достаточно и «psql —version«.
Автор просто скопипастил текст «статьи» откуда-то даже не удосужившись удалить html-тэги.
При написании подобных статей почему-то не учитывается специфика дистрибутива. Да — они все похожи, это не оспоримо, но тем не менее хотелось бы дополнить.
Первое с чем сталкиваются новички, а работает ли на нужном порту постгри. Решается командой , если вывод команды пустой, значит сервис не работает.
Также хочется отметить, что способов запуска/остановки процессов в разных системах минимум 2, тут выделен самый неудачный в плане длинного пути и отсутствия стандартизации запуска процессов.
Есть команда показывающая место расположения базы данных:
Как понимаю 1 row — это означает первая база. Как посмотреть вторую?
Источник
как красиво остановить все процессы postgres
Как приятно остановить все процессы postgres с помощью pg_ctl (или иным образом), если вы не помните, что такое каталог базы данных, и не определены переменные среды PGDATA?
Это убивает все процессы, запущенные от имени пользователя postgres . Или:
Это убивает все процессы, называемые «postgres».
Как не использовать kill -9 ( kill -KILL ). Просто kill (без вариантов) делает то SIGTERM , что вы хотите.
Кроме того, вы можете проверить расположение pgdata, если вы можете подключиться к PostgreSQL. Например:
. или проверяя его переменные окружения там , где вы идентифицируете администратора почты . Ищите тот, который является родителем других процессов. Например: /proc/[postmaster pid]/environ ps -fHC postgres postgres
Его dadadir обычно отображается в командной строке.
Это заставляет меня нервничать, когда я вижу kill и postgres в одной команде. Чтобы ответить на вопрос, используя только pg_ctl , это было бы:
Аргумент -X говорит, что нужно игнорировать .psqlrc файл. Это полезно, если у вас есть psql, настроенный на выдачу времени, затраченного на запрос (с помощью команды \ timer).
Аргумент -t говорит об удалении имени столбца в верхней части вывода и общего количества произведенных строк.
Аргумент -c содержит код SQL для выполнения.
Запуск голого psql -c ‘show data_directory’ , вероятно, приведет к следующему выводу:
Следовательно, обратная галочка через это $( . ) приведет /path/to/postgresql/data к аргументу -D в pg_ctl, который затем упорядоченно остановит базу данных.
Источник
Остановить сервер постгрес linux
pg_ctl — инициализировать, запустить, остановить или управлять сервером PostgreSQL
Синтаксис
pg_ctl init[db] [ -s ] [ -D каталог_данных ] [ -o параметры-initdb ]
pg_ctl start [ -w ] [ -t секунды ] [ -s ] [ -D каталог_данных ] [ -l имя_файла ] [ -o параметры ] [ -p путь ] [ -c ]
pg_ctl stop [ -W ] [ -t секунды ] [ -s ] [ -D каталог_данных ] [ -m s[mart] | f[ast] | i[mmediate] ]
pg_ctl restart [ -w ] [ -t секунды ] [ -s ] [ -D каталог_данных ] [ -c ] [ -m s[mart] | f[ast] | i[mmediate] ] [ -o параметры ]
pg_ctl reload [ -s ] [ -D каталог_данных ]
pg_ctl status [ -D каталог_данных ]
pg_ctl promote [ -s ] [ -D каталог_данных ]
pg_ctl kill имя_сигнала ид_процесса
pg_ctl register [ -N имя_службы ] [ -U имя_пользователя ] [ -P пароль ] [ -D каталог_данных ] [ -S a[uto] | d[emand] ] [ -w ] [ -t секунды ] [ -s ] [ -o параметры ]
pg_ctl unregister [ -N имя_службы ]
Описание
pg_ctl — это утилита для начальной инициализации, запуска, остановки, повторного запуска и управления кластером баз данных PostgreSQL ( postgres ). Сервер можно стартовать в ручном режиме, но pg_ctl реализует задачи направления вывода в журнал и отсоединения от терминала и группы процессов, а также предоставляет удобный интерфейс остановки кластера.
Для инициализации нового кластера PostgreSQL используются режимы init или initdb . Кластер — это коллекция баз данных под управлением единого сервера. По факту вызывается команда initdb . За подробностями обратитесь к initdb .
Сервер запускается в режиме start . Процесс работает в фоновом режиме, а стандартный ввод связывается с /dev/null (или nul под управлением Windows). По умолчанию в Unix-подобных системах вывод и ошибки сервера пишутся в устройство стандартного вывода (не ошибок) pg_ctl . Вывод pg_ctl следует перенаправить в файл или процесс, например, приложение ротации журналов rotatelogs ; в ином случае postgres будет писать вывод в управляющий терминал (в фоновом режиме) и останется в группе процессов оболочки. В Windows сообщения и ошибки сервера по умолчанию перенаправляются в терминал. Это поведение можно изменить и направить вывод сервера в файл, добавив ключ -l . Мы рекомендуем использовать ключ -l или перенаправлять вывод.
В режиме stop сервер, работающий в указанном каталоге данных, останавливается. Параметр -m позволяет выбрать три различных режима остановки. Режим « Smart » запрещает новые подключения, а затем ожидает отключения всех существующих клиентов и завершения всех текущих процессов резервного копирования. Если сервер работает в режиме горячего резерва, восстановление и потоковая репликация будут прерваны, как только отключатся все клиенты. Режим « Fast » (выбираемый по умолчанию) не ожидает отключения клиентов и завершает все текущие процессы резервного копирования. Все активные транзакции откатываются, а клиенты принудительно отключаются, после чего сервер останавливается. Режим « Immediate » незамедлительно прерывает все серверные процессы, не выполняя процедуру штатной остановки. В результате при следующем запуске будет запущено восстановление после сбоя.
В режиме restart по сути выполняется остановка и последующий запуск сервера. Это позволяет изменить параметры командной строки postgres . Режим restart может не отработать, если при запуске сервера в командной строке задавались относительные пути.
Чтобы перечитать конфигурацию ( postgresql.conf , pg_hba.conf и т. д.), используется reload , при этом процесс postgres получает системный сигнал SIGHUP . Это позволяет применить изменения без полного рестарта сервера.
Чтобы перевести резервный сервер в режим главного, используется promote . При этом сервер прекращает работу в режиме восстановления и начинает работать в режиме чтения-записи.
Чтобы послать сигнал процессу, используется kill . Это особенно применимо в среде Microsoft Windows , которая не имеет в оснастке команды kill . Чтобы посмотреть список доступных сигналов, обратитесь к справке —help .
Режим register предназначен для регистрации системной службы в Microsoft Windows . Параметр -S позволяет выбрать тип запуска службы, « auto » (запускать службу автоматически при загрузке системы) или « demand » (запускать службу по требованию).
Чтобы удалить зарегистрированную службу в Microsoft Windows , используется unregister . Эта операция отменяет действие команды register .
Параметры
Способствует сбросу дампа памяти процесса при крахе сервера на платформах, где это возможно, поднимая мягкие ограничения, задаваемые для файлов дампа. Это полезно при отладке и диагностике проблем, так как позволяет получить трассировку стека отказавшего процесса сервера. -D каталог_данных
—pgdata каталог_данных
Указывает размещение конфигурационных файлов кластера. Если не указано, используется значение переменной окружения PGDATA . -l имя_файла
—log имя_файла
Направляет вывод сообщений сервера в файл имя_файла . Файл создаётся, если он ещё не существует. При этом устанавливается umask 077, что предотвращает доступ других пользователей к этому файлу. -m режим
—mode режим
Задаёт режим остановки кластера. Значением режим может быть smart , fast или immediate , либо первая буква этих вариантов. По умолчанию выбирается режим fast . -o параметры
Указывает флаги, которые будут переданы непосредственно программе postgres ; несколько параметров складываются вместе.
Эти параметры обычно следует обрамлять одинарными или двойными кавычками, чтобы они передавались вместе как одна группа. -o параметры-initdb
Указывает флаги, которые будут переданы в initdb .
Эти параметры обычно следует обрамлять одинарными или двойными кавычками, чтобы они передавались вместе как одна группа. -p путь
Указывает размещение исполняемого файла postgres . По умолчанию задействуется исполняемый файл postgres из того же каталога, из которого запускался pg_ctl , а если это невозможно, из жёстко заданного каталога инсталляции. Применять этот параметр может понадобиться, только если вы делаете что-то необычное или получаете сообщения, что найти исполняемый файл postgres не удаётся.
В режиме init этот параметр аналогичным образом задаёт размещение исполняемого файла initdb . -s
—silent
Выводить лишь ошибки, без сообщений информационного характера. -t
—timeout
Максимальное время (в секундах) ожидания запуска или остановки сервера. По умолчанию принимается значение переменной среды PGCTLTIMEOUT или, если оно не задано, 60 секунд. -V
—version
Выводит версию pg_ctl и прерывает выполнение. -w
Ждать завершения запуска или остановки. Это вариант по умолчанию при остановке, но не при запуске. Ожидая запуска, pg_ctl постоянно пытается подключиться к серверу. Ожидая остановки, pg_ctl ждёт, пока сервер не удалит свой файл PID . Этот параметр позволяет ввести парольную фразу SSL при запуске. pg_ctl возвращает код завершения, сообщающий об успехе запуска или остановки. -W
Не ждать завершения запуска или остановки. Это вариант по умолчанию для режимов запуска и перезапуска. -?
—help
Вывести справку по команде pg_ctl и прервать выполнение.
Параметры, специфичные для Windows
Имя источника событий, с которым pg_ctl будет записывать в системный журнал события при запуске в виде службы Windows. Имя по умолчанию — PostgreSQL . Заметьте, что это влияет только на сообщения, которые выдаёт сам pg_ctl ; как только сервер запустится, он будет использовать источник событий, заданный в event_source. Если произойдёт ошибка при запуске сервера на ранней стадии, он также выдаст сообщение с источником по умолчанию PostgreSQL . -N имя_службы
Имя регистрируемой системной службы. Оно станет и собственно именем службы, и отображаемым именем. -P пароль
Пароль для пользователя, запускающего службу. -S тип-запуска
Тип запуска системной службы. Может принимать значения: auto , или demand , либо быть представлен первой буквой названия каждого приведённого значения. По умолчанию используется auto . -U имя_пользователя
Имя пользователя, от имени которого будут запущена служба. Для доменных пользователей необходимо использовать нотацию DOMAIN\username .
Переменные окружения
Значение по умолчанию для максимального времени ожидания запуска или остановки сервера (в секундах). По умолчанию это время составляет 60 секунд. PGDATA
Размещение каталога хранения данных по умолчанию.
pg_ctl , как и большинство других утилит PostgreSQL , также использует переменные окружения, поддерживаемые libpq (см. Раздел 32.14). Другие переменные сервера описаны в postgres .
Файлы
Наличие файла в каталоге хранения данных помогает pg_ctl определить, работает ли сервер в настоящий момент. postmaster.opts
Если файл существует в каталоге хранения данных, то pg_ctl (при restart ) передаст его содержимое в качестве аргументов postgres , если не указаны иные значения в -o . Содержимое файла также отображается при вызове в режиме status .
Примеры
Запуск сервера
Для запуска сервера:
Для запуска сервера с ожиданием готовности к приёму подключений:
Чтобы запустить сервер с использованием порта 5433 и без fsync , выполните:
Остановка сервера
Для остановки сервера:
Параметр -m указывает режим остановки:
Повторный запуск сервера
Повторный запуск сервера производится аналогично остановке с дальнейшим его запуском, за исключением того, что pg_ctl использует аргументы, которые были переданы при предыдущем запуске кластера. В простейшем случае повторный запуск выглядит так:
Для повторного запуска сервера с ожиданием полной остановки и последующего запуска:
Для повторного запуска на порту 5433 с выключенным fsync после старта:
Вывод состояния сервера
Ниже представлен примерный вывод pg_ctl :
Показанная командная строка будет использоваться в режиме перезапуска.
Источник