У меня есть одна виртуальная машина Azure с Windows 10, настроенная как рабочая станция, которая, помимо прочего, имеет:
Когда коллега создал новую виртуальную машину Windows 10 и приступил к установке SQL Server, он получил ошибку. Затем я создал новую виртуальную машину Windows 10 и попытался установить SQL Server и получил ту же ошибку. Думая, что это как-то связано с конфигурацией виртуальной машины, я выбрал исходную конфигурацию, которая работала, попробовала еще раз, и она снова не удалась.
Вот машины с Windows 10, которые мы использовали
Стандартный D2 v2 (2 виртуальных процессора, 7 ГБ памяти): успешно
Стандартный DS11 v2 (2 виртуальных процессора, 14 ГБ памяти): сбой
Стандартный DS11 v2 (2 виртуальных процессора, 14 ГБ памяти): сбой
Стандартный D2 v2 (2 виртуальных процессора, 7 ГБ памяти): сбой
Это из установочного файла сведений:
...
(01) 2018-01-05 18:10:04 Slp: текущее соединение с SqlServer закрыто ...
(01) 2018-01-05 18:10:04 Slp: сбой действия конфигурации для функции SQL_Engine_Core_Inst во время синхронизации ConfigRC и сценария ConfigRC.
(01) 2018-01-05 18:10:04 Slp: при установке соединения с SQL Server произошла ошибка, связанная с сетью или конкретным экземпляром. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра правильное и что SQL Server настроен на разрешение удаленных подключений. (поставщик: поставщик именованных каналов, ошибка: 40 - не удалось открыть соединение с SQL Server)
(01) 2018-01-05 18:10:04 Slp: Категория сбоя конфигурации текущего исключения - ConfigurationFailure
(01) 2018-01-05 18:10:05 Slp: сбой действия конфигурации для функции SQL_Engine_Core_Inst во время синхронизации ConfigRC и сценария ConfigRC.
(01) 2018-01-05 18:10:05 Slp: Microsoft.SqlServer.Configuration.Sco.ScoException: при установлении соединения с SQL Server произошла ошибка, связанная с сетью или конкретным экземпляром. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра правильное и что SQL Server настроен на разрешение удаленных подключений. (поставщик: поставщик именованных каналов, ошибка: 40 - не удалось открыть соединение с SQL Server) ---> System.Data.SqlClient.SqlException: при установке соединения с SQL Server произошла ошибка, связанная с сетью или конкретным экземпляром. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра правильное и что SQL Server настроен на разрешение удаленных подключений. (поставщик: поставщик именованных каналов, ошибка: 40 - не удалось открыть соединение с SQL Server) ---> System.ComponentModel.Win32Exception: система не может найти указанный файл
(01) 2018-01-05 18:10:05 Slp: --- Конец трассировки стека внутреннего исключения ---
(01) 2018-01-05 18:10:05 Slp: в System.Data.SqlClient.SqlInternalConnectionTds..ctor (идентификатор DbConnectionPoolIdentity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassctionString, SqlInternalConnectionword, SqlInternal , SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling)
(01) 2018-01-05 18:10:05 Slp: в System.Data.SqlClient.SqlConnectionFactory.CreateConnection (параметры DbConnectionOptions, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnection owningConnection)
(01) 2018-01-05 18:10:05 Slp: в System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection (DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
(01) 2018-01-05 18:10:05 Slp: в System.Data.ProviderBase.DbConnectionFactory.TryGetConnection (DbConnection owningConnection, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
1 повтор, DbConnectionOptions userOptions)
(01) 2018-01-05 18:10:05 Slp: at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource
(01) 2018-01-05 18:10:05 Slp: в System.Data.SqlClient.SqlConnection.TryOpenInner (TaskCompletionSource1 retry)
1 повтор)
(01) 2018-01-05 18:10:05 Slp: at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource
(01) 2018-01-05 18:10:05 Slp: в System.Data.SqlClient.SqlConnection.Open ()
(01) 2018-01-05 18:10:05 Slp: в Microsoft.SqlServer.Configuration.Sco.SqlScriptExecution.GetConnection ()
(01) 2018-01-05 18:10:05 Slp: в Microsoft.SqlServer.Configuration.Sco.SqlScriptExecution.Connect ()
(01) 2018-01-05 18:10:05 Slp: --- Конец трассировки стека внутреннего исключения ---
(01) 2018-01-05 18:10:05 Slp: в Microsoft.SqlServer.Configuration.Sco.SqlScriptExecution.Connect ()
(01) 2018-01-05 18:10:05 Slp: в Microsoft.SqlServer.Configuration.SqlEngine.SqlDatabaseServiceConfig.Install (SqlServiceInstallScriptParameters Параметры скрипта, логическое значение fTemplateDB)
(01) 2018-01-05 18:10:05 Slp: в Microsoft.SqlServer.Configuration.SqlEngine.SqlEngineDBStartConfig.ConfigSQLServerSystemDatabases (свойства EffectiveProperties, логическое значение isConfiguringTemplateDBs, логическое значение useInstallInputs)
(01) 2018-01-05 18:10:05 Slp: в Microsoft.SqlServer.Configuration.SqlEngine.SqlEngineDBStartConfig.DoCommonDBStartConfig (время ConfigActionTiming)
(01) 2018-01-05 18:10:05 Slp: в Microsoft.SqlServer.Configuration.SqlEngine.SqlEngineDBStartConfig.Install (время ConfigActionTiming, словарь2 actionData, PublicConfigurationBase spcb)
2 actionData, PublicConfigurationBase spcbCurrent)
(01) 2018-01-05 18:10:05 Slp: at Microsoft.SqlServer.Configuration.SqlConfigBase.PrivateConfigurationBase.Execute(ConfigActionScenario scenario, ConfigActionTiming timing, ConfigBaseAction action, Dictionary
(01) 2018-01-05 18:10:05 Slp: в Microsoft.SqlServer.Configuration.SqlConfigBase.SqlFeatureConfigBase.Execute (сценарий ConfigActionScenario, время ConfigActionTiming, действие ConfigBaseAction, словарь2 actionData, PublicConfigurationBase spcbCurrent)
2 actionData, PublicConfigurationBase spcb)
(01) 2018-01-05 18:10:05 Slp: at Microsoft.SqlServer.Configuration.SqlConfigBase.SlpConfigAction.ExecuteAction(String actionId)
(01) 2018-01-05 18:10:05 Slp: at Microsoft.SqlServer.Configuration.SqlConfigBase.SlpConfigAction.Execute(String actionId, TextWriter errorStream)
(01) 2018-01-05 18:10:05 Slp: The following is an exception stack listing the exceptions in outermost to innermost order
(01) 2018-01-05 18:10:05 Slp: Inner exceptions are being indented
(01) 2018-01-05 18:10:05 Slp:
(01) 2018-01-05 18:10:05 Slp: Exception type: Microsoft.SqlServer.Configuration.Sco.ScoException
(01) 2018-01-05 18:10:05 Slp: Message:
(01) 2018-01-05 18:10:05 Slp: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
(01) 2018-01-05 18:10:05 Slp: HResult : 0x84bb0001
(01) 2018-01-05 18:10:05 Slp: FacilityCode : 1211 (4bb)
(01) 2018-01-05 18:10:05 Slp: ErrorCode : 1 (0001)
(01) 2018-01-05 18:10:05 Slp: Data:
(01) 2018-01-05 18:10:05 Slp: DisableRetry = true
(01) 2018-01-05 18:10:05 Slp: SQL.Setup.FailureCategory = ConfigurationFailure
(01) 2018-01-05 18:10:05 Slp: WatsonConfigActionData = INSTALL@CONFIGRC@SQL_ENGINE_CORE_INST
(01) 2018-01-05 18:10:05 Slp: WatsonExceptionFeatureIdsActionData = System.String[]
(01) 2018-01-05 18:10:05 Slp: Stack:
(01) 2018-01-05 18:10:05 Slp: at Microsoft.SqlServer.Configuration.Sco.SqlScriptExecution.Connect()
(01) 2018-01-05 18:10:05 Slp: at Microsoft.SqlServer.Configuration.SqlEngine.SqlDatabaseServiceConfig.Install(SqlServiceInstallScriptParameters scriptParameters, Boolean fTemplateDB)
(01) 2018-01-05 18:10:05 Slp: at Microsoft.SqlServer.Configuration.SqlEngine.SqlEngineDBStartConfig.ConfigSQLServerSystemDatabases(EffectiveProperties properties, Boolean isConfiguringTemplateDBs, Boolean useInstallInputs)
(01) 2018-01-05 18:10:05 Slp: at Microsoft.SqlServer.Configuration.SqlEngine.SqlEngineDBStartConfig.DoCommonDBStartConfig(ConfigActionTiming timing)
(01) 2018-01-05 18:10:05 Slp: at Microsoft.SqlServer.Configuration.SqlEngine.SqlEngineDBStartConfig.Install(ConfigActionTiming timing, Dictionary
(01) 2018-01-05 18:10:05 Slp: в Microsoft.SqlServer.Configuration.SqlConfigBase.PrivateConfigurationBase.Execute (сценарий ConfigActionScenario, время ConfigActionTiming, действие ConfigBaseAction, словарь2 actionData, PublicConfigurationBase spcbCurrent)
2 actionData, PublicConfigurationBase spcbCurrent)
(01) 2018-01-05 18:10:05 Slp: at Microsoft.SqlServer.Configuration.SqlConfigBase.SqlFeatureConfigBase.Execute(ConfigActionScenario scenario, ConfigActionTiming timing, ConfigBaseAction action, Dictionary
(01) 2018-01-05 18:10:05 Slp: в Microsoft.SqlServer.Configuration.SqlConfigBase.SlpConfigAction.ExecuteAction (String actionId)
(01) 2018-01-05 18:10:05 Slp: в Microsoft.SqlServer.Configuration.SqlConfigBase.SlpConfigAction.Execute (String actionId, TextWriter errorStream)
(01) 2018-01-05 18:10:05 Slp: Тип внутреннего исключения: System.Data.SqlClient.SqlException
(01) 2018-01-05 18:10:05 Slp: Сообщение:
(01) 2018-01-05 18:10:05 Slp: при установке соединения с SQL Server произошла ошибка, связанная с сетью или конкретным экземпляром. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра правильное и что SQL Server настроен на разрешение удаленных подключений. (поставщик: поставщик именованных каналов, ошибка: 40 - не удалось открыть соединение с SQL Server)
(01) 2018-01-05 18:10:05 Slp: Hesult: 0x80131904
(01) 2018-01-05 18:10:05 Slp: Данные:
(01) 2018-01-05 18:10:05 Slp: HelpLink.ProdName = Microsoft SQL Server
(01) 2018-01-05 18:10:05 Slp: HelpLink.EvtSrc = MSSQLServer
(01) 2018-01-05 18:10:05 Slp: HelpLink.EvtID = 2
(01) 2018-01-05 18:10:05 Slp: HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink
(01) 2018-01-05 18:10:05 Slp: HelpLink.LinkId = 20476
(01) 2018-01-05 18:10:05 Slp: Стек:
(01) 2018-01-05 18:10:05 Slp: в System.Data.SqlClient.SqlInternalConnectionTds..ctor (идентификатор DbConnectionPoolIdentity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassctionString, SqlInternalConnectionword, SqlInternal , SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling)
(01) 2018-01-05 18:10:05 Slp: в System.Data.SqlClient.SqlConnectionFactory.CreateConnection (параметры DbConnectionOptions, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnection owningConnection)
(01) 2018-01-05 18:10:05 Slp: в System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection (DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
(01) 2018-01-05 18:10:05 Slp: в System.Data.ProviderBase.DbConnectionFactory.TryGetConnection (DbConnection owningConnection, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
1 повтор, DbConnectionOptions userOptions)
(01) 2018-01-05 18:10:05 Slp: at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource
(01) 2018-01-05 18:10:05 Slp: в System.Data.SqlClient.SqlConnection.TryOpenInner (TaskCompletionSource1 retry)
1 повтор)
(01) 2018-01-05 18:10:05 Slp: at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource
(01) 2018-01-05 18:10:05 Slp: в System.Data.SqlClient.SqlConnection.Open ()
(01) 2018-01-05 18:10:05 Slp: в Microsoft.SqlServer.Configuration.Sco.SqlScriptExecution.GetConnection ()
(01) 2018-01-05 18:10:05 Slp: в Microsoft.SqlServer.Configuration.Sco.SqlScriptExecution.Connect ()
(01) 2018-01-05 18:10:05 Slp: Тип внутреннего исключения: System.ComponentModel.Win32Exception
(01) 2018-01-05 18:10:05 Slp: Сообщение:
(01) 2018-01-05 18:10:05 Slp: система не может найти указанный файл
(01) 2018-01-05 18:10:05 Slp: Hesult: 0x80004005
(01) 2018-01-05 18:10:05 Slp: Ошибка: 2
(01) 2018-01-05 18:10:05 Slp: Ведро Ватсона 1
Исходные значения параметров
...
SQL Server в какой-то степени установлен, но не запускается. Когда вы говорите о запуске, это находится в журнале событий:
FileMgr :: StartLogFiles: ошибка операционной системы 2 (система не может найти указанный файл) произошла при создании или открытии файла 'd: \ dbs \ sh \ sprel \ 0822_164025 \ cmd \ 33 \ obj \ x64retail \ sql \ mkmastr \ databases \ mkmastr.proj \ modellog.ldf '. Диагностируйте и исправьте ошибку операционной системы и повторите операцию.
Для указанной выше ошибки, хотя у меня есть диск d:, это «временное хранилище» виртуальной машины Azure, поэтому файлы там не должны искать.
Нашел ответ на https://social.technet.microsoft.com/wiki/contents/articles/31786.sql-server-not-starting-after-fresh-installation.aspx
Откройте команду и запустите SQL Server:
net start MSSQL$SQLEXPRESS /f /t3608
Затем откройте командную строку SQL:
sqlcmd -S .\SQLEXPRESS
Убедитесь, что SQL Server указывает на файлы в неправильном месте. Вы должны увидеть, какие пути к базе данных и файлам журнала неверны:
1> select name, physical_name, state_desc from sys.master_files order by database_id;
2> go
Найдите правильные пути к этим файлам, затем создайте и запустите этот запрос:
ALTER DATABASE model MODIFY FILE ( NAME = modeldev, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\DATA\model.mdf');
ALTER DATABASE model MODIFY FILE ( NAME = modellog, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\DATA\modellog.ldf');
ALTER DATABASE msdb MODIFY FILE ( NAME = MSDBData, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\DATA\MSDBData.mdf');
ALTER DATABASE msdb MODIFY FILE ( NAME = MSDBLog, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\DATA\MSDBLog.ldf');
ALTER DATABASE tempdb MODIFY FILE ( NAME = tempdev, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\DATA\temp.mdf');
ALTER DATABASE tempdb MODIFY FILE ( NAME = templog, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\DATA\temp.ldf');
go
Выйдите, остановитесь, затем запустите SQL Server:
1> exit
net stop MSSQL$SQLEXPRESS
net start MSSQL$SQLEXPRESS
Запустите SSMS, попытайтесь подключиться к экземпляру и обратите внимание, что вы не можете подключиться даже с помощью Windows auth. Теперь остановите сервер, снова перезапустите его в режиме восстановления и дайте sa пароль:
net stop MSSQL$SQLEXPRESS
net start MSSQL$SQLEXPRESS /f /t3608
sqlcmd -S .\SQLEXPRESS
ALTER LOGIN sa WITH PASSWORD = 'newpassword' UNLOCK
go
exit
Убедитесь, что сервер настроен с аутентификацией SQL Server. Откройте RegEdit и убедитесь, что значение Компьютер \ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ MSSQL14.SQLEXPRESS \ MSSQLServer \ LoginMode является 2. Если вы не можете найти этот ключ, выполните поиск LoginMode как это может быть иначе для вас.
Остановите сервер режима восстановления и запустите обычный сервер
net stop MSSQL$SQLEXPRESS
net start MSSQL$SQLEXPRESS
Теперь вы можете войти в систему с помощью sa и пароля, который вы установили ранее.