Рекомендации по развертыванию служб SSIS - пакет и другие артефакты - PullRequest
2 голосов
/ 17 февраля 2011

В моей среде большинство пакетов служб SSIS являются автономными, и только сам пакет должен быть развернут в производство.

Однако теперь у нас есть довольно сложный набор пакетов, для которых необходимо создавать свои собственные таблицы, и я хотел бы иметь возможность проверить разрешение во время установки, если это возможно.

Мы рассмотрели возможность создания MSI для производственной установки с помощью пошагового мастера.

Мой вопрос: существуют ли передовые практики для сценария развертывания служб SSIS, такого как этот? Можем ли мы перехватить мастер развертывания, который генерирует SSIS по умолчанию, чтобы добавить наши собственные шаги? Есть ли какие-либо документы / рекомендации Microsoft по этому поводу?

Ответы [ 2 ]

0 голосов
/ 01 сентября 2012

Если вы используете SQL Server 2012, вы можете посмотреть модель развертывания проекта:

http://msdn.microsoft.com/en-us/library/hh213290

Это устраняет некоторые хлопоты, связанные с установкой пакетов ... в том, что касается подключения других действий при развертывании, я считаю, что powershell или msbuild работают хорошо.

0 голосов
/ 23 февраля 2011

Благодаря развертыванию нескольких проектов в большой организации с большим количеством бюрократизма, MSI оказалась лучшим решением.С точки зрения импорта самого проекта, а не инструмента развертывания, это возможность выполнить импорт через командную строку, вызываемую из msi:

    [RunInstaller(true)]
    public partial class CustomInstaller : System.Configuration.Install.Installer
    {

        public override void Commit(IDictionary savedState)
        {
                base.Commit(savedState);
                string InstallPath = System.IO.Path.GetDirectoryName(this.Context.Parameters["assemblyPath"]) + @"\";
                string SqlServer = Context.Parameters["SqlServer"];
                SsisInstaller.ImportPackage(InstallPath + "MyProject.dtsx", "MyProject", SqlServer);
        }

    }

public class SsisInstaller
{


    public static void ImportPackage(string packagePath, string packageName, string sqlServer)
    {
        ProcessStartInfo ProcessStartInfo = new ProcessStartInfo(@"""c:\program files\Microsoft SQL Server\100\DTS\Binn\dtutil.exe""");
        ProcessStartInfo.Arguments = @" /File """ + packagePath + @""" /Copy SQL;" + packageName + " /Q /DestS " + sqlServer;
        Process.Start(ProcessStartInfo);
    }

}

Как видите, добавлен шаг пользовательского интерфейсав проект установщика и передается через контекст, чтобы пользователь мог указать имя экземпляра служб SSIS.Также полезно развертывать задания агента Sql в виде сценария .sql вместе с другими зависимостями sql, но массовое развертывание сценариев sql является более общей проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...