Как остановить postgresql в debian

Обновлено: 07.07.2024

Для систем на базе Linux Postgres Pro Standard поставляется в виде двоичных пакетов. Двоичный дистрибутив Postgres Pro состоит из нескольких пакетов, примерно таких же, что и официальный дистрибутив PostgreSQL для этих операционных систем.

Разделение дистрибутива на несколько пакетов позволяет устанавливать разные компоненты для разных целей: Postgres Pro может устанавливаться на серверах баз данных, клиентских рабочих станциях, машинах разработчиков для разработки клиентских приложений и т. д. Все дистрибутивы Postgres Pro включают отдельные пакеты документации на английском и русском языке.

В зависимости от вашей операционной системы набор пакетов и инструкции по установке могут несколько различаться. Дополнительную информацию вы можете получить, выбрав семейство вашей системы:

Вне зависимости от целевой ОС при инициализации кластера важно указать все параметры, соответствующие требованиям вашего окружения. Все доступные параметры инициализации описаны в документации initdb . В частности, обратите внимание на следующие значения параметров по умолчанию, которые имеет смысл переопределить в кластере:

По умолчанию при инициализации кластера программой initdb для всех подключений выбирается метод аутентификации trust , что не рекомендуется для производственных систем. Подробнее различные методы аутентификации описаны в Разделе 19.3.

16.1.1. Установка в системах CentOS и Red Hat Enterprise Linux

16.1.1.1. Выбор устанавливаемых пакетов

Для Red Hat Enterprise Linux и производных систем, таких как CentOS, Oracle Linux и Rosa Enterprise Linux Server дистрибутив Postgres Pro разделён на следующие пакеты:

Для серверных инсталляций установите как минимум следующие пакеты:

Для использования дополнительных расширений Postgres Pro вы должны также установить пакет postgrespro96-contrib .

По умолчанию файлы устанавливаются в каталог /usr/pgpro-9.6 . Убедитесь в том, что каталог /usr/pgpro-9.6/bin добавлен в вашу переменную окружения PATH .

16.1.1.2. Изменение базы данных по умолчанию

При установке пакета postgrespro96-server база данных по умолчанию не создаётся. Создаётся только системный пользователь postgres , который будет владельцем файлов баз данных и серверных процессов.

Чтобы создать базу данных по умолчанию, выполните вспомогательный скрипт pg-setup от имени root:

В этом случае для локальных подключений будет использоваться метод аутентификации peer , а для всех сетевых — ident . Подробнее доступные методы аутентификации описаны в Разделе 19.3.

16.1.1.3. Установка нескольких экземпляров Postgres Pro

Для запуска нескольких экземпляров сервера Postgres Pro с разными каталогами данных создайте копию или символическую ссылку файла /etc/init.d/postgresql с другим именем и соответствующие файлы в /etc/sysconfig и символические ссылки в каталогах уровней выполнения.

Если требуется, вы можете в одной системе одновременно установить серверы PostgreSQL , Postgres Pro и Postgres Pro Enterprise .

Имя файла sysconfig , считываемого скриптом в init.d , определяется именем этого скрипта.

16.1.2. Установка в системах на базе Debian

16.1.2.1. Выбор устанавливаемых пакетов

Для систем на базе Debian (Debian, Ubuntu, Astra Linux) дистрибутив Postgres Pro разделён на следующие пакеты:

Для серверных инсталляций требуется пакет postgrespro-9.6 (который зависит от postgrespro-contrib-9.6). Другие связанные с сервером пакеты, например пакеты с серверными языками или pg_probackup можно не устанавливать.

Для клиентских инсталляций требуются только пакеты postgrespro-libpq5 и postgrespro-client-9.6 . Если вы используете независимые приложения и вам не нужны стандартные клиентские утилиты, такие как psql , вы можете установить только пакет postgrespro-libpq5 .

Для систем Debian файлы для разработчиков разделены на следующие пакеты:

postgrespro-libpq-dev — пакет для разработчиков, требующийся для компиляции клиентских программ.

postgrespro-libecpg-dev — пакет для разработки программ, использующих ECPG, препроцессор встраиваемого SQL.

16.1.2.2. Изменение базы данных по умолчанию

Серверные пакеты для Debian создают базу данных по умолчанию во время установки сервера; также можно создать дополнительные наборы баз, называемые кластерами, используя скрипт pg_createcluster . Все эти кластеры управляются системными средствами (подсистемой SysVinit в старых дистрибутивах либо systemd в новых).

Скрипт pg_createcluster также позволяет импортировать существующие базы данных в систему управления службами Debian. Он пытается автоматически включить SSL для создаваемого кластера, а для этого необходимо, чтобы пользователь postgres был членом группы ssl-cert и в /etc/ssl/certs находился подходящий сертификат.

Дистрибутив Postgres Pro для систем на базе Debian использует нестандартную схему каталогов для кластера баз данных. По умолчанию файлы конфигурации и данные Postgres Pro размещаются в одном каталоге, однако политика Debian требует, чтобы файлы конфигурации находились в /etc . Таким образом в системах на базе Debian параметр PGDATA всегда указывает на подкаталог внутри /etc , где располагаются только postgresql.conf , pg_hba.conf и несколько других файлов конфигурации. Фактическое расположение данных определяется параметром data_directory в postgresql.conf .

16.1.2.3. Установка нескольких экземпляров Postgres Pro

Пакеты postgrespro-common и postgrespro-client-common образуют универсальную инфраструктуру, позволяющую запускать различные версии серверов PostgreSQL , Postgres Pro и Postgres Pro Enterprise одновременно и таким образом позволяют упростить обновление баз данных.

Дополнительную информацию об особенностях установки в инфраструктуре Debian можно найти в следующих страницах man: pg_createcluster(8) , pg_ctlcluster(8) , pg_conftool(1) , postgresql-common(5) , postgresqlrc(5) и user_clusters(5) .

В Debian реализован скрипт pg_wrapper(1) , позволяющий вызывать клиентские программы для нужной версии вашего продукта на базе PostgreSQL . С ним связаны ссылки /usr/bin/psql , /usr/bin/pg_dump и т. д. Если установлено несколько продуктов на базе PostgreSQL , он вызывает программы последних версий, если только явно не требуется другое.

Примечание

Дистрибутив для Debian с программами Postgres Pro содержат две копии утилиты pg_config , одну в пакете libpq-dev и ещё одну — в пакете postgrespro-server-dev-9.6 . Это связано с тем, что и клиентские программы, и серверные расширения используют эту утилиту для определения расположения файлов Postgres для разработки. Поэтому если вы планируете разрабатывать клиентские приложения и серверные расширения в одной системе, необходимо установить пакеты libpq-dev и postgrespro-server-dev-X.X от одного продукта Postgres.

Изменение пароля для обычного пользователя происходит таким же образом. Пользователь root может поменять пароль любому пользователю.

2. Как установить PostgreSQL в автозапуск?

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

3. Проверяем состояние сервера

4. Как запустить, остановить, перезапустить PostgreSQL?

service postgresql stop
Stopping PostgreSQL: server stopped
ok
service postgresql start
Starting PostgreSQL: ok
service postgresql restart
Restarting PostgreSQL: server stopped
ok

5. Как посмотреть какая версия PostgreSQL запущена?

5. Как создать пользователя в PostgreSQL?

Для этого существуют два метода..

Метод 1: Создаем пользователя в через PSQL шелл, командой CREATE USER.

CREATE USER ramesh WITH password ‘tmppassword’;
CREATE ROLE

Метод 2: Создаем пользователя в через шелл команду createuser.

/usr/local/pgsql/bin/createuser sathiya
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
CREATE ROLE

6. Как создать базу в PostgreSQL ?

Для этого существует 2 метода.

Метод 1: Создаем базу черезе PSQL шелл, с помощью команды CREATE DATABASE.

CREATE DATABASE mydb WITH OWNER ramesh;
CREATE DATABASE

Метод 2: Используем команду createdb.

/usr/local/pgsql/bin/createdb mydb -O ramesh
CREATE DATABASE

7. Получаем список всех баз в Postgresql?

8. Как удалить базу в PostgreSQL?

9. Пользуемся встроенным хелпом к командам

Команда \? отобразит строку помощи для команда PSQL. \h CREATE покажет хелп для всех команд который начинаются с CREATE.

10. Как получить список всех таблиц в базе данный в Postgresql?

11. Как узнать время выполнения запроса?

— после выполения данной команды каждый последующий запрос будет показывать время выполнения.

12. Как посмотреть список доступных функций в PostgreSQL ?

Для того чтобы получить список доступных функций, скажите \df+

13. Как отредактировать запрос к PostgreSQL в редакторе?

\e откроет редактор, в котором вы можете отредактировать запрос и сохранить его.

Теперь я хочу полностью удалить Postgres со своей машины, как я могу это сделать, я не хочу убивать процесс при каждой загрузке. Я просто хочу удалить Postgres.

Что такое командная строка?

Самый простой способ сделать это - открыть терминал и набрать:

Это также побудит вас удалить то программное обеспечение, которое зависит от Postgres, что в данном случае, по-видимому, вы хотели бы сделать.
Я лично не запускаю 9.10 или Postgres, поэтому вполне возможно, что Postgres устанавливает себя в несколько частей. В таком случае просто:

Вы получите список тех пакетов, которые установил Postgres. Затем просто используйте ту же команду «apt-get --purge remove . », но вместо просто postgresql, введите имя каждого пакета, разделенное пробелами, например:

Конечно, это зависит от списка установленных пакетов.

Я запускаю командную строку -> sudo apt-get --purge remove postgresql и похоже, что он был удален из моей ubuntu .. Я жду обновления, всегда при обновлении postgres показывает ошибку. Спасибо, в любом случае. Я думал, что это было правильно. Но сегодня я снова получил то же самое предупреждение, система аварийного завершения, что-то пытается обновить postgres, но этого не происходит, тогда отчет о аварийном завершении показал себя .. некоторые предложения? еще раз спасибо.

Шаги, которые работали на меня, Ubuntu 8.04.2 чтобы удалить postgres 8.3

Список всех пакетов, связанных с Postgres

Удалить все вышеперечисленное

Удалите следующие папки

Удалить пользователя postgres :

Спасибо! но я больше не использую Ubuntu. Сейчас я нахожусь на опенсе и сентос. В любом случае, спасибо, если у меня снова возникнут проблемы с postgres, ваш ответ будет полезен. Шаг 3 можно объединить в одну строку при использовании оболочки bash sudo rm -rf ,etc>/postgresql/ +1 за шаг 3 здесь. Это было ключевым для меня. Несколько раз пытался удалить пакеты, но в / var / lib / postgresql и / etc / postgresql осталась куча, которая вызывала последующие операции после переустановки.

Одна команда, чтобы полностью удалить postgresql в терминале sudo apt-get --purge remove postgresql\* . Обратите внимание, что эта команда удалит postgresql и все его компоненты.

Ответ выше работал для меня - Это не удаляло все, как говорится --purge

Спасибо Code Friendly , и я хочу поделиться тем, как я решил свою проблему.

Когда я обновлялся postgresql из приложения Synaptic, была установлена ​​версия postgresql 10. Поэтому на моем компьютере с Debian были установлены две версии postgresql (10 и 9.6). Postgresql 9.6 слушаю по порту 5432 . Postgresql 10 прослушивание порта 5433 вместо 5432.

Я удаляю версию 9.6 postgresql из приложения Synaptic, но проблема сохраняется (postgresql 9.6 больше не отображается в списке установленного программного обеспечения synaptic);

Но, выполнив следующую команду, мы увидим, что версия postgresql 9.6 не была полностью удалена:

С помощью следующей команды postgresql-9.6 полностью удален:
root@kali:

Затем я отредактировал файл /etc/postgresql/10/main/postgresql.conf , изменил номер порта на 5432 и проблема решена.

Я обнаружил, что причина была в том, что на моем компьютере с Debian установлены две (2) версии Ruby, версии (2.2 и 2.3).

То же самое, я удаляю версию ruby ​​2.2 из приложения synaptic, и проблема решена, metasploit запускается без проблем.

pg_ctl — инициализировать, запустить, остановить или управлять сервером PostgreSQL

Синтаксис

pg_ctl init[db] [ -D каталог_данных ] [ -s ] [ -o параметры-initdb ]

pg_ctl start [ -D каталог_данных ] [ -l имя_файла ] [ -W ] [ -t секунды ] [ -s ] [ -o параметры ] [ -p путь ] [ -c ]

pg_ctl stop [ -D каталог_данных ] [ -m s[mart] | f[ast] | i[mmediate] ] [ -W ] [ -t секунды ] [ -s ]

pg_ctl restart [ -D каталог_данных ] [ -m s[mart] | f[ast] | i[mmediate] ] [ -W ] [ -t секунды ] [ -s ] [ -o параметры ] [ -c ]

pg_ctl reload [ -D каталог_данных ] [ -s ]

pg_ctl status [ -D каталог_данных ]

pg_ctl promote [ -D каталог_данных ] [ -W ] [ -t секунды ] [ -s ]

pg_ctl kill имя_сигнала ид_процесса

В системах Microsoft Windows также:

pg_ctl register [ -D каталог_данных ] [ -N имя_службы ] [ -U имя_пользователя ] [ -P пароль ] [ -S a[uto] | d[emand] ] [ -e source ] [ -W ] [ -t секунды ] [ -s ] [ -o параметры ]

pg_ctl unregister [ -N имя_службы ]

Описание

pg_ctl — это утилита для начальной инициализации, запуска, остановки, повторного запуска и управления кластером баз данных PostgreSQL ( postgres ). Сервер можно стартовать в ручном режиме, но pg_ctl реализует задачи направления вывода в журнал и отсоединения от терминала и группы процессов, а также предоставляет удобный интерфейс остановки кластера.

Команда init ( initdb ) создаёт кластер баз данных PostgreSQL , то есть коллекцию баз данных, которой будет управлять один экземпляр сервера. Эта команда вызывает программу initdb . За подробностями обратитесь к initdb .

Команда stop останавливает сервер, работающий с указанным каталогом данных. Параметр -m позволяет выбрать один из трёх режимов остановки. Режим « Smart » запрещает новые подключения, а затем ожидает отключения всех существующих клиентов и завершения всех текущих процессов резервного копирования. Если сервер работает в режиме горячего резерва, восстановление и потоковая репликация будут прерваны, как только отключатся все клиенты. Режим « Fast » (выбираемый по умолчанию) не ожидает отключения клиентов и завершает все текущие процессы резервного копирования. Все активные транзакции откатываются, а клиенты принудительно отключаются, после чего сервер останавливается. Режим « Immediate » незамедлительно прерывает все серверные процессы, не выполняя процедуру штатной остановки. Этот вариант влечёт необходимость выполнить восстановление после сбоя при следующем запуске сервера.

Команда restart по сути производит остановку и последующий запуск сервера. Это позволяет изменить параметры командной строки postgres либо применить изменения в файле конфигурации, не вступающие в силу без перезапуска сервера. Если в командной строке при запуске сервера указывались относительные пути, команда restart может не выполниться, если вызвать pg_ctl не в том каталоге, где производился предыдущий запуск.

Команда reload просто посылает процессу сервера postgres сигнал SIGHUP , получив который он перечитывает свои файлы конфигурации ( postgresql.conf , pg_hba.conf и т. д.). Это позволяет применить изменения параметров в файле конфигурации, не требующие полного перезапуска сервера.

Команда promote указывает серверу, работающему в режиме резерва с указанным каталогом данных, выйти из этого режима и начать операции чтения/записи.

Команда kill передаёт сигнал заданному процессу. Прежде все это полезно в Microsoft Windows , где отсутствует встроенная команда kill . Для получения списка имён поддерживаемых сигналов воспользуйтесь ключом --help .

Команда register регистрирует сервер PostgreSQL в качестве системной службы в Microsoft Windows . Параметр -S позволяет выбрать тип запуска службы: « auto » (запускать службу автоматически при загрузке системы) или « demand » (запускать службу по требованию).

Режим unregister разрегистрирует системную службу в Microsoft Windows . Эта операция отменяет действие команды register .

Параметры

Способствует сбросу дампа памяти процесса при крахе сервера на платформах, где это возможно, поднимая мягкие ограничения, задаваемые для файлов дампа. Это полезно при отладке и диагностике проблем, так как позволяет получить трассировку стека отказавшего процесса сервера. -D каталог_данных
--pgdata= каталог_данных

Указывает размещение конфигурационных файлов кластера. Если этот ключ опущен, используется значение переменной окружения PGDATA . -l имя_файла
--log= имя_файла

Задаёт режим остановки кластера. Значением режим может быть smart , fast или immediate , либо первая буква этих вариантов. Если этот ключ опущен, по умолчанию выбирается режим fast . -o параметры
--options= параметры

Указывает параметры, которые будут передаваться непосредственно программе postgres . Ключ -o можно указывать несколько раз, при этом ей будут переданы параметры из всех ключей.

Задаваемые параметры обычно следует обрамлять одинарными или двойными кавычками, чтобы они передавались одной группой. -o параметры-initdb
--options= параметры-initdb

Указывает параметры, которые будут передаваться непосредственно программе initdb . Ключ -o можно указывать несколько раз, при этом ей будут переданы параметры из всех ключей.

Задаваемые параметры-initdb обычно следует обрамлять одинарными или двойными кавычками, чтобы они передавались вместе одной группой. -p путь

В режиме init этот параметр аналогичным образом задаёт размещение исполняемого файла initdb . -s
--silent

Задаёт максимальное время (в секундах) ожидания завершения операции (см. параметр -w ). По умолчанию действует значение переменной среды PGCTLTIMEOUT или, если оно не задано, 60 секунд. -V
--version

Выводит версию pg_ctl и прерывает выполнение. -w
--wait

Ждать завершения операции. Этот режим поддерживается (и действует по умолчанию) для команд start , stop , restart , promote и register .

Если операция не заканчивается за отведённое время (см. параметр -t ), программа pg_ctl завершается с ненулевым кодом выхода. Но заметьте, что при этом выполнение операции может продолжиться и в конце концов увенчаться успехом. -W
--no-wait

Не ждать завершения операции. Этот режим противоположен режиму -w .

Если ожидание отключено, запрошенное действие вызывается, но о его результате ничего не известно. В этом случае для проверки текущего состояния и результата операции потребуется обратиться к файлу журнала сервера или воспользоваться внешней системой мониторинга.

В предыдущих выпусках PostgreSQL этот режим действовал по умолчанию (кроме команды stop ). -?
--help

Вывести справку по команде pg_ctl и прервать выполнение.

Если некоторый параметр является допустимым, но не применим к выбранному режиму работы, pg_ctl игнорирует его.

Параметры, специфичные для Windows

Имя регистрируемой системной службы. Оно станет и собственно именем службы, и отображаемым именем. По умолчанию — PostgreSQL . -P пароль

Пароль для пользователя, запускающего службу. -S тип-запуска

Тип запуска системной службы. В качестве значения тип-запуска можно задать auto , demand или первую букву этих слов. По умолчанию выбирается тип auto . -U имя_пользователя

Имя пользователя, от имени которого будут запущена служба. Для доменных пользователей используйте формат DOMAIN\username .

Переменные окружения

Значение по умолчанию для максимального времени ожидания запуска или остановки сервера (в секундах). По умолчанию это время составляет 60 секунд. PGDATA

Размещение каталога хранения данных по умолчанию.

Для большинства режимов pg_ctl требуется знать расположение каталога данных; поэтому если не задана переменная PGDATA , параметр -D является обязательным.

pg_ctl , как и большинство других утилит PostgreSQL , также использует переменные окружения, поддерживаемые libpq (см. Раздел 33.14).

Список дополнительных переменных, влияющих на работу сервера, можно найти в postgres .

Файлы

Проверяя этот файл в каталоге данных, pg_ctl определяет, работает ли сервер в настоящий момент. postmaster.opts

Если файл существует в каталоге хранения данных, то pg_ctl (при restart ) передаст его содержимое в качестве аргументов postgres , если не указаны иные значения в -o . Содержимое файла также отображается при вызове в режиме status .

Примеры

Запуск сервера

Запуск сервера и ожидание момента, когда он начнёт принимать подключения:

Чтобы запустить сервер с использованием порта 5433 и без fsync , выполните:

Остановка сервера

Чтобы остановить сервер, выполните:

Ключ -m позволяет управлять тем, как сервер будет остановлен:

Повторный запуск сервера

Перезапуск сервера почти равнозначен остановке и запуску сервера за исключением того, что по умолчанию pg_ctl сохраняет параметры командной строки, которые были переданы ранее запущенному экземпляру. Таким образом, чтобы перезапустить сервер с теми же параметрами, с какими он был запущен, выполните:

Но если добавляется ключ -o , он заменяет все предыдущие параметры. Эта команда осуществит перезапуск с использованием порта 5433 и без fsync :

Вывод состояния сервера

Ниже представлен примерный вывод pg_ctl :

Во второй строке показывается команда, которая будет выполнена в режиме перезапуска.

Читайте также: