2015-01-13 7 views
1

ВОПРОС:Release Management> DACPAC - арифметическая операция приводит к переполнению

Невозможно развернуть DACPAC с помощью Powershell скрипт. Этот скрипт работает примерно на 20 других серверах баз данных, которые были настроены для управления выпуском.

РАБОЧАЯ СРЕДА:

  1. Windows Server 2008 R2
  2. Powershell 2.0
  3. SQL Server 2008 R2 64-разрядные
  4. Visual Studio Premium 2012 Update 4 Инструменты
  5. SQL Server Data для Visual Studio 2012
  6. Управление развертыванием Deploymenter для Visual Studio 2 013 Update 4

НЕ РАБОЧИЕ СРЕДЫ:

  1. Windows Server 2008 R2
  2. Powershell 2,0
  3. SQL Server 2012 64 бит
  4. Visual Studio Premium 2012 Update 4
  5. Инструменты данных SQL Server для Visual Studio 2012
  6. Release Management Deployer для Visual Studio 2013 Update 4

КОМАНДА:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\sqlpackage.exe 
    /Action:Publish 
    /SourceFile:"\\<Server>\Builds\<BuildDefinition>\<BuildNumber>\Databases\Arsenal\Arsenal.dacpac" 
    /Profile:"\\<Server>\Builds\<BuildDefinition>\<BuildNumber>\Deployment\Configuration\Databases\Publish_DEFAULT.xml" 
    /p:TreatVerificationErrorsAsWarnings="True" 
    /v:BuildNumber="<BuildNumber>" 

где:

Publish_DEFAULT.xml содержит следующие ключи:

<?xml version="1.0"?> 
<Configurations> 
    <Properties> 
    <Property key="IncludeCompositeObjects" value="True" /> 
    <Property key="ScriptDatabaseOptions" value="True" /> 
    <Property key="BlockOnPossibleDataLoss" value="False" /> 
    <Property key="DropObjectsNotInSource" value="True" /> 
    <Property key="DropRoleMembersNotInSource" value="True" /> 
    <Property key="DropPermissionsNotInSource" value="True" /> 
    <Property key="DeployDatabaseInSingleUserMode" value="True" /> 
    <Property key="BackupDatabaseBeforeChanges" value="False" /> 
    <Property key="GenerateSmartDefaults" value="True" /> 
    <Property key="TreatVerificationErrorsAsWarnings" value="True" /> 
    </Properties> 
    <SQLCmdVariables> 
    <SQLCmdVariable key="BuildNumber" value="UNKNOWN" /> 
    <SQLCmdVariable key="DeployLoadTestData" value="False" /> 
    <SQLCmdVariable key="DeployPurgeData" value="False" /> 
    </SQLCmdVariables> 
</Configurations> 

LOG:

Публикация в базе данных Инициализация развертывания (Старт) Инициализация развертывания (Сбой) Неожиданное произошел сбой: Арифметические операции привело к переполнению ..

Unhandled Exception: System.OverflowException: Arithmetic operation resulted in an overflow. at System.Data.SqlClient.TdsParser.ConsumePreLoginHandshake(Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean& marsCapable) at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover) at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource 1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource 1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource 1 retry) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.Data.Tools.Schema.Common.SqlClient.ReliableSqlConnection.<OpenConnection>b__0() at Microsoft.Data.Tools.Schema.Common.SqlClient.RetryPolicy.<>c__DisplayClass4.<ExecuteAction>b__3(RetryState retryState) at Microsoft.Data.Tools.Schema.Common.SqlClient.RetryPolicy.ExecuteAction[R](Func 2 func, Nullable 1 token) at Microsoft.Data.Tools.Schema.Common.SqlClient.RetryPolicy.ExecuteAction(Action 1 action, Nullable 1 token) at Microsoft.Data.Tools.Schema.Common.SqlClient.ReliableSqlConnection.OpenConnection() at Microsoft.Data.Tools.Schema.Common.SqlClient.ReliableConnectionHelper.OpenConnection(String connectionString, Boolean useRetry) at Microsoft.Data.Tools.Schema.Common.SqlClient.ReliableConnectionHelper.OpenConnection(SqlConnectionStringBuilder csb, Action 1 usingConnection, Predicate 1 catchException, Boolean useRetry) at Microsoft.Data.Tools.Schema.Common.SqlClient.ReliableConnectionHelper.GetServerAndDatabaseVersion(String connectionString, ServerAndDatabaseInfo& info) at Microsoft.Data.Tools.Schema.Sql.SqlDatabaseSchemaProviderFamily.DetermineDatabaseSchemaProvider(String connectionString) at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeploymentEndpointServer.GetProviderType(DatabaseSchemaProviderFamily connectionSniffer, String connectionString, Type& providerType, Boolean& validDataSource) at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeploymentEndpointServer.OnInit(ErrorManager errors, String targetDBName) at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeployment..ctor(SqlDeploymentConstructor constructor) at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeploymentConstructor.ConstructServiceImplementation() at Microsoft.SqlServer.Dac.DacServices.CreatePackageToDatabaseDeployment(String connectionString, IPackageSource packageSource, String targetDatabaseName, DacAzureDatabaseSpecification creationDefaults, DacDeployOptions options, ErrorManager errorManager) at Microsoft.SqlServer.Dac.DeployOperation.<>c__DisplayClass3.<>c__DisplayClass5.<CreatePlanInitializationOperation>b__1() at Microsoft.Data.Tools.Schema.Sql.Dac.OperationLogger.Capture(Action action) at Microsoft.SqlServer.Dac.DeployOperation.<>c__DisplayClass3.<CreatePlanInitializationOperation>b__0(Object operation, CancellationToken token) at Microsoft.SqlServer.Dac.Operation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context) at Microsoft.SqlServer.Dac.ReportMessageOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context) at Microsoft.SqlServer.Dac.OperationExtension.CompositeOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context) at Microsoft.SqlServer.Dac.OperationExtension.CompositeOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context) at Microsoft.SqlServer.Dac.DeployOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context) at Microsoft.SqlServer.Dac.OperationExtension.Execute(IOperation operation, DacLoggingContext loggingContext, CancellationToken cancellationToken) at Microsoft.SqlServer.Dac.DacServices.InternalDeploy(IPackageSource packageSource, Boolean isDacpac, String targetDatabaseName, DacAzureDatabaseSpecification creationDefaults, DacDeployOptions options, CancellationToken cancellationToken, DacLoggingContext loggingContext) at Microsoft.SqlServer.Dac.DacServices.Deploy(DacPackage package, String targetDatabaseName, Boolean upgradeExisting, DacDeployOptions options, Nullable 1 cancellationToken) at Microsoft.Data.Tools.Schema.CommandLineTool.DacServiceUtil.<>c__DisplayClass8.b__0(DacServices service) at Microsoft.Data.Tools.Schema.CommandLineTool.DacServiceUtil.ExecuteDeployOperation(String connectionString, String filePath, MessageWrapper messageWrapper, Boolean sourceIsPackage, Boolean targetIsPackage, Func 1 generateScriptFromPackage, Func 2 generateScriptFromDatabase) at Microsoft.Data.Tools.Schema.CommandLineTool.DacServiceUtil.DoDeployAction(DeployArguments parsedArgs, Action 1 writeError, Action 2 writeMessage, Action`1 writeWarning, CancellationToken cancellationToken) at Microsoft.Data.Tools.Schema.CommandLineTool.Program.DoDeployActions(CommandLineArguments parsedArgs) at Microsoft.Data.Tools.Schema.CommandLineTool.Program.PerformAction(CommandLineArguments parsedArgs) at Microsoft.Data.Tools.Schema.CommandLineTool.Program.Run(String[] args) at Microsoft.Data.Tools.Schema.CommandLineTool.Program.Main(String[] args)

Дополнительный комментарий:

Единственное отличие между двумя средами - это версия SQL Server ... Однако у меня есть сервер с SQL Server 2012, который работает!

Я запустил сценарий Powershell как идентификатор службы: агент развертывания Microsoft ... такая же ошибка файла журнала; однако, sqlpackage.ехе бросает следующее сообщение об ошибке:

Сигнатура проблемы: Имя события проблемы: CLR20r3 Проблема Подпись 01: sqlpackage.exe Проблема Подпись 02: 12.0.2743.1 Проблема Подпись 03: 5438200c Проблема Подпись 04: System.Data проблемы Signature 05: 4.0.30319.18408 проблемы Подпись 06: 52310bef проблемы Подпись 07: 28b2 проблемы Signature 08: ая проблемы Подпись 09: System.OverflowException Версия ОС: 6.1.7601.2.1.0.272.7 Locale ID: 1033 Дополнительная информация 1: d90e Дополнительная информация 2: d90ee7d582c41ae7b6b96ca9c0463ab1 Дополнительная информация 3: 5e41 Дополнительная информация 4: 5e414a69026c10f11cc9c0b8e675c3aa

+0

Это, безусловно, SSDT проблема, а не проблема RM ...вы можете принудительно переустановить SSDT? –

ответ

1

Вместо того, чтобы опубликовать DACPAC непосредственно, как о создании сценария изменения (опция флажок из публикации профиля) и запуска T -SQL, который генерируется против базы данных? Другой вариант - открыть командную строку в папке sqlpackage.exe и запустить команду напрямую, чтобы узнать, дает ли это более ясное сообщение об ошибке. Кроме того, работает ли запуск профиля публикации непосредственно с работой базы данных? Visual Studio может пролить свет на это.

1

ВОПРОС:

Этот сервер был повышен до SQL Server 2012 с SQL Server 2005 & поддержкой для развертывания DACPAC (SSDT) ​​через Управление релизами. Этапы обновления отличались от всех других рабочих серверов баз данных.SSDT & RM были установлены после того, как SQL Server 2012 (не раньше)

РАЗРЕШЕНИЯ:

Восстановленные сервер базы данных с помощью следующих шагов:

  • Добавить пользователи домена & групп локальной группы Администраторы (Перезагрузка)
  • Добавить роль:
    • Веб-сервер (IIS) (перезагрузка)
  • Добавить функции:
    • Desktop Experience (Restart)
    • Средства удаленного администрирования сервера
    • SMTP Server
    • SNMP Услуги
    • Windows Powershell Integrated Scripting Environment (ISE)
    • для Windows Служба активации процесса
    • WinRM IIS Extensi на
  • Установка обновлений Window (Restart)
  • Установка Virtual CloneDrive
  • Установка & confgure Release Management Deployer для Visual Studio 2013 Update 4
  • Регистрация сервера: DEVSQL2 с сервером управления Release
  • Настройка Powershell (set-executionpolicy remotesigned)
  • Установить инструменты данных SQL Server (SSDT) ​​для Visual Studio 2012
  • Установка обновлений Window (Restart)
  • Установка SQL Server 2005 (64 бит) (по умолчанию экземпляр)
  • Установка Server 2005 Enterprise (64-разрядная версия) Обновление 4 (экземпляр по умолчанию)
  • Установка обновлений Window (Restart)
  • Настройка SQL Server Surface Area
  • Настройка служб отчетов SQL Server (SSRS)
  • Настройка "по умолчанию" директории
  • Move TempDb файлы
  • Создать "стандартные" логины/Роли
  • Восстановление "золотых" базы данных
  • развертывания
  • RM проекта TFS - ПРОШЕЛ
  • Установка SQL Server 2012 Enterprise (64-разрядная версия) (по умолчанию Instance)
  • Установка окна Обновления (Restart)
  • развертывания RM проекта TFS - ПРОШЛО