gifts2017

Автосохранение базы данных DBF с работающими пользователями.

Опубликовал TSvetlakova2008 в раздел Администрирование - Архивирование (backup)

Исполняемые файлы выполняющие, копирование базы данных, в другой каталог + создание архива базы данных (без изгнания пользователей из базы).

Навеяно и доработано под собственные нужды статьей Владимира Козлова,   Маленькие хитрости администрирования баз данных программ семейства "1С:Предприятие" .

  Во первых понравилась идея никого не выгоняя из базы сделать копию, так как специфика нашего предприятия предполагает круглосуточное использование базы.

  Во вторых, архивация производится в zip формате (архиватор прилагается), так что даже ламер в мое отсутсвие сможет восстановить базу из копии  (копия имеет в своем названии дату соего создания)   стандартными средствами 1С (Конфигуратором).

  В третьих создается полностью работоспособная версия программы (надо ее только проиндексировать) с одним пользователем для целей программирования/администрирования. 

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

Недостатки такого архивирования:

1) если пользователе много и они активно работают, то будут жаловаться на захват таблиц. (Лучше проводить архивирование во время обеда или ночью);

2) Ели кто-то зашел монопольно, то копия сделена не будет.

Файлы необходимо поместить в каталог, в котороый будут помещаться архивы, и прописать их в планировщик задач. Предварительно заменив C:\1CV\NEW\ на путь к вашей базе,копия создается в  каталог  temp (можете поменять).

 Кому в имени архива нужно еще и время в упаковке сделать :

@echo off
set mytime=%time%
set mytime=%mytime:~0,2%%mytime:~3,2%%mytime:~6,2%

for /F "tokens=1-4 usebackq delims=. " %%1 in (`date /t`) do set mydate=%%1%%2%%3%%4
ren s.zip new%mydate%%mytime%.zip

Скачать файлы

Наименование Файл Версия Размер
- 88
.1252656075 48,19Kb
25.09.09
88
.1252656075 48,19Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Алексей Коробов (WiseSnake) 11.09.09 13:03
Уже 10 раз это обсуждалось.
От такого сохранения жди беды!

Никому не советую использовать подобное сохранение !!!!!!!!!!!!!!!!!!!!!!!!

И кто такой Владимир Козлов и что за статья?
2. Александр Рытов (Арчибальд) 11.09.09 13:20
3. Марина Афанасьева (buh356) 11.09.09 15:00
Кстати мы на работе давно используем
Архивацию базы в сетевом режиме, так практически невозможно
выгнать 2 десятка пользователей из сети
Используем обработку скачанную по-моему здесь же.

Обработка называется Снимок базы в реальном времени.
1.Используется компонента Nidan (для архивации).
Файл addin.dll копируется в каталог программы 1С.

Пользуемся давно и бе проблем, никаких сбоев
4. Александр Зубцов (iov) 11.09.09 16:03
(3) Ну архивироавть то можно но вот что и как заархивируется вопрос..
как пример архивируем базу 30 секунд и более
сколько документов в процессе архивации может быть проведено?
Или иные измерения? тоесть вы получите не совсем то что ожидаете...
И насчет дбф согласен можно и не выгонять но нельзя в процессе архивации чтобы пользователи работали...
5. Алексей Башта (bashta.aleksey) 11.09.09 16:16
6. Алексей Коробов (WiseSnake) 11.09.09 17:41
(3) А вы делали тестирование и исправление ошибки никакие не выдавало? А у Вас есть полная уверенность, что данные в базе правильные??? Ведь это не заметно и выявить такие ошибки может только комплексная проверка.

Как пример данные в табличной части документа могут не соответствовать регистрам, так как это разные dbf файлы. Например таблица регистра может скопироваться "свежая" а ТЧ документа старая. Вы это сможете увидеть только после проведения документа! И восстановить правильные данные будет невозможно. Это всего лишь самый наглядный пример, а ситуация может быть море...
Так что думайте сами решайте сами...
Мой совет не дергать судьбу за сами знаете что...)))
7. Алексей Коробов (WiseSnake) 11.09.09 17:42
И вообще слишком часто стали выкладывать подобные разработки... Демотевирую немного подобных разработчиков... Минус...
8. Альтаир (Altair777) 11.09.09 17:55
(6) Совершенно верно!
Остановить базу на несколько минут в сутки и сделать копию меньшее зло, чем думать что все в порядке... как в аналогии с плохими антивирусами.
Лучше не иметь его вообще, чем иметь плохой.
Вот скажите, сколько занимает копирование только файлов dbf (я сейчас про файловую версию) на нормальном сервере на сказях в режиме минимальной нагрузки на дисковую подсистему?
9. TSvetlakova2008 14.09.09 06:50
Как раз на этой копии я и делаю все проверки базы, а насчет работы пользователей я же говорю делать ночью, вышли они или нет меня не волнует, зато я точно знаю, что нагрузка мниимальная.
10. TSvetlakova2008 14.09.09 06:52
Ксатати разработке уже пять лет, просто гладя на остальных решила выложить может кому пригодится, да и для себя тоже, чтобы в любое время достать.
11. Петр Петров (Adoms) 16.09.09 09:07
(8) Подскажите пожалуйста, а как остановить (заморозить) на время архивирования базу? мы хоть и поставили архивацию в обеденное время, но гарантии, что все не будут работать нет
12. TSvetlakova2008 16.09.09 11:55
Заморозить базу можно только войдя в нее мнопольно, но тогда и сохранить можно как положено.
А насчет несоответсвия данных если в момент копирования кто-то работает. Как вы думаете лучше исправить документы за день, чем неделями не иметь копии, и восстанавливать потерянную неделю.
13. Альтаир (Altair777) 16.09.09 12:06
(12) А вы уверены что за день? И за какой именно?
Ошибка может найтись или быстро или поздно, что уже не будет иметь значения по разным причинам.
Копии иметь надо, но нормальные. А за Ваш совет заморозить базу..... Двойка!
14. Альтаир (Altair777) 16.09.09 12:08
(11) Например, открыть Конфигуратор в пакетном режиме.
15. vladal (Vladal) 16.09.09 12:34
У меня работает как часики мой Хранитель баз - на предыдущей работе 4 раза в сутки, на текущей - 2 раза (в обед бухия), и в 4-00 оперативная и бухия.

Взять его можно здесь: http://infostart.ru/projects/1106/
Не требует внешних компонент, перед сохранением еще и индексирует (когда никого в базе нет), есть и пресловутый режим "Скопировать, потом сохранить из копии" - на любой вкус и цвет.
16. vladal (Vladal) 16.09.09 12:34
+15: можно сделать сохранение вручную, автоматом или автоматом по расписанию из планировщика Windows
17. Альтаир (Altair777) 16.09.09 12:37
18. TSvetlakova2008 16.09.09 13:47
13. Какой такой совет? Я ничего не советую.
19. Альтаир (Altair777) 16.09.09 13:54
(18) > "Заморозить базу можно только войдя в нее мнопольно, но тогда и сохранить можно как положено."

А это не совет? Особенно порадовало слово ТОЛЬКО.
20. TSvetlakova2008 17.09.09 05:04
(19) Если это и был совет, то он во второй части предложения. Т.Е. если вам нужна полноценная копия не пользуйтесь чьими-либо разработками, а делайте ее как положено.
Объясняю зачем такое сохранение мне - по причине моего частого отсутствия от 2-х недель до 3 месяцев. Делаться все должно на полном автомате, потому что кроме меня копию никто делать не почешется, поэтому пусть такая, чем совсем никакой. А монопольный режим, дата запрета редактирования и даже изгнание пользователей из базы предполагает мое наличие, потому как надо еще и повисшие терминальные сессии убирать. Делаю я копию как уже было сказано ночью, а за ночь у нас проводится менее десятка документов, небольшая потеря, я думаю.
markovki; +1 Ответить
21. TSvetlakova2008 17.09.09 06:35
11> Например, открыть Конфигуратор в пакетном режиме.

И что? При работающих пользователях результат будет нулевой.
22. Сергей (Piton) 17.09.09 09:00
Господа! Хорош изобретать велосипед! Займитесь чем-нибудь полезным! Как архивировать, когда очередной юзверь юзает базу и вносит изменения? Для чего это? 1Совцы не дебилы и не зря не предусмотрели эту возможность. Попробовал и показал бухгалтерии что получилось на выхлопе... Долго зажимали носы и душили слезы...
markovki; +1 Ответить