У нас есть полностью работающий сервер базы данных, скажем, serverA, данные которого обновляются ежедневно. Мы хотим продублировать эту базу данных на другом сервере, говорит serverB, чтобы у нас была тестовая среда. Базы данных восстановлены на serverB.
Как и на сервере А, мы хотим, чтобы данные сервера Б также обновлялись ежедневно, поэтому можно сказать, что тесты, которые мы проводим на сервере Б, полностью точны, поскольку они будут иметь те же данные, что и сервер А. Мы развернули пакеты SSIS, используемые на сервере A, на сервере B, а также скопировали задания агента SQL Server на сервере B.
Я пытаюсь изменить эти задания и пакеты, чтобы они могли без проблем работать на сервере B, я меняю пути к каталогам, имена серверов и т. д.
Теперь есть эта работа, которая всегда завершается сбоем из-за пакета zip.dtsx. zip.dtsx извлекает файлы из каталога A, сжимает их и сохраняет сжатый файл в каталоге B, а затем удаляет файл в каталоге A. Однако я не могу понять, почему возникает ошибка выполнения.
zip.dtsx имеет задачу сценария с именем Zip files.
Язык сценария: Microsoft Visual C# 2010.
Набор ReadOnlyVariables: User::DestinationPath, User::NamePart, User::SourcePath,$Package::filename
Сценарий,
public void Main()
{
String sourcePath = Convert.ToString(Dts.Variables["SourcePath"].Value);
String namePart = Convert.ToString(Dts.Variables["NamePart"].Value);
String destinationPath = Convert.ToString(Dts.Variables["DestinationPath"].Value);
FileStream sourceFile = File.OpenRead(@sourcePath + namePart);
FileStream destFile = File.Create(@destinationPath + namePart);
GZipStream compStream = new GZipStream(destFile, CompressionMode.Compress);
try
{
int theByte = sourceFile.ReadByte();
while (theByte != -1)
{
compStream.WriteByte((byte)theByte);
theByte = sourceFile.ReadByte();
}
}
finally
{
compStream.Dispose();
sourceFile.Close();
destFile.Close();
File.Delete(@sourcePath + namePart);
}
Dts.TaskResult = (int)ScriptResults.Success;
}
Ошибка, которую я получаю при выполнении задачи в Microsoft Visual Studio -> Щелкните правой кнопкой мыши объект задачи сценария -> Выполнить задачу
Я не знаком с Microsoft Visual C# и только что начал использовать пакеты SSIS, поэтому я действительно в растерянности.
ОБНОВЛЕНИЕ: я попытался закомментировать разные строки в скрипте C#. Наконец, когда я закомментировал File.Delete(@sourcePath + namePart);
, задание, вызывающее zip.dtsx, завершилось успешно. Однако я не уверен, почему у меня возникает ошибка с этой строкой. Я не уверен, что это из-за разрешений или чего-то еще.
#region Namespaces using System; using System.Data; using Microsoft.SqlServer.Dts.Runtime; using System.Windows.Forms; using System.IO; using System.IO.Compression; #endregion
- person Krish   schedule 14.10.2016