Повністю скинути PostgreSQL за замовчуванням?


17

Питання

Чи є спосіб повністю скинути встановлення PostgreSQL в Linux, щоб він знаходився в тому ж стані, що і коли я його встановив?

Ідея

Я розглядав

rm -rf /var/lib/pgsql/*
rm -rf /var/lib/pgsql/backups/*
rm -rf /var/lib/pgsql/data/*

але, можливо, це не рекомендований метод.

Призначення

Це було б зручно, щоб позбутися залишених кадрів від попередніх програм, які його використовували.


Відповіді:


5

Це має зробити це - просто переконайтеся , що першим , що поточна конфігурація фактично робить зберігати файли в цих каталогах.

Як тільки це буде зроблено, знову ініціюйте базу даних:

sudo -U pgsql initdb

1
Ні, будь ласка, не варто. Принаймні, Ubuntu це спричинить жахливий безлад, оскільки він очікує, що ви будете використовувати власні інструменти для обгортки.
Крейг Рінгер

1
Це робить? Ну, є ще одна причина використовувати якусь іншу систему, тоді ... Особисто я би проголосував за FreeBSD, але кожен за свій.
Jenny D

@Craig: який би цей безлад створив би? Я щойно використовував цей метод на Ubuntu, і мені це здається прекрасним . Ви додасте детальну відповідь?
півзахисник

1
@halfer Для початку з postgresql.conf та pg_hba.conf звичайно не буде місця, де очікуються сценарії ububtu. Або вони будуть ігнорувати створені initdb і продовжувати використовувати старі.
Крейг Рінгер

що робити, якщо це віддалена база даних, до якої ми підключились, а не та, яку ми ініціалізували локально?
anon58192932

24

Все залежить від того, як вона була встановлена.

Ubuntu, з пакетів (вбудований або apt.postgresql.org)

Використовуйте pg_wrapper. Дивіться документи Ubuntu для PostgreSQL . Ви хочете, щоб pg_dropclusterусі існуючі кластери Pg, а потім pg_createclusterчисті нові.

Ви НЕ просто видалити реж даних і повторного initdb.

Вбудовані пакети CentOS / RH / Fedora

У мене це не встановлено і зараз не можу легко перевірити. З пам'яті я думаю, що це безпечно просто зупинити сервер і видалити дані dir.

CentOS / RH / Fedora, пакети yum.postgresql.org

Див /usr/share/doc/postgresql??-?.?.?/README.rpm-dist.

Зупиніть сервер systemctlабо команду serviceобгортки, видаліть дані dir, а потім запустіть /usr/pgsql-9.3/bin/postgresql93-setup initdb(коригуючи шляхи відповідно до вашої версії).

Будь-який дистрибутив, від інсталятора EDB

Зупиніть сервер, видаліть дані dir та initdbновий кластер. Див. Документи про встановлення.

З джерела

Зупиніть сервер, видаліть дані dir, повторно initdb.

ОС X

Домашня мова: brew uninstall postgresql; brew cleanup; brew install postgresql

Postgres.app? Установник EDB? MacPorts?

Знайдіть пиво. Випийте пиво. Повторіть. Якщо біль не зникне, отримайте щось сильніше.

Windows

  • Стоп-сервіс
  • Видалити дані реж
  • повторно запустити initdb, використовуючи runas.exeв якості користувача postgres (до 9.2) або NETWORKSERVICE(9.2+). Або просто змінити право власності згодом.

1
Для ОС X видалення та очищення пива не торкаються моїх даних dir /usr/local/var/postgresql@9.5. (він видаляє додаток у /usr/local/opt/postgresql@9.5, зверніть увагу на "opt" не "var") "rm -rf /usr/local/var/postgresql@9.5" потрібен був перед перевстановленням.
Кертіс Яллоп

4

Хіба не найкраще просто видалити та перевстановити?

Таким чином ви отримаєте останню версію та оновите будь-які залежності по дорозі.

Виконати: sudo apt-get --purge видалити postgresql

Потім: sudo apt-get install postgresql


1
Це не видалило існуючих користувачів DB + (станом на Postgres 9.5)
Себастьян Вагнер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.