Приветствую всех.
Поставил значит 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) Козьма Прутков