Октябрь 20, 2017, 09:37:57

Автор Тема: Про выгрузку информационной базы в архив  (Прочитано 8772 раз)

saim

  • Administrator
  • Пользователь
  • *****
  • Сообщений: 88
  • Карма: +2/-1
    • Просмотр профиля
Прочитал в умной книжке по 1С ("Профессиональная разработка в среде 1С 8"), что в случае некоторых сбоев в информационной базе при выгрузке стандартным способом Администрирование->Выгрузка информационной базы в *.dt, можно потерять часть информации, т.к. она просто не выгрузится в архив. Рекомендуется sql-базы бэкапить средствами сиквеля, а файловые - средствами файлового архиватора.

ЗЫ: Кто ленился писать скрипт пакетной выгрузки базы для планировщика - Вам как раз удобный вариант, тупо RAR-ить из батника :)
Пишу программы под заказ. Все редакции платформы 1С:Предприятие 8.

1clinux

  • Administrator
  • Опытный пользователь
  • *****
  • Сообщений: 162
  • Карма: +7/-0
  • Fire come with me ...
    • Просмотр профиля
    • Вопросы и ответы по 1С на базе Linux
    • Email
Re: Про выгрузку информационной базы в архив
« Ответ #1 : Сентябрь 29, 2010, 06:26:58 »
> ЗЫ: Кто ленился писать скрипт пакетной выгрузки базы для планировщика - Вам как раз удобный вариант, тупо RAR-ить из батника Улыбающийся

Боюсь зубы сломают зарарить базу postgreSQL в виде файлов :-)

а ещё к теме был у меня случай надо было перенести базу 8.1 (в файловом режиме) ... начал выгружать в dt и процесс оказался бесконечным и в конце вылетала 1С с ошибкой "Недостаточно памяти" и файл оставался размером куча Гигабайт ... потратил на разбор полёта несоколько дней ... проверял базу встроенными методами в 1С - ноль эффекта долбится в какие-то не найденые записи и создаёт их до беспредела ...
в конечном итоге люди добрые подсказали, что в каталоге bin есть файлик chdbfl.exe - сделал проверку файла базы 1С81.cd и всё начало выгружаться нормально ...

saim

  • Administrator
  • Пользователь
  • *****
  • Сообщений: 88
  • Карма: +2/-1
    • Просмотр профиля
Re: Про выгрузку информационной базы в архив
« Ответ #2 : Октябрь 02, 2010, 03:46:32 »
> ЗЫ: Кто ленился писать скрипт пакетной выгрузки базы для планировщика - Вам как раз удобный вариант, тупо RAR-ить из батника Улыбающийся

Боюсь зубы сломают зарарить базу postgreSQL в виде файлов :-)

Я строкой выше обмолвился, что рарить файловую версию.


конечном итоге люди добрые подсказали, что в каталоге bin есть файлик chdbfl.exe - сделал проверку файла базы 1С81.cd и всё начало выгружаться нормально ...

Знаем, пользуемся, но редко помогает. Если база еще загружается в пользовательский режим, правильнее будет выгрузить данные в xml типовой обработкой ВыгрузкаЗагрузкаДанныхXML. И затем загрузить в чистую базу той же конфигурации.
Пишу программы под заказ. Все редакции платформы 1С:Предприятие 8.

1clinux

  • Administrator
  • Опытный пользователь
  • *****
  • Сообщений: 162
  • Карма: +7/-0
  • Fire come with me ...
    • Просмотр профиля
    • Вопросы и ответы по 1С на базе Linux
    • Email
Re: Про выгрузку информационной базы в архив
« Ответ #3 : Октябрь 02, 2010, 03:51:28 »
Спасибо за идею про XML - отличная идея ... а с базами в несколько десятков гигабайт, при выгрузке в XML - размер файла будет катастрофический - система это выдерживает?

saim

  • Administrator
  • Пользователь
  • *****
  • Сообщений: 88
  • Карма: +2/-1
    • Просмотр профиля
Re: Про выгрузку информационной базы в архив
« Ответ #4 : Октябрь 02, 2010, 04:14:59 »
Спасибо за идею про XML - отличная идея ... а с базами в несколько десятков гигабайт, при выгрузке в XML - размер файла будет катастрофический - система это выдерживает?

XML всё стерпит, тем более, что в случае с выгрузкой-загрузкой используется модель sax, которая читает файл последовательно, подобно плееру DVD-фильмов.
Вообще там много тонкостей, но в целом никто не запрещает раздельно выгрузить справочники, документы и регистры сведений (остальные регистры выгружать не рекомендуется, загрузка будет тяжелой).
Повторюсь, это спасательный круг, а не ежедневный моцион, после такой процедуры данные тряхнёт по полной (корректировки регистров, невосстановленные последовательности выйдут боком).
Пишу программы под заказ. Все редакции платформы 1С:Предприятие 8.

1clinux

  • Administrator
  • Опытный пользователь
  • *****
  • Сообщений: 162
  • Карма: +7/-0
  • Fire come with me ...
    • Просмотр профиля
    • Вопросы и ответы по 1С на базе Linux
    • Email
Re: Про выгрузку информационной базы в архив
« Ответ #5 : Октябрь 02, 2010, 07:49:24 »
"я вас не узнаю в новом аватаре :-)"  ;D

Ну техника хорошая, просто помню как грузил в dbf и в строковые, на сколько помню только plus мог создавать компоненты последовательного чтения и записи ... (я про 7.7)

к стати реально хорошая схема для односторонней синхронизации справочников ... (часто требуется в моей практике)
« Последнее редактирование: Октябрь 02, 2010, 07:52:13 от 1clinux »

saim

  • Administrator
  • Пользователь
  • *****
  • Сообщений: 88
  • Карма: +2/-1
    • Просмотр профиля
Re: Про выгрузку информационной базы в архив
« Ответ #6 : Октябрь 03, 2010, 10:05:15 »

к стати реально хорошая схема для односторонней синхронизации справочников ... (часто требуется в моей практике)

СтОит посмотреть типовую конфигурацию "Конвертация данных 2" для 1С:Предприятие 8.
Пишу программы под заказ. Все редакции платформы 1С:Предприятие 8.

SeaSun

  • Новичок
  • *
  • Сообщений: 5
  • Карма: +1/-0
    • Просмотр профиля
    • Email
Re: Про выгрузку информационной базы в архив
« Ответ #7 : Октябрь 14, 2010, 07:27:17 »
Файлик Bat Для архива 1с Малоли кому пригодиться
cd backup
"Путь к архиватору"  a -ep1 -v1g -rr5 -y -t -m5 -agYYYY_MM_DD Путь_КУДА_сохранять "Путь_ЧТО_Архивить"

данный файлик архивит базу полностью всю папку баз при этом выставляя в имя архива число когда он это делает(очень удобно потом нарезать на диски) так же он делит архивы на части по 1ГБ если архив больше... заметка скорее всего для себя но вдруг кому пригодиться... вам останеться его только запихнуть в планировщик и подставить свои значения



SeaLancer

  • Опытный пользователь
  • ***
  • Сообщений: 115
  • Карма: +1/-0
    • Просмотр профиля
Re: Про выгрузку информационной базы в архив
« Ответ #8 : Декабрь 10, 2010, 10:51:06 »
Собственно тоже n--ное количество слов о бекапе, может кому пригодится. Сам с линухой близко знаком только пару месяцев, так что на абсолютную корректность не претендую (однако все работает :-):
Ubuntu 10.04x64 + Postgres 8.3.8 и 8.4.
В куче источников, весьма однообразных по содержанию, рекомендуется бекап 1С на PostgreSQL делать через pg_dump, а вот восстанавливать через createdb + psql. Так вот, у меня нифига такая связка не работает. Т.е. бекапится, восстанавливается, но при входе выдает ошибку "У пользователя нет ролей для запуска информационной базы" (как то так, причем и у вновь создаваемых тоже). Поддержка 1С молчала как обычно, потому ковырялся сам. Вот результат:
1) У Гилева вычитал, что можно пользоваться для восстановления pg_restore, почитал, поиграл  с параметрами, в итоге команда выглядит так:
pg_restore -h имя_сервера -U postgres -c -d имя_базы файл_архива
2) Наковырял скрипт и подогнал под себя, проверил чтобы все работало:

#!/bin/bash
#расположение директории с dump'ами
DIR="/var/lib/pgsql/backups/current"
mkdir -p $DIR
#путь к log файлу
LOG="/var/lib/pgsql/db_bkp.log"
touch $LOG
TIMENAME=`date +%d.%m.%Y_%H-%M`
db=`psql -l | sed -n 4,/\eof/p | grep -v rows\) | grep -v -e 'template[0|1]' -e ':' -e '_demo' | awk {'print $1'}`
for n in $db; do
        TIMEDUMP=`date '+%T %x'`
        echo "backup and vacuum has been done at $TIMEDUMP : $TIMENAME on db: $n" >> $LOG
        vacuumdb -z $n >/dev/null 2>&1
        pg_dump $n -Fc -b | gzip -c > "$DIR/db_bkp-$n-$TIMENAME.gz"
done

3) Запихнул в Хрон под postgres.

4) + от имени root ещё одно задание - копирую бекапы на другой сервачок:
#!/bin/bash
# Монтируем удаленное хранилище
mount -t cifs //192.168.1.28/h$ /var/lib/pgsql/backups/archive/ -o username=admin,password=qwerty,codpage=cp866,iocharset=utf8

# Копируем архивы, дата изменения в течении суток
find /var/lib/pgsql/backups/current -name "*.gz" -mtime -1 -exec cp {} /var/lib/pgsql/backups/archive/BKP/MSKDB1 \;

# Удаляем архивы старше 7 дней
find /var/lib/pgsql/backups/current -name "*.gz" -mtime +7 -delete

# Размонтируем систему
umount /var/lib/pgsql/backups/archive/