|
резервное копирование, помогите, плизззз..... | ☑ | ||
---|---|---|---|---|
0
tank_81
26.06.14
✎
10:51
|
DumpPath = "D:\BackUp2Work\New"
FileName = "work2" ' Название бэкапа базы ServerName = "Server1C:1541" ' Название сервера 1С Предприятия ServerName = "Server1C:1641" ' Название сервера 1С Предприятия InfoBaseName = "work_base_82" ' Имя архивируемой базы ClasterPortNumber = 1641 ' Эти данные лучше в скрипте не светить, а использовать Windows аунтификацию ' Имя и Пароль пользователя назначенного для архивирования InfoBasesAdminName = "Admin" InfoBasesAdminPass = "3425165" ' Имя и Пароль Администратора кластера ClasterAdminName = "" ClasterAdminPass = "" LockPermissionCode = "3425165" ' Код блокировки базы LockMessageText = vbCrLf + "БАЗА ЗАКРЫТА НА СОЗДАНИЕ РЕЗЕРВНОЙ КОПИИ" + vbCrLf + "Администратор - БАЗЫ" LockPermissionCode = "3425165" ' Код блокировки базы ClasterAdminName = "" ClasterAdminPass = "" FindInfoBase = False 'Флаг, что ИБ найдена Set WshShell = CreateObject("WScript.Shell") PrgDirx86 = WshShell.RegRead("HKEY_CLASSES_ROOT\CLSID\{b3a7d9db-3cba-47f4-b80a-5dda79d8925a}\LocalServer32\") ' PrgDirx86 = WshShell.RegRead("HKEY_CLASSES_ROOT\CLSID\{5CD98F13-1050-4b43-84F2-33AD97CFC287}\LocalServer32\") strNow = Now() FullPathName = DumpPath & "\" & _ Right(Year(strNow), 4)+Right("0" & Month(strNow), 2)+Right("0" & Day(strNow), 2) & "_" & _ Right("0" & Hour(strNow), 2)+ Right("0" & Minute(strNow), 2) & "_" & _ FileName & ".dt" If InStr(FullPathName, " ") <> 0 Then FullPathName = FullPathName 'FullPathName = Chr(34) + FullPathName + Chr(34) 'FullPathName2 = Chr(34) + FullPathName2 + Chr(34) End If Set ComConnector = CreateObject("v82.COMConnector") Set ServerAgent = ComConnector.ConnectAgent(ServerName) ' Получим массив кластеров сервера у агента сервера Clasters = ServerAgent.GetClusters() ' Найдем необходимый нам кластер For Each Claster In Clasters If Claster.MainPort = ClasterPortNumber Then ServerAgent.Authenticate Claster, ClasterAdminName, ClasterAdminPass ' Получаем список рабочих процессов WorkingProcesses = ServerAgent.GetWorkingProcesses(Claster) For Each WorkingProcess In WorkingProcesses If WorkingProcess.Running = 1 Then ' Для каждого рабочего процесса создаем соединение с рабочим процессом Set connecttoworkprocess = ComConnector.ConnectWorkingProcess("tcp://" + WorkingProcess.HostName + ":" + CStr(WorkingProcess.MainPort)) connecttoworkprocess.AuthenticateAdmin ClasterAdminName, ClasterAdminPass connecttoworkprocess.AddAuthentication InfoBasesAdminName, InfoBasesAdminPass If Not FindInfoBase Then ' Получаем список ИБ рабочего процесса InfoBases = connecttoworkprocess.GetInfoBases() For Each InfoBase In InfoBases ' Ищем нужную базу If UCase(InfoBase.Name) = UCase(InfoBaseName) Then FindInfoBase = True Exit For End If Next If Not FindInfoBase Then ' Не нашли нужную базу Exit For End If ' Устанавливаем запрет на подключение новых соединений InfoBase.ConnectDenied = True InfoBase.DeniedFrom = CStr(Now()) InfoBase.DeniedTo = CStr(Now() + 1 / 24 * 0.25) InfoBase.DeniedMessage = LockMessageText InfoBase.PermissionCode = LockPermissionCode connecttoworkprocess.UpdateInfoBase (InfoBase) End If If FindInfoBase Then ' Получаем массив соединений с ИБ Connections = connecttoworkprocess.GetInfoBaseConnections(InfoBase) For Each Connection In Connections ' Разрываем Connections с ИБ If Connection.AppId <> "SrvrConsole" Then connecttoworkprocess.Disconnect (Connection) End If Next ' Запускаем архивацию LineExe = """" + PrgDirx86 + """ CONFIG /S" + ServerName2 + "\" + InfoBaseName + _ " /N" + InfoBasesAdminName + " /P" + InfoBasesAdminPass + _ " /UC" + LockPermissionCode + " /DisableStartupMessages /DumpIB" + FullPathName WshShell.Run LineExe, 5, True ' Отключаем блокировку базы InfoBase.ConnectDenied = True connecttoworkprocess.UpdateInfoBase (InfoBase) End If End If Next End If Next ComConnector = Null ServerAgent = Null Clasters = Null WorkingProcesses = Null connecttoworkprocess = Null InfoBases = Null InfoBase = Null Connections = Null |
|||
1
acsent
26.06.14
✎
10:52
|
1с не рекомендует делать резервное копирование выгрузкой в дт
|
|||
2
Cube
26.06.14
✎
10:52
|
' Эти данные лучше в скрипте не светить, а использовать Windows аунтификацию
' Имя и Пароль пользователя назначенного для архивирования InfoBasesAdminName = "Admin" InfoBasesAdminPass = "3425165" Бугагашеньки))))))) |
|||
3
Cube
26.06.14
✎
10:53
|
(1) Мало ли чо... Вот Минздрав не рекомендует курить...
|
|||
4
Segate
26.06.14
✎
10:53
|
(0) бэкапь сценарием SQL будь мужиком )
|
|||
5
tank_81
26.06.14
✎
10:54
|
Только не кидайтесь тапками). Ситуация следующая: была 1с 8.1, обновили до 8.2, но 8.1 тоже функционирует на одном и том же сервере.
|
|||
6
dj_serega
26.06.14
✎
10:54
|
(2) Та это тестовый сервер, нечего бояться :)
|
|||
7
tank_81
26.06.14
✎
10:56
|
1с не рекомендует делать резервное копирование выгрузкой в дт, ага, читали уже. нужна dt именно, потому что часто просят бухи, тобы згрузить ее локально и поэкспериментировать
|
|||
8
Cube
26.06.14
✎
11:03
|
(7) Так где твой вопрос-то?
|
|||
9
tank_81
26.06.14
✎
11:05
|
где ошибка в скрипте?
|
|||
10
tank_81
26.06.14
✎
11:07
|
v8: Бэкап 1с82 серверный вариант в *.dt скриптом взято отсюда, подставлены свои значения
|
|||
11
Cube
26.06.14
✎
11:07
|
(9) Какой молодец :)
Вывалил портянку, а нам дебажить её?)) |
|||
12
Cube
26.06.14
✎
11:08
|
Я для каждой ИБ отдельный батник сделал и не парюсь.
|
|||
13
hhhh
26.06.14
✎
11:09
|
(9) ну вы нам хотя бы текст ошибки приведите
|
|||
14
tank_81
26.06.14
✎
11:09
|
нужна копия только 8.2, 8.1 просто как архивную просматривают
|
|||
15
tank_81
26.06.14
✎
11:15
|
Set ServerAgent = ComConnector.ConnectAgent(ServerName) на эту строку ругается
|
|||
16
Azverin
26.06.14
✎
11:19
|
(15) при установке сервера в опциях установки можно выбрать COM-соединение или сделай: regsvr32.exe C:\Program Files\1cv82\8.2.хх.ххх\bin\comcntr.dll
|
|||
17
tank_81
26.06.14
✎
12:13
|
Сервер недоступен ( не отвечает (завершается аварийно или порт занят другим приложением ) источник v82.COMConnector.1
|
|||
18
tank_81
26.06.14
✎
12:14
|
Спасибо, попробую. Не было инета, последнее сообщение написано без учета
при установке сервера в опциях установки можно выбрать COM-соединение или сделай: regsvr32.exe C:\Program Files\1cv82\8.2.хх.ххх\bin\comcntr.dll |
|||
19
tank_81
26.06.14
✎
12:59
|
не удалось загрузить модуль C:\Program Проверьте, что двоичный файл храниться на указанном пути или запустите отладку, что бы диагностировать проблемы с этим двоичным файлом или зависимыми DLL-файлами
|
|||
20
Kookish
26.06.14
✎
12:59
|
(7) В чем проблема? Научи бухов выгружать в dt вручную и экспериментировать. А НАСТОЯЩЕЕ резервное копирование - средствами SQL, как мужик.
|
|||
21
tank_81
26.06.14
✎
12:59
|
я не мужик))
|
|||
22
tank_81
26.06.14
✎
13:00
|
их там народу много, dt только монопольно выгружать надо же
|
|||
23
Segate
26.06.14
✎
13:00
|
(19) кавычки?
|
|||
24
PR
26.06.14
✎
13:00
|
(21) Не ври, личка говорит, что мужик :))
|
|||
25
tank_81
26.06.14
✎
13:00
|
а dt бывает нужна прям сейчас)
|
|||
26
Kookish
26.06.14
✎
13:00
|
Непрерывно тащусь вот от таких постов типа: "Я не хочу делать правильно, подскажите, как мне правильно сделать неправильно".
|
|||
27
tank_81
26.06.14
✎
13:00
|
по умолчанию наверное, не поменяла
|
|||
28
PR
26.06.14
✎
13:01
|
(7) Просто тупо скопируй каталог базы и все.
|
|||
29
PR
26.06.14
✎
13:01
|
(27) Тогда давай фотку :))
|
|||
30
Kookish
26.06.14
✎
13:01
|
(27) Ага, спалилась. Сейчас фотку требовать начнут.
|
|||
31
tank_81
26.06.14
✎
13:01
|
насчет sql "внедренцы" напугали, что если не пробовали раньше, то не трогайте, чтобы не испортить ничего. может конечно пугают просто
|
|||
32
tank_81
26.06.14
✎
13:02
|
у Вас тут фэйс контроль оказывается)
|
|||
33
Kookish
26.06.14
✎
13:03
|
(31) Стопудово пугают. Скриптов для резервного копирования вагон и маленькая тележка. Даже я могу подкинуть.
|
|||
34
tank_81
26.06.14
✎
13:04
|
подкиньте, если не сложно
|
|||
35
Kookish
26.06.14
✎
13:07
|
DECLARE @CurrentFileDate char(10)
, @BackupFile varchar(255) SET @CurrentFileDate = CONVERT(char(10),getdate(),121) SET @BackupFile = 'D:\SQL_Back\MyLovelyBackup-'+@CurrentFileDate + '.bak' BACKUP DATABASE MyLovelyBase TO DISK = @BackupFile WITH NOFORMAT, NOINIT, NAME = N'LovelyBase - Full Database Backup', SKIP, RETAINDAYS = 20, STATS = 10; GO |
|||
36
Kookish
26.06.14
✎
13:07
|
Что-то вроде.
|
|||
37
tank_81
26.06.14
✎
13:10
|
Спасибо, еще бы знать, что с этим делать). Я в этом совсем чайник.
|
|||
38
tank_81
26.06.14
✎
13:16
|
Странно, почему путь не может найти regsvr32.exe C:\Program Files\1cv82\8.2.хх.ххх\bin\comcntr.dll (хх, если что поменяла на цифры)
|
|||
39
tank_81
26.06.14
✎
13:17
|
библиотека такая в этом месте существует
|
|||
40
Segate
26.06.14
✎
13:18
|
>>не удалось загрузить модуль C:\Program Проверьте, что двоичный файл храниться на указанном пути или запустите отладку, что бы диагностировать проблемы с этим двоичным файлом или зависимыми DLL-файлами
Я уже говорил, что из за отсутствия ковычкек- скрипт парсит путь до пробела, и валится, потому что папки PROGRAM не существует. |
|||
41
tank_81
26.06.14
✎
13:20
|
а где кавычки нужно поставить?
|
|||
42
Cube
26.06.14
✎
13:21
|
(37) В свете открывшихся обстоятельств, мы теперь требуем, чтобы у тебя в личной карточке поменялся пол и появилась фотка =)))
|
|||
43
tank_81
26.06.14
✎
13:23
|
пол поменяла)
|
|||
44
Kookish
26.06.14
✎
13:24
|
(41) (43) Теперь бы цвет волос выяснить. И скорректировать. :)
|
|||
45
Kookish
26.06.14
✎
13:25
|
Кавычками закрываем строку, которая содержит пробелы, но должна представлять собой единую сущность. Например, путь к файлу, передаваемый в качестве параметра. Я понятно выражаюсь?
|
|||
46
tank_81
26.06.14
✎
13:25
|
все, с кавычками разобралась
|
|||
47
tank_81
26.06.14
✎
13:26
|
спасибо
|
|||
48
Segate
26.06.14
✎
13:26
|
(47) а фотка?
|
|||
49
Segate
26.06.14
✎
13:27
|
(45) фига... как то меня на объяснение больше чем "кавычки поставь" не хватает, а оно вон как можно объяснять =)) не быть мне учителем
|
|||
50
tank_81
26.06.14
✎
13:30
|
да, хорошее объяснение) только библиотека зарегистрировалась, а ошибка все та же
|
|||
51
Segate
26.06.14
✎
13:31
|
(50) писят постов уже... триал версия кончилась. Надо ПРОФ преобретать. ПРОФ версия поддержки требует наличия фото в профиле.
|
|||
52
kosts
26.06.14
✎
13:36
|
(50) В чем еще проблема?
|
|||
53
tank_81
26.06.14
✎
13:42
|
Сервер недоступен ( не отвечает (завершается аварийно или порт занят другим приложением ) источник v82.COMConnector.1 та же самая ошибка,что и до регистрации библиотеки
|
|||
54
Segate
26.06.14
✎
13:49
|
(53) вы своим чайником отняли у себя возможность получить помощь...
|
|||
55
kosts
26.06.14
✎
13:49
|
(53) составь полную командную строку для резервирования
Т.е. вместо этого PrgDirx86 + """ CONFIG /S" + ServerName2 + "\" + InfoBaseName + _ " /N" + InfoBasesAdminName + " /P" + InfoBasesAdminPass + _ " /UC" + LockPermissionCode + " /DisableStartupMessages /DumpIB" + FullPathName Пропиши все руками и выполни в командной строке. Для тестирования. Резервирование по этому скрипту всё равно выполняется без com. |
|||
56
tank_81
26.06.14
✎
13:52
|
зато объективно) (это я насчет фотки)
|
|||
57
Новенький_2009
26.06.14
✎
13:53
|
Прежде чем городить (0), кликни правой кнопкой по ярлыку запуска 1С, и в поле "Объект" впиши РУКАМИ полную командную строку, по типу как советуют в (55). Добейся, чтобы так заработало, а уж потом, после этого, начинай свои раскопки на тему "почему у меня не работает".
|
|||
58
Cube
26.06.14
✎
13:54
|
(56) Нет, фотка незачет... Мы так не играем))
|
|||
59
tank_81
26.06.14
✎
13:56
|
спасибо всем, кто отвечал, к сожалению сегодня больше не попробовать, народ работает , обязательно воспользуюсь советом
|
|||
60
Новенький_2009
26.06.14
✎
13:57
|
(59) подсказка из зала: а на тестовой базе можно играться сколько хочешь. И народ будет работать дальше.
|
|||
61
Segate
26.06.14
✎
13:58
|
(59) ты еще и на рабочей базе это делала? оО омфг!
|
|||
62
tank_81
26.06.14
✎
14:07
|
НУ КОПИЯ ПРЕДВАРИТЕЛЬНО СДЕЛАНА БЫЛА, А ЧЕМ ТУТ МОЖНО ИСПОРТИТЬ БАЗУ?
|
|||
63
kosts
26.06.14
✎
14:08
|
(62) Пользователей невзначай так отрубишь несколько раз массово....
|
|||
64
tank_81
26.06.14
✎
14:11
|
насчет тестовой туплю конечно))можно сейчас то и на ней тренироваться. По другим вопросам звонят просто (1с как побочку навалили, без объяснений всяких, вот и мучаюсь). Я на обеде пробовала, после сделанной в ручную копии, так что, те кто вваливался, сами виноваты
|
|||
65
Segate
26.06.14
✎
14:11
|
(62) А то что пол дня ты мешала работать?
ну и... вот эта картинка в тему http://xkcd.ru/i/327_v1.png |
|||
66
tank_81
26.06.14
✎
14:13
|
нет, не мешала, до этого на обеде тоже пробовала и сегодня
|
|||
67
kosts
26.06.14
✎
14:15
|
(66) Если что, то у этого скрипта одно достоинство - он отрубает пользователей (вдруг кто-то на ночь не вышел).
В принципе и в батнике можно копировать. |
|||
68
tank_81
26.06.14
✎
14:27
|
т.е в PrgDirx86 + """ CONFIG /S" + ServerName2 + "\" + InfoBaseName + _
" /N" + InfoBasesAdminName + " /P" + InfoBasesAdminPass + _ " /UC" + LockPermissionCode + " /DisableStartupMessages /DumpIB" + FullPathName вместо ServerName2 ,InfoBaseName ,InfoBasesAdminName ,InfoBasesAdminPass ,LockPermissionCode свои параметры прописать и вставить в выполнить? |
|||
69
Новенький_2009
26.06.14
✎
14:37
|
(68) Правильно. Нужно собрать строку для запуска РУКАМИ и ее как-то выполнить: через консоль или как я написал.
(66) >> Если что, то у этого скрипта одно достоинство - он отрубает пользователей (вдруг кто-то на ночь не вышел). 6-ть лет назад, со времен БП 1.5 во ВСЕХ типовых есть специальный механизм "мягкого" выгона пользователей. Его, если эта типовая, в 2014, уж пора б как-нить использовать. Не? Кстати, автор. Какая конфа то хоть? Типовая с БСП? |
|||
70
tank_81
26.06.14
✎
14:41
|
Управление производственным предприятием, редакция 1.3 (1.3.50.1/1.4) не типовая, переделанная под нас
|
|||
71
tank_81
26.06.14
✎
14:42
|
что за специальный механизм "мягкого" выгона пользователей? я только стандартную блокировку соединений знаю
|
|||
72
kosts
26.06.14
✎
14:56
|
(69) > "мягкого" выгона пользователей
Ну это если в рабочее время, ночью кто кто закроет программу? Только отрубить и можно. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |