13 мар. 2012 г.

Удаленный запуск pg_dump

Оставлю себе краткую памятку, как организовать утаскивание дампа PostgreSQL-ной базы на удаленную машину.
  • на сервере с БД правим pg_hba.conf (обычно в /var/lib/pgsql/data/), добавляя строчку вида
 host    all        all    ts    md5
Иными словами, разрешаем подключения с указанного хоста ts с md5-авторизацией.
  • Если ходить будем пользователем postgres, то нужно задать ему пароль. 
root@pg:/var/lib/pgsql# su - postgres
postgres@pg:~$ psql
postgres=# ALTER USER postgres WITH PASSWORD 'mypass';
В противном случае создаем пользователя (интерактивная команда createuser от имени postgres).
  • Перезапускаем сервер БД
root@pg:/var/lib/pgsql# /etc/init.d/postgresql restart
  •  На удаленной машине устанавливаем клиентскую часть (для того, чтобы был доступен pg_dump)
 root@spl-ts:/# aptitude install postgresql-client
  •  в домашнем каталоге пользователя, от имени которого будет запускаться pg_dump, создаем файлик с правами 0600 следующего содержания
echo "pg:5432:*:postgres:mypass" > /home/keeper/.pgpass
chown keeper:keeper /home/keeper/.pgpass
chmod 0600  /home/keeper/.pgpass
  • Проверяем правильность настроек
keeper@ts:~$ psql -U postgres -h pg -w
psql (9.0.6, server 9.0.4-alt1)
Type "help" for help.

postgres=#