diff --git a/databases/src/postgresql.md b/databases/src/postgresql.md index 4560512..7053916 100644 --- a/databases/src/postgresql.md +++ b/databases/src/postgresql.md @@ -100,14 +100,56 @@ sudo systemctl restart postgresql.service sudo service postgresql restart ``` +## Создание бэкапа + +Создание бэкапа `tar` архива: + +1. Выгрузка только схемы БД + +```sh +pg_dump -h 192.168.1.2 -U user -W -d dbname -sn schemename -F t -f db.tar +``` + +или + +```sh +pg_dump --host=192.168.1.2 --username=user --password --dbname=dbname --schema-only --schema=schemename --format=tar --file=db.tar +``` + +2. Выгрузка только данных указанной схемы БД + +```sh +pg_dump -h 192.168.1.2 -U user -W -d dbname -an schemename -F t -f db.data.tar +``` + +или + +```sh +pg_dump --host=192.168.1.2 --username=user --password --dbname=dbname --data-only --schema=schemename --format=tar --file=db.data.tar +``` + ## Восстановление бэкапа -Восстановление бэкапа из файла `*.sql`: +1. Восстановление бэкапа из файла `*.sql`. ```sh psql -f backup.sql ``` +2. Восстановление из `tar` архива. + +Экспортировать переменную `PGPASSWORD` с указанным паролем для подключения к БД: + +```sh +export PGPASSWORD=password +``` + +Выполнить импорт данных из архива: + +```sh +pg_restore -h 192.168.1.2 -U user -d dbname -v "/path/to/tar/archive" +``` + ## Возможные ошибки При подключении к удалённой БД может возникнуть ошибка: