
PostgreSQL и правильный дамп pg_dump’ом 4
Мне понадобилось перенести базу PostgreSQL с одной машины на другую. Поискав на просторах интернета никаких дельных советов, основанных на опыте я не нашёл. В итоге после проб и ошибок переноса базы Сервера Приложений iBank2 получилось несколько простых шагов. 6
Процедура переноса базы с одной машины на другую(в нашем случае с рабочей на тестовую например для попытки обновления также подходит для создания и восстановления резервных копий)
Снимаем дамп:
pg_dump -h 127.0.0.1 -U postgres -w --file=ib_dump -С -b -Fc -v ib
- где ib - название базы данных
- ib_dump - файл в который сохраняется дамп
Восстановление базы:
удаляем базу если база с таким названием уже существовала(и она не нужна)
psql -h 127.0.0.1 -U postgres -w -d ib --command="drop database ib"
создаем пользователя, владельца базы(если его нет):
psql -h 127.0.0.1 -U postgres -w -d ib --command="CREATE USER ib WITH PASSWORD '123456'"
- где ib - имя пользователя
- 123456 - пароль
Создаем табличное пространство(если его не было)
psql -h 127.0.0.1 -U postgres -w -d ib --command="CREATE TABLESPACE ib LOCATION '/path/'"
- где ib название табличного пространства
- /path/ - путь к каталогу(каталог должен быть пустым и с соответствующими правами)
Накатываем дамп:
pg_restore -h 127.0.0.1 -U postgres -w -Fc -C -v --dbname=template1 ib_dump