0. bystrov-e 121 22.05.12 21:02 Сейчас в теме

Резервное копирование баз SQL Server на базе 1С.

Конфигурация предназначенная для резеврного копирования баз SQL Server. Может использоваться как автономно, так и объединяться с любой конфигурацией. Код полностью открыт и доступен для редактирования.

Перейти к публикации

Комментарии
Сортировка: Древо
1. hrip 208 24.05.12 15:44 Сейчас в теме
Оригинальная идея. Надо будет протестировать.
Под SQL Server имеется ввиду MS SQL Server?
15. AlexO 126 19.06.12 10:08 Сейчас в теме
(1) hrip,
Под SQL Server имеется ввиду MS SQL Server?

а что - есть еще какой-то SQL с названием SQL Server? :)
__________________________________________
Народ, когда научитесь использовать средства программ - а не изобретать костыли?
MS SQL прекрасно настраивает бэкапы любых баз, по расписанию и куда угодно. Плюс - еще и регламентные операции с базой.
Один раз настроил - и получай альтернативный бэкап хоть каждую минуту.
16. hrip 208 19.06.12 10:35 Сейчас в теме
(15) AlexO, в чем смысл придирок к словам то? :-)
Или по вашему про PostgreSQL, IBM DB2, MySQL и т.д. нельзя написать что это SQL Server?
а вот MS SQL Server - это как раз название конкретного программного продукта от Майкрософт.
Ну и в немного в защиту автора.
Никто же не заставляет вас использовать эту разработку если она вам не нравится?
А вот ознакомиться с технологией, как автор использует соединение с СУБД и делает бекапы, вредно точно никому не будет.
Так что автору однозначно плюс!
2. bystrov-e 121 24.05.12 15:48 Сейчас в теме
Да, именно MS SQL Server :). Разработка проверялась на 2008, 2008 R2, 2005
3. hrip 208 24.05.12 15:58 Сейчас в теме
Протестировал. Всё отлично работает.
Только надо наверное переименовать "папка для выгрузок" в "папка для выгрузок (на сервере СУБД)", а то я backup запустил на локальной машине и указал соответственно папку свою, а там появился только пустой архив, а бекап лежал в такой же папке но на сервере.
4. bystrov-e 121 24.05.12 16:03 Сейчас в теме
Да, возможно, в следующей версии я переименую этот реквизит. Я знаю об этой особенности работы и написал о ней в хелпе и прилагающемся описании. Спасибо)
5. bystrov-e 121 24.05.12 16:08 Сейчас в теме
Да, забыл сказать. В случае, если база создается в файловом варианте, то её нужно создавать на сервере, потому что выполнение команды архивации происходит в среде машины, на которой запущен процесс, соответственно заархивировать базу она не сможет - будут различаться папки на сервере (куда сохраняется архив) и на клиенте (откуда архиватор пытается заархивировать его). Проблему можно также решить расшариванием папки, куда делается архив и указанием сетевого пути к ней.
6. taurus_ 21 14.06.12 06:19 Сейчас в теме
А что происходит с пользователями, которые на момент архивации работают в базе? Отключаются?
7. Worf 14.06.12 06:52 Сейчас в теме
(6) taurus_, SQL же всё делает на горячую, ну может кроме переименования баз )
8. bystrov-e 121 14.06.12 09:05 Сейчас в теме
Нет, ничего не происходит. При копировании средствами SQL Server пользователи не отключаются
9. ShamanNet 15.06.12 12:43 Сейчас в теме
Тысяча извинений! Всё сделал по инструкции, но при попытке сделать архивную копию базы выдаётся сообщение:
Ошибка создания резервной копии: {ОбщийМодуль.БКП_Сервер.Модуль(211)}: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Время ожидания истекло
10. bystrov-e 121 15.06.12 14:21 Сейчас в теме
Добрый день!

Какого размера у вас база SQL? Судя по всему, тут какая-то ошибка по таймауту.
11. ShamanNet 18.06.12 08:46 Сейчас в теме
Немногим больше одного гигабайта. База совсем небольшая ведь, но архивация не проходит. Архивный файлик создаётся, но практически сразу "удаляется" и выдаётся сообщение об ошибке архивации.
12. Kopman 16 18.06.12 08:51 Сейчас в теме
Интересная штуковина, + заочно. Надо будет ознакомиться на досуге:-)
13. bystrov-e 121 18.06.12 09:11 Сейчас в теме
Я посмотрю в чем может быть причина такой ошибки как у вас, либо поправлю либо предложу решение)
ShamanNet; +1 Ответить
14. bystrov-e 121 19.06.12 09:41 Сейчас в теме
Ошибка была из-за таймаута исполнения запроса для ADO - по умолчанию 30 сек. Исправил в новой версии.
17. bystrov-e 121 19.06.12 10:39 Сейчас в теме
Ну вы почитайте внимательно описание конфигурации и поймете, что я не призываю использовать её вместо стандартных средств :) Ситуации разные бывают и разные средства могут использоваться.
18. ShamanNet 19.06.12 13:45 Сейчас в теме
(17) Огромное вам спасибо! После исправления проблемы с таймаутом всё заработало, как часы!
19. sumixam 20.06.12 12:15 Сейчас в теме
Протестировал работает спасибо, с таймаутом поначалу тоже была заморочка.
20. ShamanNet 20.06.12 16:21 Сейчас в теме
Тысяча извинений! Это опять я :( Настроил автоматическое резервное копирование по расписанию. Однако по какой-то причине базы автоматически не резервируются. Подскажите, пожалуйста, что я делаю не так?
21. bystrov-e 121 20.06.12 16:35 Сейчас в теме
Скажите, у вас файловая ИБ или серверная
22. ShamanNet 20.06.12 16:58 Сейчас в теме
23. bystrov-e 121 20.06.12 17:18 Сейчас в теме
В базе случайно не стоит "Блокировка регламентных заданий"? Это можно посмотреть в консоли кластера серверов 1С:Предприятия
24. ShamanNet 20.06.12 19:32 Сейчас в теме
(23) Нет, блокировка регламентных заданий была отключена (не включалась) ещё на этапе настройки сервера 1С.
25. bystrov-e 121 20.06.12 22:04 Сейчас в теме
Там в конфигурацию включена простенькая консоль для просмотра активных заданий. Посмотрите, есть ли там регламентное задание и активно ли оно. Можно также проверить расписание. При выполнении регламентного задания остаются записи в журнале регистрации, можете ещё и туда заглянуть на предмет того, когда проходили регламентные задания и что происходило в них.
26. ShamanNet 21.06.12 14:04 Сейчас в теме
Да, конечно, регламентное задание есть и активно, но не выполняется. В журнале регистрации только записи о резервированиях, сделанных вручную (нажатием соответствующей кнопки). Расписание проверял и перепроверял. Беда какая-то!
27. bystrov-e 121 21.06.12 15:40 Сейчас в теме
Ну это тогда точно у вас проблема с планировщиком заданий. Проверьте в консоли кластера. Настройка задается для каждой базы в отдельности. При создании базы для резервного копирования могли случайно поставить/забыть снять галку блокировки заданий.
28. Гость 06.07.12 13:43
Вот такую http://infostart.ru/public/121407/ систему посмотри значительно функциональнее. Не ново!
29. bystrov-e 121 06.07.12 13:52 Сейчас в теме
(28) Гость, 12000 стоит та разработка, а эта - бесплатная. Вы наверное свою разработку рекламировать пытаетесь? :)
30. Гость 06.07.12 15:03
Может она того стоит! ) Думаю за демкой можно к разработчику обратиться.
31. bystrov-e 121 06.07.12 15:18 Сейчас в теме
(30) Гость, Обратитесь, попробуете, можете мне в личку написать о результатах:).

Та конфигурация, судя по описанию, не делает резервную копию базы SQL, а выгружает базу средствами 1С. Это применимо далеко не во всех случаях, занимает гораздо больше времени и восстановленная из такой резервной копии база не будет полной копией существующей - будет иметь другие индексы итд итп. Так что оптимальный вариант, если база серверная - именно выгрузка средствами СУБД, а не 1С.

Там заявлено больше функций чем у меня, но я и не претендую на то, что моя конфигурация - самая функциональная. Доработки функциональности планируются, но не скоро и они в первую очередь будут направлены на поддержку других СУБД, потому что именно в этом суть разработки.
32. Гость 06.07.12 15:24
Проде как SQL сам деалет копии и снапшоты, зачем еще что-то придумывать?
33. bystrov-e 121 06.07.12 15:46 Сейчас в теме
(32) Гость, Я на этот вопрос выше где-то отвечал.
34. wert453 09.07.12 07:54 Сейчас в теме
Ошибка подключения: {ОбщийМодуль.БКП_Сервер.Модуль(379)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): [DBNETLIB][ConnectionOpen (Connect()).]SQL Server не существует, или доступ запрещен.

вот такая ошибка, что делать?
35. bystrov-e 121 09.07.12 08:06 Сейчас в теме
(34) wert453, Нужно проверить пользователя, пароль, правильность написания пути для подключения к серверу.
36. wert453 09.07.12 10:21 Сейчас в теме
так - отсюда по подробнее,

у меня на сервере крутится база - см. картинку.

Мне вместо базы - Прописать "База1" , имя "Серв1"

или можно указать путь к базе?
Прикрепленные файлы:
Светлый ум; +1 Ответить
38. bystrov-e 121 09.07.12 10:47 Сейчас в теме
(36) wert453, Тут небольшая путаница в понятиях. В качестве сервера нужно указывать сервер, на котором крутится SQL, лучше также в явном виде указать путь к instance SQL сервера. Имя базы, пользователя и пароль также относятся к SQL серверу. Т.е. в виде сервера должно быть что-то вроде

SERVER или SERVER\MSSQLSERVER, где MSSQLSERVER - имя инстанса.

В качестве базы указывается имя базы - BASE, например.

пользователь (если выбрана аутентификация SQL) - обычно sa. Пароль - пароль входа SQL.

Имя сервера и базы 1С не обязательно должны совпадать с именем базы и сервера SQL, но обычно их настраивают одинаковыми, отсюда и путаница.
37. Светлый ум 218 09.07.12 10:23 Сейчас в теме
Аналогичная проблема: при нажатии кнопки "проверить соединение" та же ошибка.
39. wert453 09.07.12 11:09 Сейчас в теме
40. vi.rus 8 18.07.12 09:57 Сейчас в теме
Вот бы если в конфигурации еще была возможность восстановления из файлов бэкапа, было бы замечательно
41. bystrov-e 121 18.07.12 10:50 Сейчас в теме
(40) vi.rus, Планируется в будущем )
42. Светлый ум 218 20.07.12 08:25 Сейчас в теме
Объясните пожалуйста, по подробней на счет пути каталога "Папка для выгрузок":

- у меня пишет что выгрузка произошла успешно, но архива в папке нет - даже пустого, а в "истории резервных копий" пишет что архив сформировался тут же и размер его "0"
43. fadaserw 6 31.08.12 16:42 Сейчас в теме
Ошибка подключения: {ОбщийМодуль.БКП_Сервер.Модуль(379)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Ошибка входа пользователя "admin".

КАК ВЫЛЕЧИТЬ
44. fadaserw 6 31.08.12 16:45 Сейчас в теме
45. vervolf9 31.08.12 18:05 Сейчас в теме
Хм, интересно, скачаю потестировать себе, затея прикольная.
46. Светлый ум 218 28.09.12 09:11 Сейчас в теме
Автоматически (по указанному расписанию) не создает архив, по кнопке "создать сейчас делает".

Как нужно заполнять закладки "настройки автоматического сохранения" - все четыре можно заполнить и всеравно должен работать, или по одной как-то?.. всё уже перепробовал.
47. lavrov 148 27.11.12 23:32 Сейчас в теме
Спасибо автору , сильно пригодилась, встроил строку подключения в свою конфигурацию.
Обратите внимание на права доступа к папкам с архивами пользователя под котором запущена служба sql , из за этого архивация можеn не проходить.
kaliningrad06; +1 Ответить
48. kaliningrad06 18.12.12 16:38 Сейчас в теме
Кто может поделиться а то на счету 0 а то очень нужно.
49. kaliningrad06 20.12.12 01:59 Сейчас в теме
Есть вопрос а как открыть исходный кот
50. hestoeaug 11 08.12.16 14:27 Сейчас в теме
Автору респект !!!!! отличная работа ! Спасибо огромное!!!!
51. klom 08.12.16 14:44 Сейчас в теме
"Использование при невозможности использования стандартных механизмов SQL Server (например, в Express версии)."

Данная разработка чем лучше двух файлов
один с расширением backup.sql, в котором строки вида
BACKUP DATABASE [Base_naim] TO DISK = N'i:\sql_backup\Base_naim.bak' WITH NOFORMAT, NOINIT, NAME = N'Base_naim-Полная База данных Резервное копирование', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
Второй backup.bat со строкой вида
sqlcmd -S SERVER -E -i I:\sql_backup\backup.sql

Это все для Express версии.
erutan; Vecjh2008; +2 Ответить
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии



Ведущий программист 1С
Москва
зарплата от 150 000 руб. до 180 000 руб.
Полный день

Руководитель проектов 1С
Москва
Полный день

Консультант-аналитик 1С: ЗУП
Санкт-Петербург
Полный день