Книга знаний

1С:Предприятие / v8 / Администрирование

v8: Бэкап базы средствами SQL-DMO

В статье приведен пример обработки для архивации базы средствами SQL DMO. Просто скопируйте образец кода в файл ERT, подставьте свои пароли и явки. Автор статьи: romix | Редакторы: MikleV, borik,
Последняя редакция №4 от 12.10.06 | История
URL: http://kb.mista.ru/article.php?id=121

Ключевые слова: backup, sql, резервная копия, SQLDMO


Пример для 1С:Предприятие 7.7



В каталоге информационной базы, в которой вы будете запускать обработку, создайте подпапки Archive и Temp. В папку ExtForms положите файл rar.exe.

//////////////////////////////////////////////////////////////////////
Функция Ведущий0(ч)
    Если ч<10 Тогда
        Возврат "0"+ч;
    КонецЕсли;
    Возврат ч;
КонецФункции

//////////////////////////////////////////////////////////////////////
Функция ПолучитьВременнуюМетку()
    перем гг, мм, дд, ч, м, с;
    д=ТекущаяДата();
    ТекущееВремя(ч, м, с);
    
    гг=ДатаГод(д);
    мм=ДатаМесяц(д);




    дд=ДатаЧисло(д);
    
    Возврат ""+гг+"_"+Ведущий0(мм)+"_"+Ведущий0(дд)+"__"+Ведущий0(ч)+"_"+Ведущий0(м)+"_"+Ведущий0(с);
КонецФункции


//*******************************************
Процедура Сформировать()
    Сообщить(ТекущееВремя()+" Начало архивации.");
    SQLServer=СоздатьОбъект("SQLDMO.SQLServer");
    SQLServer.LoginSecure=0;
    SQLServer.AutoReConnect=0;
    SQLServer.Connect("УКАЖИТЕ ЗДЕСЬ ИМЯ ВАШЕГО СЕРВЕРА SQL","sa","УКАЖИТЕ ЗДЕСЬ ВАШ ПАРОЛЬ SA");
    
    ИмяBak=КаталогИБ()+"Temp\Base2006.bak";
    ИмяRar=КаталогИБ()+"Temp\Base2006.rar";
    
    
    Backup=СоздатьОбъект("SQLDMO.Backup");
    Backup.Action=0; //резервирование всей базы данных

    Backup.DataBase="Base2006"; //ИМЯ БАЗЫ ДАННЫХ
    Backup.Files=ИмяBak;
    Backup.MediaName="Base2006.bak "+РабочаяДата()+" "+ТекущееВремя();
    Backup.BackupSetName="Base2006";
    Backup.BackupSetDescription="Резервная копия";
    Backup.SQLBackup(SQLServer);
    
    Сообщить(ТекущееВремя()+" Сжатие архива.");

//Выполняем архивацию при помощи rar.exe

    КомандаСистемы(КаталогИБ()+"ExtForms\rar.exe m "+ИмяRar+" "+ИмяBak+" -m1 -ep");

//Добавляем файлы MD и DBA
    
    КомандаСистемы(КаталогИБ()+"ExtForms\rar.exe a "+ИмяRar+" h:\Base2006\1Cv7.MD h:\Base2006\1Cv7.dba -ep");
    
    ИмяАрхива=КаталогИБ()+"Archive\"+ПолучитьВременнуюМетку()+".rar";
    
    фс.ПереименоватьФайл(ИмяRar,ИмяАрхива,1);
    
    Сообщить(ТекущееВремя()+" Выгрузка завершена: "+ИмяАрхива);

КонецПроцедуры


Примеры работы с SQL-DMO были почерпнуты из книги Андрея Михайлова "1С:Предприятие 7.7/8.0 - системное программирование".

Пример для 1С:Предприятие 8.0 (от MikleV)



SQLDMO предоставляет разработчику полный доступ к свойствам , методам и объектам MS SQL Server
Для версии 8.0 написал обработку : http://immortalmikle.narod.ru/mainpage.html
В обработке: получение списка доступных серверов и их баз. Бэкап базы и логов, шринк - по расписанию. (через Обработчик Ожидания).Подробнее - в модуле объекта обработки.
Данная обработка писалась в качестве ознакомления с объектами и средствами SQLDMO, а также для администрирования базы на MS SQL Server 2005 EE .


Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика