|   |   | 
| 
 | как снять копию базы средствами ms sql 2012 | ☑ | ||
|---|---|---|---|---|
| 0
    
        sidalexsandr 17.03.17✎ 09:11 | 
        Поискал в интернете но не нашел. Как создать копию 1с sql базы средствами ms sql server 2012, причем имя копии должно быть UPP_2017-03-11 (то есть UPP_Текущая дата).     | |||
| 1
    
        bodri 17.03.17✎ 09:13 | 
        Один раз снять или всё таки чтоб постоянно копировал с интервалом?     | |||
| 2
    
        vde69 17.03.17✎ 09:13 | 
        &НаКлиенте
 // // Процедура ВыгрузитьАрхивSQL(ЛокальноеИмяАрхива, Отказ) Экспорт Попытка мИмяБДSQL = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БазаИсточник, "ИмяБДSQL"); мСерверSQL = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БазаИсточник, "СерверSQL"); COMОбъектSQL = СоздатьПодключениеSQL(мСерверSQL, мИмяБДSQL); COMОбъектSQL.Execute("USE " + СокрЛП(мИмяБДSQL) + "; |BACKUP DATABASE " + СокрЛП(мИмяБДSQL) + " |TO DISK = '" + СокрЛП(ЛокальноеИмяАрхива) + "' |WITH COPY_ONLY, NOFORMAT, NOINIT, COMPRESSION, SKIP, NOREWIND, NOUNLOAD, STATS = 10 |;"); УстановитьСтатусОперации("Выгрузка", 3); Исключение Сообщить(ОписаниеОшибки()); Отказ = Истина; УстановитьСтатусОперации("Выгрузка", 2); КонецПопытки; КонецПроцедуры &НаКлиенте // // Процедура ЗагрузитьАрхивSQL(ЛокальноеИмяАрхива, ИмяБазыИсточника, ИмяDBO, Отказ) Экспорт Попытка мИмяБДSQL = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БазаДляКопии, "ИмяБДSQL"); мСерверSQL = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БазаДляКопии, "СерверSQL"); ИмяФайлаДанных = ""; ИмяФайлаЛога = ""; COMОбъектSQL = СоздатьПодключениеSQL(мСерверSQL, "master"); Рекордсет = Новый COMОбъект("ADODB.RecordSet"); Command = Новый COMОбъект("ADODB.Command"); Command.ActiveConnection = COMОбъектSQL; Command.CommandText = "select mf.physical_name |from sys.master_files as mf | join sys.databases as mb | on mb.database_id = mf.database_id |WHERE (mb.name = '"+мИмяБДSQL+"' and mf.type=0)"; Command.CommandType = 1; Рекордсет = Command.Execute(); Рекордсет.MoveFirst(); Пока не Рекордсет.EOF() Цикл ИмяФайлаДанных = Рекордсет.Fields("physical_name").Value; Рекордсет.MoveNext(); КонецЦикла; Command.CommandText = "select mf.physical_name |from sys.master_files as mf | join sys.databases as mb | on mb.database_id = mf.database_id |WHERE (mb.name = '"+мИмяБДSQL+"' and mf.type=1)"; Command.CommandType = 1; Рекордсет = Command.Execute(); Рекордсет.MoveFirst(); Пока не Рекордсет.EOF() Цикл ИмяФайлаЛога = Рекордсет.Fields("physical_name").Value; Рекордсет.MoveNext(); КонецЦикла; ЗаписатьНачалоОперацииНаСервере (); ТекстКоманды = "RESTORE DATABASE " + СокрЛП(мИмяБДSQL) + " |FROM DISK = '" + СокрЛП(ЛокальноеИмяАрхива) + "' |WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5, |MOVE N'"+ИмяБазыИсточника+"' TO N'"+ИмяФайлаДанных+"', |MOVE N'"+ИмяБазыИсточника+"_log' TO N'"+ИмяФайлаЛога+"';"; COMОбъектSQL.Execute(ТекстКоманды); ТекстКоманды = "ALTER AUTHORIZATION ON DATABASE::"+ СокрЛП(мИмяБДSQL) +" TO " + СокрЛП(ИмяDBO) + ";"; COMОбъектSQL.Execute(ТекстКоманды); УстановитьСтатусОперации("Загрузка", 3); Исключение Сообщить(ОписаниеОшибки()); Отказ = Истина; УстановитьСтатусОперации("Загрузка", 2); КонецПопытки; КонецПроцедуры | |||
| 3
    
        sidalexsandr 17.03.17✎ 09:15 | 
        (1) Постоянно, каждую ночь в 2 часа.     | |||
| 4
    
        bodri 17.03.17✎ 09:17 | 
        тогда надо настроить Maintenance Plans в консоли скл     | |||
| 5
    
        bodri 17.03.17✎ 09:19 | ||||
| 6
    
        sidalexsandr 17.03.17✎ 09:25 | 
        (5) Спасибо.     | |||
| 7
    
        1dvd 17.03.17✎ 09:33 | 
        (3) а сервак не треснит, если каждый день новую копию делать?     | |||
| 8
    
        bodri 17.03.17✎ 09:36 | 
        (7) а с чего он треснит? у меня настроено ежедневная полная архивация сжатием и каждые 3 часа промежуточные. Эти архивы выгружаются на сервак, а потом перекидываются в 2 разных места. Также планировщик удаляет эти архивы которые старше 2-х дней.     | |||
| 9
    
        1dvd 17.03.17✎ 09:37 | 
        (8) архив сколько занимает? А сколько развернутая? Представь 365 баз в год     | |||
| 10
    
        1dvd 17.03.17✎ 09:37 | 
        *через год     | |||
| 11
    
        bodri 17.03.17✎ 09:39 | 
        (9) 2 базы 250 и 300 ГБ, архив 20 и 22 ГБ соответственно. В этих двух местах куда всё скидывается чистятся по определенному сценарию.     | |||
| 12
    
        1dvd 17.03.17✎ 09:40 | 
        (11) вот. А ему нужно каждый день делать новую развернутую копию базы. Про чистку ни слова     | |||
| 13
    
        Fish гуру 17.03.17✎ 09:42 | 
        (8) А зачем каждый день делать полную копию?     | |||
| 14
    
        elCust 17.03.17✎ 09:42 | 
        (0) А зачем восстанавливать под определенной датой?     | |||
| 15
    
        Fish гуру 17.03.17✎ 09:50 | 
        +(13) У нас каждый час - бэкап ЖТ, разностный бэкап - раз в день ночью, ну а полный - раз в неделю.     | |||
| 16
    
        Dmitrii гуру 17.03.17✎ 09:51 | 
        1dvd дисковое пространство сейчас стоит сущие копейки.
 Всерьез обсуждать вопрос экономии на архивах - просто глупо. Этот не то место, где следует экономить. Ежедневный архив - нормальная практика для подавляющего большинства случаев. Более частые полные архивы, скорее всего, бессмысленны - вполне достаточно инкрементальных хоть каждый час. В остальных (более сложных) случаях базы держат в полной модели восстановления. Ну и ни разу не видел, чтобы кто-то хранил ежедневные архивы более года. Как правило, всё что старше года - оставляют только какие-то ключевые архивы на определенные моменты (после закрытия периода - поквартальные, после прохождения аудита и т.п.) | |||
| 17
    
        bodri 17.03.17✎ 09:56 | 
        (12) ну к этому он придет когда место на винтах закончится     | |||
| 18
    
        bodri 17.03.17✎ 09:56 | 
        (13) модель Симпл стоит     | |||
| 19
    
        Fish гуру 17.03.17✎ 09:56 | 
        (16) У нас ежедневные хранятся месяц, полные еженедельные - где-то полгода, потом оставляем одну за месяц, и далее они уезжают на ленту.     | |||
| 20
    
        Fish гуру 17.03.17✎ 09:57 | 
        (18) Тогда понятно. У нас фулл.     | |||
| 21
    
        Дарлок 17.03.17✎ 10:00 | 
        (15) а из разностного бэкапа восстановиться пробовали или только в теории? )     | |||
| 22
    
        Дарлок 17.03.17✎ 10:00 | 
        (20) для какой цели?     | |||
| 23
    
        Fish гуру 17.03.17✎ 10:01 | 
        (21) Почему пробовали? Восстанавливались не раз. Причём на любой момент времени.     | |||
| 24
    
        Dmitrii гуру 17.03.17✎ 10:01 | 
        (13) >> зачем каждый день делать полную копию?
 У нас, например, ежедневно ночью производится обновление статистики и реорганизация индексов. После этой процедуры разностные бекапы (сохраняющие все измененные страницы) резко вырастают в объёме. Поэтому после обновления статистики и реорганизации индексов делаем полный бекап и начиная с него в течении дня ежечасно делаются разностные, весьма малого объема. Модель восстановления у нас простая. Полную считаем избыточной. Ежечасного архива за глаза хватает. Еще не разу не требовалось восстановить базу на какую-то определенную минут или транзакцию. | |||
| 25
    
        Dmitrii гуру 17.03.17✎ 10:02 | 
        (21) А что не так с разностными бекапами?
 У нас ни разу (3 разать тьфу) не было проблем. | |||
| 26
    
        Fish гуру 17.03.17✎ 10:02 | 
        (22) Чтобы можно было восстановиться на любой момент времени, а не на момент создания бэкапа.     | |||
| 27
    
        Дарлок 17.03.17✎ 10:10 | 
        (25) неплохо проверить админов на умение их развертывать )
 (26) никогда не встречал такой необходимости. Обычно админы просто по дефолту фулл оставляют. | |||
| 28
    
        sidalexsandr 17.03.17✎ 10:40 | 
        (5) Как сделать имя копии должно быть UPP_2017-03-11 (то есть UPP_Текущая дата)?     | |||
| 29
    
        bodri 17.03.17✎ 10:45 | 
        (28) он сам генерить имя в формате ИмяБазы_ГодМесяцДеньЧасМинутаСекунда     | |||
| 30
    
        Одинесю 17.03.17✎ 10:46 | 
        (28) Батником делал. Копию переименовываешь, переносишь куда надо, удаляешь. Батник регламентом.     | |||
| 31
    
        Fish гуру 17.03.17✎ 10:47 | 
        (27) "никогда не встречал такой необходимости. " - А я частенько. У нас модель фулл выбрана не по умолчанию (вроде по умолчанию как раз симпл, но могу путать), а вполне осознанно и по необходимости.     | |||
| 32
    
        bodri 17.03.17✎ 10:50 | 
        (31) В полной по умолчанию Фулл, а в экспрессе Симпл     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |