Имя: Пароль:
1C
1С v8
копирование 1сv8.1cd не выгоняя пользователей
0 4esz
 
17.12.13
13:18
Здорово всем.
Подскажите можно ли копировать файлик 1cv8.1cd не выгоняя пользователей из базы? Есть мысль сделать батник создающий архив с учетом четности часа. В результате если что то навернется потеряется данных не более чем за последний час. База файловая, вариантов перехода на серверную пока нет. Пользователей человек 10-12. Вот только есть сомнение, т.к. где то слышал что копирование 1cv8.1cd "на ходу" может порушить саму рабочую базу. Так ли это?
1 Wobland
 
17.12.13
13:18
лично чинил
2 Ork
 
17.12.13
13:20
(0) "может порушить саму рабочую базу."

Оно только читает. Прочитать некорректно видимо может. Как читая будет туда чего писать - для меня загадка.
3 jk3
 
17.12.13
13:20
(0) >>База файловая, пользователей человек 10-12
Одновременно? 0_o
И оно еще живое (по скорости я имею ввиду)??
4 4esz
 
17.12.13
13:21
(1) т.е. рухнет?
с чем это связанно? пробовал гонять на локальной машине. Пока идет копирование файла 1СД 1Ска не дает записать док, т.е. как бы подвисает, после завершения копирования ее "отпускает" и вроде как все продолжает работать
5 4esz
 
17.12.13
13:22
(2) вот и мне не понятно как оно порушится?
(3) ну они не очень интенсивно в ней трудятся, так что работает потихоньку
6 МихаилМ
 
17.12.13
13:44
(0)
в поиск. обсуждалось сотню раз
7 jk3
 
17.12.13
13:45
(4) только что попробовал локально, без подключений по сети.
Поставил копироваться большой 1CD-файл, потом переключился в 1С и провёл документ, всё провелось.

Проверял 2 раза.
Первый раз сразу после начала копирования проводил док -- изменения перенеслись.
Второй раз начал проводить док, когда скопировалось 80%, док закончил проводиться, когда скопировалось 96%. В итоге изменения НЕ перенеслись.

Имхо, в таком варианте получить неконсистентную копию очень велика.
8 Галахад
 
гуру
17.12.13
13:53
(0) Сделай РИБ и меняйся каждый час. Будет тебе актуальный бекап.
9 bolobol
 
17.12.13
14:00
Сделай РИБ и меняйся оперативно - вашпе актуальным будешьмана! Копируй РИБ базу для отката хоть на каждую минуту, в ней нет пользователей.

И заведи лог изменений в виде хмл файлов, выгруженных обменом. Тупо - на каждое действие пользователя будет выгрузка. Инкремент, типа, от последнего бэкапа есть и актуальная база есть. Два в одном!
10 H A D G E H O G s
 
17.12.13
14:09
(9) Колом все встанет
11 bolobol
 
17.12.13
14:11
(10) О, да, расскажите мне об этом)
12 vde69
 
модератор
17.12.13
14:14
(10) не встанет, у файловой нету проблемм с регистрацией по тому что на фоне остальных проблемм это не проблеммы:)
13 4esz
 
17.12.13
14:22
(6) поиск юзал - не нашел, может плохо искал
(7) вполне устраивает такая "неконсистентная копия" т.к. делается на случай если все рухнет вдруг
14 4esz
 
17.12.13
14:30
(8) если 1СД копировать можно, то это проще чем делать РИБ, а потом в случае падения основной базы в этой РИБ все равно будут данные за "минусом" последнего часа
15 vde69
 
модератор
17.12.13
14:35
(13) эммммм как тебе сказать, такая "неконсистентная копия" может содержать куда больше проблемм чем "упавшая" база.

ты понимаешь механизм транзакций? и структура 1сд?

вероятность того, что у тебя будут раные и логически несовместимые версии страниц данных собраны в один логический файл довольно высока, разобрать потом такой файл и нацти ошибки - это очень проблематично....
16 vde69
 
модератор
17.12.13
14:40
(15)+

что-бы понятнее было

1с фиксирует транзакцию в общем случае от хвоста файла к началу (сначало изменения вносятся в хвост, а потом в заголовки)

копирование идет от начала к концу

по этомы мы имеем старые заголовки и новые данные, если страницы менялись только в одном логическом файле - то тупо будет откат транзакции. Но по факту изменений много и у тебя будет по одним таблицам старые данные, по другим новые.

Если такой косяк попадет на системные таблицы - получишь бяку
17 4esz
 
17.12.13
14:46
(15) убедил, а как в 8ке если она была распределенная и рухнула центральная база, получить из имеющейся переферийной централку? В 77 было просто правился файлик 1SSYSTEM.DBF и все. а как в 8ке?
18 vde69
 
модератор
17.12.13
14:49
(17) обработка в 1 строчку
19 Feunoir
 
17.12.13
14:50
ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
20 4esz
 
17.12.13
14:51
(19) а как же записи в регистре СоответствиеобъектовИнформационныхБаз их тоже нужно будет очищать?
21 Feunoir
 
17.12.13
14:53
(20) Это уже внешняя пришлёпка, которая к РИБ не имеет ни малейшего отношения.
22 4esz
 
17.12.13
14:56
(21) этот регистр вроде бы используется когда планы обмена настраиваешь напимер бух с трговлей. А где же тогда РИБ держит данные о выгруженных/измененых документах?
23 vde69
 
модератор
17.12.13
14:56
(21)+
этот регистр используется только для обменов отличных от РИБ, если оспользуется РИБ - регистр будет пустой
24 Feunoir
 
17.12.13
15:00
(22) Там отдельные таблицы регистрации изменений. Для каждого объекта конфигурации. Очищаются ли они в момент сброса главного узла - понятия не имею, если честно. Но даже если и не очищаются, то их очистить - одна команда: УдалитьРегистрациюИзменений(<Узлы>, <Данные>)
25 4esz
 
17.12.13
15:01
понял, всем спасибо, буду пробовать РИБ.
26 Torquader
 
18.12.13
01:04
Можно ещё попробовать теневые копии в системе.
А копирование файлов и в семёрке иногда давало "странные" результаты.
27 Torquader
 
18.12.13
01:06
Если пользователи "активно" трудятся, то запись таблицы изменений на каждый объект - сильное снижение производительности.
Если они в программе "вафли сушат", то можно копировать файл - причём - можно в ПередЗаписью вписать отслеживание флага - если он есть, то не делать запись, пока его не уберут.
28 Злопчинский
 
18.12.13
01:07
врубаем теневое копирование.
все запросы на запись к файлу ставятся в задержку...
лучше ходжика про это спросить
29 4esz
 
18.12.13
08:00
(27) можно в ПередЗаписью вписать отслеживание флага - это тогда придется дописывать в каждом документе? обновляться же будет не удобно
30 John83
 
18.12.13
10:20
(29) можно сделать подписку
31 Torquader
 
19.12.13
11:22
(29) Насколько я помню, глПередЗаписью вставлена в любой документ именно для того, чтобы убить всех зайцев в одном месте.