Ответ 1
Вы можете сделать "drop cluster" и "create cluster", который автоматически удалит все базы данных. Удалите все данные в каталоге $PGDATA и заново создайте кластер, используя:
initdb -D /usr/local/pgsql/data
Я беру ежедневные образы нашего окна разработки postgres, используя: pg_dumpall -h 127.0.0.1 -U user -w | gzip blah.gz
Так как 9.0 теперь является кандидатом на выпуск, я бы хотел ежедневно восстановить эту ежедневную резервную копию в поле postgres9.0rc1 для тестирования, однако я не уверен, как это сделать script. Есть ли какой-нибудь каталог, который я могу использовать для этого?
Вы можете сделать "drop cluster" и "create cluster", который автоматически удалит все базы данных. Удалите все данные в каталоге $PGDATA и заново создайте кластер, используя:
initdb -D /usr/local/pgsql/data
Вы можете использовать:
$ 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
Перемещение данных базы данных в другом месте может привести к тому же, что и удаление, и вы можете легко переместить его обратно, если вы передумаете (но обязательно будьте осторожны и создавайте резервные копии своих данных в любом случае).
1) Создайте каталог где-нибудь (например, /home/USERNAME/BACKUPDIR
).
2) В качестве суперпользователя перейдите в каталог данных postgresql (Fedora, например /var/lib/pgsql/
)
3) Переместите data
в папку резервного копирования: mv data /home/USERNAME/BACKUPDIR
4) Затем повторно создайте новую базу данных, используя, например, sudo postgresql-setup --initdb --unit postgresql