Динамическое обновление больше не страшно! Сохранение таблицы Config перед динамическим обновлением

19.02.18

База данных - Архивирование (backup)

Обработка для резервного сохранения SQL-таблиц Config b ConfigSave перед динамическим обновлением, а также восстановления этих таблиц в случае сбоя.

Скачать файлы

Наименование Файл Версия Размер
Динамическое обновление больше не страшно! Сохранение таблицы Config перед динамическим обновлением.:
.epf 10,88Kb
60
.epf 1.0 10,88Kb 60 Скачать

Протестировано на релизе 1С:Предприятие 8.3 (8.3.9.2033)

Сделана по мотивам публикации //infostart.ru/public/324751/ 

Отличия:  сделана отдельной обработкой. 

Содержит обычную и управляемую формы. 

Не требует создания процедур на SQL-сервере.  

Требует логина и пароля администратора. 

Перед динамическим обновлением, чтобы не рисковать потерять базу данных (крайне редко, но случается)  копирует таблицы Config и ConfigSave из вашей базы данных в базу master, добавляя к имени таблицы  имя база данных, так как наверняка на вашем SQL-сервере не одна база. 

В случае сбоя, копирует таблицы обратно.  Копирование таблиц занимает секунды, сохраняет огромное количество времени. 

Если база данных была подключена к Хранилищу, то после восстановления, думается, лучше переподключить базу к Хранилищу.

обработка config динамическое обновление backup резервное копирование

См. также

Журнал изменений с восстановлением состояния ссылочных объектов и архивацией по HTTP / COM (расширение + конфигурация, 8.3.14+, ЛЮБАЯ конфигурация)

Архивирование (backup) Журнал регистрации Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

База данных «сама» меняет данные в документах/справочниках? Тогда данный журнал изменений для Вас! Практически не влияет на скорость записи объектов за счет быстрого алгоритма! Скорость работы почти в 2 раза выше типового механизма "История изменений"! Позволяет следить за изменениями и удалением в любых ссылочных объектах конфигурации, с возможностью архивации по HTTP(!) или COM, и сверткой данных. А так же, может восстановить состояние реквизитов (значения) до момента изменения или удаления объекта из базы. Есть ДЕМО-база где можно самостоятельно протестировать часть функционала! Работает на любых платформах выше 8.3.14+ и любых конфигурациях! Версия 3.1 от 24.08.2023!

19200 руб.

15.05.2017    42515    10    24    

38

BackUPv8 - система резервного копирования баз 1С

Архивирование (backup) Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Автоматическое создание копий файловых и серверных информационных баз 1С Предприятие 8 и размещение копий в облаке Яндекс.Диск, локальном или сетевом ресурсе.

1200 руб.

03.09.2014    14726    13    6    

18

Резервное копирование журнала транзакций, наконец-то!

Архивирование (backup) Администрирование СУБД Россия Бесплатно (free)

Постараюсь объяснить, зачем нужно резервное копирование именно журнала транзакций, а не только базы данных, и почему я словно сбросил груз, настроив его - как, покажу, естественно. Кстати, будут скрипты T-SQL (с подробными комментариями) - отличный способ сделать администрирование базы более уютным.

04.12.2023    5857    n_mezentsev    15    

24

Резервное копирование и восстановление 1С баз на PostgreSQL в Windows с помощью pgAdmin, bat-файлов и планировщика

Архивирование (backup) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной инструкции будет описано, как с помощью pgAdmin, bat-файлов и планировщика заданий Windows организовать резервное копирование, восстановление и хранение копий баз данных.

07.10.2022    19804    sapervodichka    36    

142

Архивирование базы в dt и дамп postgres

Архивирование (backup) Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Захотелось клиентам выгрузку архива баз, и выгрузку в дт, готовые скрипты с сети не заработали. Может, кому-то поможет. Релиз 8.3.18.1741.

1 стартмани

25.08.2022    4714    2    Gnom-Gluck    6    

6

Утилита копирования баз данных 1С

Архивирование (backup) Платформа 1С v8.3 Абонемент ($m)

Небольшая утилита для копирования файловых баз данных 1С.

1 стартмани

02.06.2022    4234    3    Giblarium    12    

5
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. madonov 169 12.02.18 08:36 Сейчас в теме
Не очень понятно как воспользоваться обработкой для восстановления, если база валится и при запуске в пользовательском режиме.
=============================
Кажется дошло, её можно запустить из под любой другой живой базы.

Как мне кажется минус в том, что требуется делать бэкапы вручную. По любому именно при падении базы и поймешь, что забыл об этом.
Резервное копирование, все таки должно быть автоматическим. И желательно хранить несколько последних копий, а не только крайнюю.

У меня каждые 20 минут на SQL-сервере выполняется задание, которое копирует конфу в специальную базу.
GO
SET ANSI_NULLS ON
GO 
SET QUOTED_IDENTIFIER ON 
GO 

GO 
DECLARE @SQL varchar(8000), @table_name varchar(100)

SET @table_name = '[Conf_Backup].[dbo].[Config_' + LEFT(CONVERT(VARCHAR, GETDATE(), 120), 16) + ']'
SET @table_name = REPLACE(@table_name, '-', '_')
SET @table_name = REPLACE(@table_name, ':', '_')
SET @table_name = REPLACE(@table_name, ' ', '_')

SET @SQL = 'CRE ATE   TABLE '+@table_name+' 
 ( 
[FileName] [nvarchar](128) NOT NULL, 
[Creation] [datetime] NOT NULL, 
[Modified] [datetime] NOT NULL, 
[Attributes] [smallint] NOT NULL, 
[DataSize] [int] NOT NULL, 
[BinaryData] [image] NOT NULL, 
PRIMARY KEY CLUSTERED 
( 
[FileName] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
INS ERT INTO '+@table_name+'  
SEL ECT * FR OM [BUH].[dbo].[Config]'
exec(@SQL)
GO
Показать


Ночью эта база очищается, чтобы не разрасталась:
USE [Conf_Backup]
GO
declare @i int
set @i = 0
while (@i<99)
begin
declare @table_name varchar(100)
declare table_list cursor for
sel ect name fr om sysobjects o2 wh ere xtype='U' and
not exists (
sel ect * fr om sysforeignkeys k
join syscolumns c1 on (k.fkeyid = c1.id and c1.colid=k.fkey)
join syscolumns c2 on (k.rkeyid = c2.id and c2.colid=k.rkey)
wh ere c2.id = o2.id and c1.id <> o2.id
)
open table_list
fetch next from table_list into @table_name
while @@fetch_status = 0
begin
print 'dropping table '+@table_name
exec ('dr op   table '+@table_name)
fetch next fr om table_list into @table_name
end
close table_list
deallocate table_list
set @i = @i+1
end
go
Показать


В случае неудачного демонического обновления база восстанавливается за 30 секунд:
GO 
DR OP   TABLE [BUH].[dbo].[Config] 
GO 
SET ANSI_NULLS ON 
GO 
SE T QUOTED_IDENTIFIER ON 
GO 
CRE ATE   TABLE [BUH].[dbo].[Config]( 
[FileName] [nvarchar](128) NOT NULL, 
[Creation] [datetime] NOT NULL, 
[Modified] [datetime] NOT NULL, 
[Attributes] [smallint] NOT NULL, 
[DataSize] [int] NOT NULL, 
[BinaryData] [image] NOT NULL, 
PRIMARY KEY CLUSTERED 
( 
[FileName] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] 
GO 
INS ERT INTO [BUH].[dbo].[Config] 
SELE CT * FR OM [Conf_Backup].[dbo].[%ИмяТаблицыСКрайнимБэкапом%] 
GO
Показать


Таким образом получается автоматическое резервное копирование таблицы с конфигурацией каждые 20 минут. Больше 20 минут работы не потеряешь.
Обработка - задумка хорошая, только её бы расширить немного, чтобы умела настраивать на SQL-сервере автоматическое резервное копирование.
ftrain; Grigoripal; megatrend; den1049; cleaner_it; корум; dour-dead; KroVladS; kondrat230386; +9 Ответить
8. vovan_victory 63 13.02.18 08:33 Сейчас в теме
(1)А если повести выполнение обработки по расписанию?...
2. ingmar 12.02.18 10:02 Сейчас в теме
Полезно, но я бы ещё добавил возможность доменной авторизации при подключении к SQL серверу, т.к. это секьюрнее и чаще применяется.

Connection.Open("Provider=SQLOLEDB.1; Server="+Сервер+"; Database="+ИмяБазы+"; Trusted_Connection=yes;");
Sergey.Noskov; +1 Ответить
3. Tangram 158 12.02.18 11:17 Сейчас в теме
я так понимаю, на PostgreSQL не взлетит?
perpleks; Jkey; +2 Ответить
4. Evil Beaver 8107 12.02.18 12:38 Сейчас в теме
По-моему, на ИС уже был автоматический триггер MSSQL, который при начале дин. обновления делал копию автоматически безо всяких "каждый 20 минут" и без ручных действий.
корум; A_Max; madonov; +3 Ответить
7. madonov 169 13.02.18 06:53 Сейчас в теме
5. break 33 12.02.18 12:39 Сейчас в теме
6. info1i 223 13.02.18 02:07 Сейчас в теме
Помню, еще несколько лет назад я такое читал, скачал и применял. Похоже, что данная статья - дубль статьи: https://infostart.ru/public/237871/
Могу, конечно, и ошибаться, но так похоже :)
Silenser; +1 Ответить
9. Silenser 592 13.02.18 09:33 Сейчас в теме
(6) Конечно копия, изобретение велосипедов - наше все!
10. info1i 223 13.02.18 13:20 Сейчас в теме
Пока вспомнил, подскажу важный нюанс: эти две таблицы не всегда спасают. Копировать надо еще таблицу dbschema или db_schema, как-то так.
CratosX; ye_s; +2 Ответить
11. dinopopyys 151 13.02.18 16:03 Сейчас в теме
Насчет "крайне редко" это автор смягчил. Иначе не нужна была обработка!)
12. svk 14.02.18 11:36 Сейчас в теме
А эта проблема ещё существует разве?? Как-то слышал, что давно побеждена 1с-никами...
13. Silenser 592 14.02.18 14:00 Сейчас в теме
(12)Это байки из 1Склепа :)
NeLenin; CratosX; +2 Ответить
14. Magov 20.02.18 20:15 Сейчас в теме
Я сделал немного по другому.
1. Организовал ежесуточное архивирование таблицы Config средствами SQL. В отдельную базу данных. Job стартует в 03:00, выполняет SELECT * into [БазаАрхивов].dbo.[Config] FROM [РабочаяБаза].[dbo].[Config].
2. Сделал 1Совую обработку по выполнению скрипта из п.1, только копирую не в [БазаАрхивов].dbo.[Config], а "[_Config]". Дабы иметь и суточную и текущую копии.

Восстанавливать, имхо, лучше не drop+create, а truncate + select into средствами менеджмент студии.
Оставьте свое сообщение