EXC — различия между версиями
Материал из Oktell
Строка 49: | Строка 49: | ||
При переносе сервера после восстановления БД из бэкапов. При установке Дашбордов может возникнуть следующая ошибка (пример перенос с sql server 2005 express на sql server 2012 express) | При переносе сервера после восстановления БД из бэкапов. При установке Дашбордов может возникнуть следующая ошибка (пример перенос с sql server 2005 express на sql server 2012 express) | ||
− | + | Решение: | |
:'''1.'''Обновить Oktell до версии не ниже 2.11 | :'''1.'''Обновить Oktell до версии не ниже 2.11 | ||
:'''2.'''EXEC sp_changedbowner 'AutelService' | :'''2.'''EXEC sp_changedbowner 'AutelService' |
Версия 07:43, 29 августа 2014
22:52:04:484 4496 DBProvider: DBAutoUpdate исключение при обновлении файлом 'C:\Program Files (x86)\oktell\Server\DBAutoUpdate\130913_chathistory.sql' System.Data.SqlClient.SqlException (0x80131904): Violation of PRIMARY KEY constraint 'PK_A_Chat_Dialog'. Cannot insert duplicate key in object 'dbo.A_Chat_Dialog'. working... The statement has been terminated. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at oktell.Service.DB.DBCommon.Update() Текст упавшего запроса:
Проблема файла обновлении. Скопируйте текст запроса \DBAutoUpdate\130913_chathistory.sql и выполните его вручную в SQL Server Management Studio. После успешного выполнения удалите его из \DBAutoUpdate\, после чего перезагрузите службу Oktell Server, чтобы он накатил обновления базы самостоятельно. Если выполнить запрос не удается, пишите в обращение в бесплатную техническую поддержку с прикреплением Exception-лога.
14:28:29:039 1572 DBProvider: System.Data.SqlClient.SqlException (0x80131904): Cannot execute as the database principal because the principal "dbo" does not exist, this type of principal cannot be impersonated, or you do not have permission. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData() at Syste Eyeless (16:26:47 28/08/2014) m.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet) at oktell.Service.DB.DBCommon.SQLExecArbitraryNonParams_sql(String strconn, String sqltext, DataSet& ds) ClientConnectionId:63af4128-99c0-4e40-9eaf-def0fb6cb226 --> ConnectionString: server=(local)\OKTELL;database=WO_Module_dashboards;uid=WO_ModuleUser_dashboards;pwd=6TuCGNKm-Aa1-9761;pooling=true --> Query: exec wo_Dashboards_Dashboard_Create @dashboardname='werew', @projectid=NULL, @authorizeduserid='451a8233-d70f-4a80-8a62-239aead0f619'
При переносе сервера после восстановления БД из бэкапов. При установке Дашбордов может возникнуть следующая ошибка (пример перенос с sql server 2005 express на sql server 2012 express)
Решение:
- 1.Обновить Oktell до версии не ниже 2.11
- 2.EXEC sp_changedbowner 'AutelService'
- 3.1.Удаляем пользователя 'AutelService' из datebases - oktell - security - users
- 3.2.Создаем пользователя 'AutelService'
- 3.3.EXEC sp_changedbowner 'AutelService'
- 3.4.Если п.3.3. не помог, то выполните EXEC sp_changedbowner 'sa'