|
Старая избита тема по бэкапу баз, но хочется новых ответов и взглядов... | ☑ | ||
---|---|---|---|---|
0
nikitos123
10.11.11
✎
09:52
|
Очень интересно знать, какими способами можно делать резервные копии баз 1С7.7 ??? В частности интересует резервное копирование не выгоняя пользователей (потомучто плотный график работы, последним я выходить с работы не могу т. к. не дают ключей, а никто ждать не собирается пока я сделаю копию). База состоит из DBF файлов. Желательно использовать только средства виндовс ( на сервере стоит 2003 ), можно еще что-нибудь на подобие программы acronis. Прошу выложить как можно больше информации. Спасибо)!
|
|||
1
Mikeware
10.11.11
✎
09:53
|
увольняйся...
|
|||
2
aleks-id
10.11.11
✎
09:54
|
ну так и используй резервное копирование самой винды
|
|||
3
Черт
10.11.11
✎
09:55
|
можно использовать и сторонние программы, которые в указанное время, будут создавать архив.
таких прог просто море (1) +1 |
|||
4
ДенисЧ
10.11.11
✎
09:56
|
Если делать архив дбф, не выгоняя пользователей, то вероятность получить битый архив стремится к 1...
|
|||
5
aleks-id
10.11.11
✎
09:57
|
(4) не к 1 а к бесконечности )
|
|||
6
Mikeware
10.11.11
✎
09:58
|
(4) судя по Какой должна быть дисперсия случайной величины? , следующий вопрос может быть - "стремится к единице - это много или мало?"
|
|||
7
GreyK
10.11.11
✎
09:58
|
(0) Если не выгоняя пользователей, тогда УРБД + планировщик.
|
|||
8
Lexxxxx
10.11.11
✎
10:01
|
(4) Это почему еще?!
|
|||
9
Mikeware
10.11.11
✎
10:03
|
(8) по определению!
|
|||
10
Lexxxxx
10.11.11
✎
10:04
|
(9) Несколько лет используем винрар из под самой 1С и ни разу не получали битого архива!
|
|||
11
Lexxxxx
10.11.11
✎
10:06
|
Как-то так:
|
|||
12
Lexxxxx
10.11.11
✎
10:06
|
Процедура РезервноеКопирование()
// Константа.ВыполнятьАрхивирование: // 0 - не выполнять // 1 - выполнять, если на сегодняшнюю дату нет архива // 2 - выполнять всегда ВыпАрхивирование=Константа.ВыполнятьАрхивирование; Если (ВыпАрхивирование=0) или (МонопольныйРежим()= 1) Тогда //Сообщить("В монопольном режиме архивирование не проводится"); Возврат; КонецЕсли; Сообщить ("Проверяется необходимость автоматического архивирования"); Путь = СокрЛП(Константа.ПутьКАрхиву); Если Лев(Путь,1) = "." Тогда // относительный путь Путь = КаталогИБ() + Сред(Путь,3); КонецЕсли; // проверим наличие каталога для архивирования Если ФС.СуществуетФайл(Путь) = 0 Тогда Сообщить("Не найден путь для архивирования!","!!!"); Возврат; КонецЕсли; Путь=Путь+Метаданные.Идентификатор+ВРЕГ(Сред(ТекущаяИБНаименование(),1,1)); // проверим наличие сегодняшнего архива Файл = ФС.НайтиПервыйФайл(Путь+Строка(Формат(РабочаяДата(),"ДГГГГММДД"))+"_*.rar"); Если Файл <> "" Тогда Если ВыпАрхивирование=1 Тогда ОчиститьОкноСообщений(); Возврат; КонецЕсли; КонецЕсли; Если ПустаяСтрока(ФС.НайтиПервыйФайл(Путь+"*.rar"))=0 Тогда РД=РабочаяДата(); СписСтарых=СоздатьОбъект("СписокЗначений"); Файл = Путь+ФС.НайтиПервыйФайл(Путь+"*.rar"); РазмерФайла=""; АтрибутыФайла=""; ВремяСоздания=""; Г=""; Д=""; Е=""; ФС.АтрибутыФайла(Файл,РазмерФайла,АтрибутыФайла,ВремяСоздания,Г,Д,Е); ДатаФайла=Дата(Число(Сред(ВремяСоздания,1,4)),Число(Сред(ВремяСоздания,6,2)),Число(Сред(ВремяСоздания,9,2))); Возраст=РД-ДатаФайла; Если Возраст>=10 Тогда СписСтарых.ДобавитьЗначение(Файл); КонецЕсли; Файл = ФС.НайтиСледующийФайл(); Пока Файл<>"" Цикл ФС.АтрибутыФайла(Путь+Файл,РазмерФайла,АтрибутыФайла,ВремяСоздания,Г,Д,Е); ДатаФайла=Дата(Число(Сред(ВремяСоздания,1,4)),Число(Сред(ВремяСоздания,6,2)),Число(Сред(ВремяСоздания,9,2))); Возраст=РД-ДатаФайла; Если Возраст>=10 Тогда СписСтарых.ДобавитьЗначение(Путь+Файл); КонецЕсли; Файл = ФС.НайтиСледующийФайл(); КонецЦикла; Для н=1 По СписСтарых.РазмерСписка() Цикл ИмяФайла=СписСтарых.ПолучитьЗначение(н); ФС.УдалитьФайл(ИмяФайла); КонецЦикла; КонецЕсли; Сообщить ("Выполняется архивирование"); ФС.УстТекКаталог(КаталогИБ()); Попытка КомандаСистемы("rar a -agYYYYMMDD_HHMM -av- -dh -ed -ep1 -idp -m5 -r -x*.cdx -x*.zip -x*.rar -x*.lck -xNEW_STRU -xUSER_S -xatc -xExtForms -xmd -xSYSLOG "+Путь+" *"); // КомандаСистемы(КаталогИБ()+"rar a -agYYYYMMDD -av- -dh -ed -ep1 -idp -m5 -r -x*.cdx -x*.zip -x*.rar -x*.lck -xNEW_STRU -xUSER_S -xatc -xExtForms -xmd -xSYSLOG "+Путь+" "+КаталогИБ()+"ExtForms\Отчеты\*.*"); // -agYYYYMMDD_HHMM - добавить к имени архива текущие дату и время // -av- - не проверять электронную подпись // -dh - открывать совместно используемые файлы // -ed - не добавлять пустые каталоги // -ep1 - исключить базовый каталог из имени // -idp - не отображать процентный индикатор работы // -m5 - метод сжатия (0-без сжатия... 3-обычный... 5-максимальный) // -r - рекурсивно с подкаталогами // -x*.cdx - не обрабатывать указанный файл/шаблон // -x*.zip // -x*.rar // -xNEW_STRU // -xUSER_S // -xatc // -xExtForms // -xmd // -xSYSLOG\* "+Путь+" *" Исключение КомандаСистемы("winrar a -agYYYYMMDD_HHMM -av- -dh -ep1 -idp -r -x*.cdx -x*.zip -x*.rar -xNEW_STRU -xUSER_S -xatc -xExtForms -xmd -xSYSLOG\* "+Путь+" *"); КонецПопытки; Предупреждение ("Архивирование завершено",5); КонецПроцедуры // РезервноеКопирование |
|||
13
ado
10.11.11
✎
10:07
|
(10) Вам пока везло.
|
|||
14
Lexxxxx
10.11.11
✎
10:08
|
Я уверен и будет везти!
Приведенная процедура требует доработки так как я привел старый вариант. Ее можно сильно сократить. |
|||
15
vinogradъ
10.11.11
✎
10:08
|
ТС хочет делать бэкап не выгоняя пользователей ибо не знает о существовании планировщика.
а для файловой мне нравится nnbackup |
|||
16
ado
10.11.11
✎
10:11
|
(14) Ну-ну. Посмотрим, что будет, если процедура сработает посередь транзакции.
|
|||
17
Lexxxxx
10.11.11
✎
10:11
|
(15) "мне нравится nnbackup"
Пользовали когда-то. Почему-то некоторые копии получались битыми. Да и размерчик копий совсем не маленький. |
|||
18
Lexxxxx
10.11.11
✎
10:13
|
(16) Четыре года уже смотрим! И все нормально. Единственное что бесит, так это то, что некоторые грамотеи приловчились закрывать окно винрара посреди архивации. Интересно, можно его как-то запустить невидимым?!
|
|||
19
ilkoder
10.11.11
✎
10:16
|
(18) - можно из командной строки и не платным винраром, а бесплатным 7z.
|
|||
20
vinogradъ
10.11.11
✎
10:17
|
(15) Почему-то некоторые копии получались битыми. - не было ни разу
Да и размерчик копий совсем не маленький. - настраивается сжатие |
|||
21
Lexxxxx
10.11.11
✎
10:17
|
(19) Он и так в режиме командной строки запускается. Можно и 7-зипом, но на сервере есть уже купленный винрар.
|
|||
22
ilkoder
10.11.11
✎
10:20
|
(21) я имею в виду консольную версию
|
|||
23
Lexxxxx
10.11.11
✎
12:02
|
(22) А версия для командной строки и консольная версия это разные версии?! Я говорю про ту, которая в черном окошечке запускается.
|
|||
24
nikitos123
10.11.11
✎
12:55
|
Товарищи, а можно как-то все это подитожить??? Если делать на лету копию или архив, то может получится битая копия! Это она вся такой будет или не будут работать отдельные dbf файлы или некотрые части в dbf файле????
|
|||
25
ДенисЧ
10.11.11
✎
12:56
|
(24) от некоррктных данных до незапускаемой базы
|
|||
26
ЧеловекДуши
10.11.11
✎
12:59
|
(2)Читай (1) :)... Тебе подходит.
|
|||
27
ado
10.11.11
✎
13:13
|
(24) Делай копирование скриптом по расписанию ночью. Даже если кто-то забыл выйти из базы, пока в неё гарантированно никто не пишет, такое копирование будет безопасным.
|
|||
28
Скользящий
10.11.11
✎
13:17
|
Есть хороший бэкапер от Гэндальфа.
|
|||
29
ptiz
10.11.11
✎
13:19
|
(18) Архив не "битый" только на первый взгляд. Но косяки в данных очень вероятны, если кто-то вводил данные во время архивации.
|
|||
30
ДенисЧ
10.11.11
✎
13:20
|
(28) Даже лучший бекапер не сделает нормального архива в дбф во время длительной транзакции...
|
|||
31
miki
10.11.11
✎
13:21
|
Ну чё, велик ещё не изобрели?
|
|||
32
Скользящий
10.11.11
✎
13:21
|
Как вариант удаленное подключение, и бэкапить вечером вручную пока никого нет )
|
|||
33
ptiz
10.11.11
✎
13:22
|
(30) Дело даже не в одной транзакции.
Сделали так: 1) DBFка с товаром заархивировалась 2) ввели товар 3) ввели документ прихода этого товара 4) DBFка с документом заархивировалась что имеем в архиве? |
|||
34
ado
10.11.11
✎
13:24
|
(32) Блин, да написать батник и засунуть в расписание ... ну что проще то может быть?
|
|||
35
Скользящий
10.11.11
✎
13:28
|
(34) Батник написать можно. Как контролировать, что в базе никого нет?
|
|||
36
ЧеловекДуши
10.11.11
✎
13:35
|
(35)Дописать конфу так что что бы из Базы всех выбрасывало.
По достижению определенного времени. Если не смогло выкинуть, не беда... попробует завтра. |
|||
37
ЧеловекДуши
10.11.11
✎
13:35
|
+(35)Максимум потеряет неделю.
|
|||
38
Скользящий
10.11.11
✎
13:37
|
я на одной из предыдущих работ делал очень зло. Тупо перезагружал сервак ннкроном. А потом бэкапил.
|
|||
39
Скользящий
10.11.11
✎
13:37
|
но так делать не советую, это не кошерно. )
|
|||
40
Сияющий Асинхраль
10.11.11
✎
13:45
|
Вообще при работе в DBF базах обычное копирование базы без выгона пользователей великолепно работает, а вот с этой скопированной базой можно делать далее, что угодно - сносить индексы, архивировать и т.д.
|
|||
41
ado
10.11.11
✎
14:03
|
(35) Ну, контролировать, если надо, очень просто. Но я так понял, что у автора ночью все равно никто не работает ("последним я выходить с работы не могу т. к. не дают ключей, а никто ждать не собирается пока я сделаю копию").
В это случае, даже если кто-то остался в базе -- ничего страшного. Главное, чтобы в неё ничего не писали. |
|||
42
nikitos123
10.11.11
✎
14:59
|
Да, ночью никто не работает и компьютер (сервер) выключен в целях безопасности, а то сигнализация может не включится (так мне объяснили)!!! Выключен не мной, а человеком, который остаеться, чтобы сделать индексацию...
ууу... вообще бред какой-то - заманался... |
|||
43
andrewks
10.11.11
✎
15:21
|
(5) вероятность не может стремиться к бесконечности, учи матчасть :)
|
|||
44
Vladal
10.11.11
✎
15:25
|
А ночером бэкапиться по расписанию?
Выгонять всех пользователей программно, кто не понял - рубить процессы. |
|||
45
Скользящий
10.11.11
✎
15:32
|
Сервер! Выключен! В целях безопасности?! Голову пусть лечат. Сервер вообще выключаться не должен.
|
|||
46
Vladal
10.11.11
✎
15:34
|
(42) Специально обученный Человек сделал индексацию и сделал бэкап. Всё.
|
|||
47
Мулька
10.11.11
✎
15:37
|
(42) В качестве сервера обычный пень?
ПС: Сервера очень не рекомендуется вкл/выключать. (40) +1. Можно, конечно и выгнать пользователей перед бэкапом. Но дбф при бездействии в базе отлично копируются (максимум переиндексацию сделать придется) |
|||
48
nikitos123
10.11.11
✎
15:53
|
Мулька, да сервер в данном случае простая машинка с хорошими параметрами, а не сервер в полном его смысле... Сеть вообще относительно не большая - 23 машины.
А почему не рекомендуется выключать сервера? |
|||
49
Скользящий
10.11.11
✎
15:57
|
если простая машинка с хорошими параметрами, то пофиг, выключать или нет. Но по хорошему выключать не надо на ночь все равно.
|
|||
50
Ёпрст
10.11.11
✎
15:57
|
||||
51
Оболтус
10.11.11
✎
16:02
|
(50)А это точно работает?
|
|||
52
Pasha
10.11.11
✎
16:03
|
(0) А не проще SQL поставить?
|
|||
53
Оболтус
10.11.11
✎
16:04
|
(52)Это дорого.
|
|||
54
Ёпрст
10.11.11
✎
16:05
|
(51) даже не сумневайся.
|
|||
55
Скользящий
10.11.11
✎
16:06
|
Из за этого кодебазе сервер ставить?
|
|||
56
nikitos123
10.11.11
✎
16:08
|
Pasha, а можно будет имеющиеся данные перенести на SQL?
|
|||
57
andrewks
10.11.11
✎
16:09
|
(52) скуль из-за бэкапов? оригинально-с
|
|||
58
Lionee
10.11.11
✎
16:12
|
(48)сервер вкл и выкл один раз, все на то он и сервер
|
|||
59
Ёпрст
10.11.11
✎
16:12
|
(55) когда же вы все читать то будете ?
ЗЫ: нет, не обязательно. |
|||
60
Ёпрст
10.11.11
✎
16:13
|
+59 +DBEng32 (8.0.0.9, Share) вот это ставишь и привет, тем более, это ужо работает не один год для выполненния фоксового запроса в монопольном режиме.
|
|||
61
Aleksey
10.11.11
✎
16:17
|
(36) Так это разве через АД и политики нельзя сделать?
|
|||
62
Lionee
10.11.11
✎
16:19
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |