Как удалить все базы данных на Postgres? - PullRequest
21 голосов
/ 16 сентября 2010

Я ежедневно беру заднюю часть нашей разработки postgres, используя: pg_dumpall -h 127.0.0.1 -U пользователь -w | gzip blah.gz

Поскольку 9.0 теперь является кандидатом на выпуск, я бы хотел восстанавливать эту ежедневную резервную копию на ежедневной основе в ящик postgres9.0rc1 для тестирования, однако я не уверен, как многократно писать его. Есть ли какой-нибудь каталог, который я могу использовать для этого?

Ответы [ 3 ]

17 голосов
/ 16 сентября 2010

Вы можете сделать «отбросить кластер» и «создать кластер», которые автоматически сотрут все базы данных.Сотрите все данные в вашем каталоге $ PGDATA и заново подключите кластер, используя:

initdb -D /usr/local/pgsql/data
14 голосов
/ 27 июля 2013

Вы можете использовать:

$ pg_dropcluster 9.2 main
$ pg_createcluster 9.2 main
$ pg_ctlcluster 9.2 main start
$ pg_restore -f your_dump_file

, где 9.2 = cluster version и main = cluster name

0 голосов
/ 10 мая 2017

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

1) Создайте каталог где-нибудь (например, /home/USERNAME/BACKUPDIR).

2) В качестве суперпользователя перейдите в каталог данных postgresql (например, Fedora /var/lib/pgsql/)

3) Переместите data в папку с резервной копией: mv data /home/USERNAME/BACKUPDIR

4) Затем заново создайте новую базу данных, например, с помощью. sudo postgresql-setup --initdb --unit postgresql

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...