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

19.02.18

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Динамическое обновление больше не страшно! Сохранение таблицы Config перед динамическим обновлением.:
.epf 10,88Kb ver:1.0
60
60 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

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

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

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

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

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

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

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

См. также

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

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    72788    625    45    

84

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

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

1200 руб.

03.09.2014    15705    21    6    

27

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

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

04.12.2023    9426    n_mezentsev    15    

27

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

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

07.10.2022    28599    sapervodichka    37    

147

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

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

1 стартмани

25.08.2022    5732    3    Gnom-Gluck    6    

7

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

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

1 стартмани

02.06.2022    4689    3    Giblarium    12    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. madonov 259 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 65 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 161 12.02.18 11:17 Сейчас в теме
я так понимаю, на PostgreSQL не взлетит?
perpleks; Jkey; +2 Ответить
4. Evil Beaver 8243 12.02.18 12:38 Сейчас в теме
По-моему, на ИС уже был автоматический триггер MSSQL, который при начале дин. обновления делал копию автоматически безо всяких "каждый 20 минут" и без ручных действий.
корум; A_Max; madonov; +3 Ответить
7. madonov 259 13.02.18 06:53 Сейчас в теме
5. break 33 12.02.18 12:39 Сейчас в теме
6. info1i 236 13.02.18 02:07 Сейчас в теме
Помню, еще несколько лет назад я такое читал, скачал и применял. Похоже, что данная статья - дубль статьи: https://infostart.ru/public/237871/
Могу, конечно, и ошибаться, но так похоже :)
Silenser; +1 Ответить
9. Silenser 612 13.02.18 09:33 Сейчас в теме
(6) Конечно копия, изобретение велосипедов - наше все!
10. info1i 236 13.02.18 13:20 Сейчас в теме
Пока вспомнил, подскажу важный нюанс: эти две таблицы не всегда спасают. Копировать надо еще таблицу dbschema или db_schema, как-то так.
CratosX; ye_s; +2 Ответить
11. KHoroshulinAV 174 13.02.18 16:03 Сейчас в теме
Насчет "крайне редко" это автор смягчил. Иначе не нужна была обработка!)
12. svk 14.02.18 11:36 Сейчас в теме
А эта проблема ещё существует разве?? Как-то слышал, что давно побеждена 1с-никами...
13. Silenser 612 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 средствами менеджмент студии.
Оставьте свое сообщение