Если Вы ищете поставщика с долговечностью/устойчивостью и реальным знанием безопасности и как иметь дело с данными предприятия затем всегда существует главный папа всех поставщиков резервного хранилища. Айен-Маунтин. Они были вокруг с 1951 и публично проданы так, можно посмотреть на их финансовое положение там отчеты SEC, если Вы желаете. У них есть большая информация о компании, их истории, их мерах безопасности, дата-центрах, и т.д. на их веб-сайте.
Однако никакой сервис облачной резервной копии не собирается сделать восстановления с нуля. У Вас должно будет быть локальное какое-то решение для резервного копирования при поиске той способности. Если ни для чего иного, чем загрузиться связывают Вашу систему для восстановления данных из облака. Однако Ваш RTO лучше смочь иметь дело со временем это собирается взять для получения данных из облака.
Вам повезло, если исходные развернутые сборки просто отсутствуют, вы все равно можете экспортировать двоичный файл сборки в виде шестнадцатеричной строки.
1. Откройте SSMS и перейдите к Программируемость -> Сборки. Вы должны увидеть свою зарегистрированную сборку, я выделил свою красным.
2. Щелкните правой кнопкой мыши сборку и запишите ее в новое окно запроса:
3. Когда вы это сделаете, вы что-то увидите. вот так:
CREATE ASSEMBLY [Microsoft.SqlServer.Types]
AUTHORIZATION [sys]
FROM 0x4D5A90000300000004000000FFFF0000B800000000000000400000000...[snipped]
WITH PERMISSION_SET = UNSAFE
Строка с ОТ 0x4D5A90000 ...
- это фактическая сборка, закодированная в виде большой шестнадцатеричной строки. См. Ниже, как выполнить экспорт обратно в формат файла.
Убедитесь, что вы также используете сценарии для любых функций, триггеры и т. д., которые также зависят от этой сборки. Вы можете узнать их, выполнив «Просмотр зависимостей» для сборки в SSMS.
У вас должна быть возможность безнаказанно перезагружать сервер, потому что сборка сохраняется и загружается из одной из таблиц системной базы данных (кого имя я могу Не припоминаю, но сборка видна через системное представление sys.assembly_files
), а не в файловой системе.
Однако, если вы не хотите совершать перезагрузку, выполните экспорт, как описано выше, а затем воссоздайте на другом экземпляре SQL 2005, чтобы убедиться, что все в порядке.
На основании ответа, который я нашел в этой ветке , вы можете экспортировать зарегистрированные сборки обратно в обычные файлы. Если для развертывания сборки использовалась Visual Studio, на сервере SQL также могли бы храниться некоторые объекты исходного кода, что, конечно, является бонусом. Например, когда я запросил свой сервер разработки после развертывания из VS2010, я обнаружил следующее:
SELECT * FROM sys.assembly_files
Как видите, есть несколько файлов, связанных с SqlServerProject2
( assembly_id = 65540 ). Мы можем экспортировать их все, запустив этот сценарий:
DECLARE @assembly_id int, @name nvarchar(260), @content varbinary(MAX)
DECLARE @ObjectToken INT, @outputdir nvarchar(20)
-- Get assembly id from querying sys.assembly_files
SET @assembly_id = 65540 -- IMPORTANT: SET THIS VALUE
SET @outputdir = 'D:\Data\Assemblies\' -- AND THIS PATH
DECLARE assy_cursor CURSOR FOR
SELECT name, content
FROM sys.assembly_files
WHERE assembly_id = @assembly_id
OPEN assy_cursor
FETCH NEXT FROM assy_cursor INTO @name, @content
WHILE @@FETCH_STATUS = 0
BEGIN
SET @name = @outputdir + REPLACE(@name, '\', '-')
print 'Saving: ' + @name
EXEC sp_OACreate 'ADODB.Stream', @ObjectToken OUTPUT
EXEC sp_OASetProperty @ObjectToken, 'Type', 1
EXEC sp_OAMethod @ObjectToken, 'Open'
EXEC sp_OAMethod @ObjectToken, 'Write', NULL, @content
EXEC sp_OAMethod @ObjectToken, 'SaveToFile', NULL, @name, 2
EXEC sp_OAMethod @ObjectToken, 'Close'
EXEC sp_OADestroy @ObjectToken
FETCH NEXT FROM assy_cursor INTO @name, @content
END
CLOSE assy_cursor
DEALLOCATE assy_cursor
Вам нужно будет установить эти две переменные:
SET @assembly_id = 65540
SET @outputdir = 'D:\Data\Assemblies\'
Путь @outputdir
должен быть где-то, куда SQL Server имеет права на запись.
Когда вы выполняете сценарий, вы должны получить один или несколько файлов. Если у вас нет всего исходного кода, вы всегда можете декомпилировать полученную сборку с помощью .NET Reflector.
Примечание: Автоматизация OLE (хранимые процедуры sp_OAxxxxx
) по умолчанию отключена в SQL Server, но вы можете включить ее, выполнив:
use master
go
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO