1C 8-ка и Backup

Приветствую всех.
Поставил значит 1С 8.1 на PostgeSQL
все рады и счастливы.
Вопрос резервного копирования остается открытым.
Нашел скрипт в интернете
==================================================
#!/bin/bash
# Location of the backup logfile.
logfile="/backupbd/logfile.log"
# Location to place backups.
backup_dir="/backupbd/1c"
touch $logfile
timeslot=`date +%H-%M`
databases=`psql -h localhost -U postgres -q -c "\l" | sed -n 4,/\eof/p | grep -v rows\) | awk {'print $1'}`

for i in $databases; do
timeinfo=`date '+%T %x'`
echo "Backup and Vacuum complete at $timeinfo for time slot $timeslot on database: $i " >> $logfile
/usr/bin/vacuumdb -z -h localhost -U postgres $i >/dev/null 2>&1
/usr/bin/pg_dump $i -h 127.0.0.1 | gzip > "$backup_dir/postgresql-$i-$timeslot-database.gz"
done
#-------------------------------------------------

при запуске его руками от пользователя postgres запрашивает пароль.
И запрашивает его не 1 раз.
пробывали -W и --password в скрипт вставлять.
эффекта ноль.

Спасибо.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Если надо

Если надо просто не вводить пароль руками, то это довольно просто - установите переменную PGPASSWORD в самом скрипте, например добавив вначало строку:

PGPASSWORD=пароль

А вот за то, что вышеозначенный скрипт делает ПРАВИЛЬНУЮ копию БД я не поручусь.
-----------------------------------------------------------------------------------
"ls /" (C) Козьма Прутков

Есть пример

Есть пример правильного скрипта?
Что в этом скрипте конкретно не правильно?

Непонятно

Непонятно зачем делается вакуум перед бакапом - в бакап всё-равно только актуальные данные попадут - индексов и удалённых данных там не будет. Зачем делается в цикле копия каждой БД тоже непонятно. Есть ведь pg_dumpall, который бакапит сразу всё.

А создавая отдельные копии БД можно ведь и без пользователей остаться! Пользователи-то хранятся в БД постгрес, а не в той БД где 1C.

-----------------------------------------------------------------------------------
"ls /" (C) Козьма Прутков

Я бы не

Я бы не советовал делать бэкап БД 1С средствами СУБД. Лучше делать это средствами самой 1С по расписанию. Для сравнения БД в ~ 7Gb средствами 1С укладывается в ~400Mb. Заметна разница? Делается это так (пример):
D:\PROGRA~1\1cv81\bin\1cv8.exe config /S\ /N /P /DumpIB, где:
- ip-адрес или сетевое имя хоста сервера 1С;
- имя информационной базы 1с;
- имя пользователся 1С с полными правами;
- соотвественно пароль;
/DumpIB - куда выгружаем (можно хоть на сетевую шару с указанием ip-адреса).

Только желательно перед запуском выгрузки 1С перезапустить сервис srv1cv81, что бы сбросить "зависшие" пользовательские соеденения. Бывает такое.
У меня сервер 1C под alt linux 4 server, а выгрузку запускаю на машинке с alt linux 4 desktop, запуская 1с через wine. А потом просто полученную выгрузку закатываю на dvd-диск.

Простите, но я

Простите, но я не поверю, что 7G укладывается в 400M. Так не бывает.
И ведь никто не мешает перенаправить вывод pg_dump в gzip и получить сразу сжатую копию, что наверное и делает сама 1С.

А вот что бакап лучше делать средствами 1С, если они есть - я пожалуй соглашусь.
Соглашусь, потому что такой бакап должен получиться ЛОГИЧЕСКИ целостным, а не просто ФИЗИЧЕСКИ целостным как в случае бакапа через pg_dump.
-----------------------------------------------------------------------------------
"ls /" (C) Козьма Прутков

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023