Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Backup PostgresSQL  (Прочитано 2095 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Polumrak

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Backup PostgresSQL
« : 29 Июль 2015, 09:29:19 »
Доброго времени суток, уважаемые форумчане!

Случилось попасть в ситуацию, из которой без вашей помощи боюсь не вылезу. ;)

Итак мы имеем сервер на Win2008R2 с установленным PosgreSQL, на котором крутится две базы 1С и машинку на Убунточке 14.04, на которой стоит pgAdmin и есть доступ к серверу с базами по сети.
Вопрос простой до безобразия - как на машине с Убунтой настроить backup баз с сервера?

Что делал я:
pg_basebackup -h 192.168.0.101 -D ~/backup
Что мне отвечают:
could not connect to server: FATAL:  no pg_hba.conf entry for replication connection from host "192.168.0.193", user "root"
Мои попытки настроить все это дело не увенчались успехом. Успел даже положить сервер. 8)

Спасибо!
 
Ubuntu 10.04 -> Ubuntu 12.04 -> Ubuntu 14.04 -> Ubuntu 16.04

Оффлайн shushpanchik

  • Активист
  • *
  • Сообщений: 296
    • Просмотр профиля
    • SKSS - "Современные компьютерные сети и системы"
Re: Backup PostgresSQL
« Ответ #1 : 29 Июль 2015, 22:49:45 »
(Нажмите, чтобы показать/скрыть)
Префикс - это идентифиактор принадлежности базы к владельцу. Я у себя так помечаю какому предпринимателю принадлежит база, ибо на сервере их несколько (предпринимателей). Или если фирма одна а баз несколько, например производство, реализация и т.д.

Скрипт ложим в /var/lib/pgsql. Делаем его выполняемым, владелец - postgres:postgres.
В крон - задание на выполнение от имени postgres.

Скрипт с боевого сервера 1С, работает как часы. Вот только скрипт писан под сервер на Ubuntu. Думаю будет не особо сложно его допилить чтобы он забирал базу по сети с Win-сервера.

Зы. Я привел свой полностью рабочий вариант, возможно он Вам пригодится. Может появятся ГУРУ, которые помогут со вторым вопросом - запустить всю эту канитель в том варианте, в котором она работает у Вас.

Хотя, что-то мне подсказывает, что на Win-сервере есть а-ля PgAdmin. И с помощью пакета утилит что идут с PostgreSQL для оффтопика можно делать бэкапы этими средствами. Например в MSSQL бэкапы делаются с пол-пинка. Не удивлюсь если тут точно так же. Если это так - все что Вам нужно будет сделать - это настроить по крону копирование с оффтопика на Ubuntu уже готовых баз.
« Последнее редактирование: 29 Июль 2015, 22:53:34 от shushpanchik »

Оффлайн Polumrak

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: Backup PostgresSQL
« Ответ #2 : 30 Июль 2015, 09:17:29 »
Все заработало!
С меня спасибо. =)

Остался последний, самый глупый вопрос:

Добавил в crontab вот такую вот строку
SHELL=/bin/sh
15 3 * * * /home/sheiss/Scripts/pg_backup.sh > /dev/null 2>&1

Скрипт не запустился. Есть мысль, что нужно его допилить до вот такого состояния
SHELL=/bin/sh
15 3 * * * sh /home/sheiss/Scripts/pg_backup.sh > /dev/null 2>&1

Я мыслю в правильном направлении?
« Последнее редактирование: 30 Июль 2015, 09:30:01 от Polumrak »
Ubuntu 10.04 -> Ubuntu 12.04 -> Ubuntu 14.04 -> Ubuntu 16.04

Оффлайн shushpanchik

  • Активист
  • *
  • Сообщений: 296
    • Просмотр профиля
    • SKSS - "Современные компьютерные сети и системы"
Re: Backup PostgresSQL
« Ответ #3 : 30 Июль 2015, 09:59:21 »
Не совсем. Этот скрипт нужно запукать от имени postgres. Ибо строка в скрипте
Цитировать
pg_dump -U postgres $DB | gzip > $PREFIX$DATESTART$DB.pgsql.gz
выполняется от того же имени.

Лично я делаю вот как.
Создаю файл задания
touch /etc/cron.d/pgsql_backup
с таким содержимым:
0 3 * * * postgres /var/lib/postgresql/pgsql_backup.sh
и
service cron restart

Результат - срабатывание каждую ночь в 3:00. В зависимости от веса базы скрипт будет работать некоторое время. Мою базу он крутит 4-5 минут. Именно поэтому старт в 3 часа ночи. Но это уже как Вам Ваша религия позволяет, такое время старта и ставьте.  ;)

Зы. Если у Вас скрипт нормально отработал, лёжа в другом месте - значит подправьте мои пути к скрипту на свои. У меня некоторые моменты он не хотел отрабатывать пока не привел к общему знаменателю владельцев папок и файлов.
« Последнее редактирование: 30 Июль 2015, 10:00:59 от shushpanchik »

Оффлайн Polumrak

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: Backup PostgresSQL
« Ответ #4 : 30 Июль 2015, 12:47:26 »
Итак, чтобы как то понять, будет ли у меня работать расписание, добавил скрипт test.sh
echo "Hello World"в директорию /ets/cron.d:
SHELL=/bin/bash
40 12 * * * sheiss /home/sheiss/Scripts/test.sh
Перезапустил службу и стал ждать. И ничего не произошло. Совсем.

Так же под пользователем попробовал добавить расписание командой crontab -e:
SHELL=/bin/bash
43 12 * * * bash /home/sheiss/Scripts/test.sh
И так же ничего не произошло.
Не могу понять, почему так. Кажется все правильно делаю и ничего не пропустил.
Время ставил через пять - шесть минут от текущего момента.
Ubuntu 10.04 -> Ubuntu 12.04 -> Ubuntu 14.04 -> Ubuntu 16.04

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13750
    • Просмотр профиля
Re: Backup PostgresSQL
« Ответ #5 : 30 Июль 2015, 13:06:51 »
А что Вы от него ждали? чтобы он Вас флажком "Hello world" помахал?
Он-то, я уверен, выполняется, просто Вы не видите выхлоп, потому как не указали куда выводить
Принимаю благодарности в WMR и WMZ на кошельки:
R158160676909 и Z313280060764

Оффлайн Polumrak

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: Backup PostgresSQL
« Ответ #6 : 30 Июль 2015, 13:19:05 »
А что Вы от него ждали? чтобы он Вас флажком "Hello world" помахал?
Он-то, я уверен, выполняется, просто Вы не видите выхлоп, потому как не указали куда выводить

Упс.

Добавить >dev/null
Или

> /dev/pts/1
?

« Последнее редактирование: 30 Июль 2015, 13:25:07 от Polumrak »
Ubuntu 10.04 -> Ubuntu 12.04 -> Ubuntu 14.04 -> Ubuntu 16.04

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13750
    • Просмотр профиля
Re: Backup PostgresSQL
« Ответ #7 : 30 Июль 2015, 13:28:31 »
> /home/sheiss/Scripts/test.logа сам  скрипт ещё и
dateБудет почти полноценный лог )))
Принимаю благодарности в WMR и WMZ на кошельки:
R158160676909 и Z313280060764

Оффлайн Polumrak

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: Backup PostgresSQL
« Ответ #8 : 30 Июль 2015, 14:03:55 »
Иииииии...

Всем спасибо! Все работает! А мне пора учить мат часть.)))

В итоге в Кронтабе появилась вот что:

SHELL=/bin/bash
0 14 * * * sheiss bash /home/sheiss/Scripts/test.sh > /home/sheiss/Scripts/test_`date +\%y\%m\%d`.log

И да, в test.sh я тоже добавил date. 8)
Ubuntu 10.04 -> Ubuntu 12.04 -> Ubuntu 14.04 -> Ubuntu 16.04

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13750
    • Просмотр профиля
Re: Backup PostgresSQL
« Ответ #9 : 30 Июль 2015, 14:23:33 »
пока разбираетесь с матчастью предлагаю расширить строчку
SHELL=/bin/bash
0 14 * * * sheiss bash /home/sheiss/Scripts/test.sh > /home/sheiss/Scripts/test_`date +\%y\%m\%d`.log 2>test_`date +\%y\%m\%d`.err
Для чего это - сами изучите ;)
Принимаю благодарности в WMR и WMZ на кошельки:
R158160676909 и Z313280060764

Оффлайн shushpanchik

  • Активист
  • *
  • Сообщений: 296
    • Просмотр профиля
    • SKSS - "Современные компьютерные сети и системы"
Re: Backup PostgresSQL
« Ответ #10 : 30 Июль 2015, 19:40:45 »
Если Вы будете использовать мой скрипт - все эти танцы с бубнами типа
задача крона > выхлоп бла-бла-бла
просто не нужны. Скрипт сам пишет логи. Достаточно просто описания самой задачи для крона в том виде в котором я выше показывал. Причем без всех там SHELL и т.д. Только само задание. Во сколько выполнить, от чьего имени, путь к скрипту.
« Последнее редактирование: 30 Июль 2015, 19:44:45 от shushpanchik »

 

Страница сгенерирована за 0.079 секунд. Запросов: 25.