En toute mauvaise position ici. Cet après-midi sur mon tempdb j'ai couru la requête: sp_helpfile
Pour localiser où mon MDF et fichier journal était. My MDF était sur mon fichier C: lecteur et mon fichier journal était sur un D: lecteur de référence 'VE Exécutez la requête suivante pour déplacer ce fichier journal à partir du lecteur D: Retour à C: lecteur. (Cela peut ne pas avoir été exactement la requête que je fonctionne comme je ne me souviens pas de ce que c'était précisément!)
use master
go
Alter database tempdb modify file (name = templog, filename = 'C:[drivelocation]\tempdb.ldf')
go
Après avoir exécuté, j'ai fermé SQL Server MS 2012 et rouvert pour vous connecter à mon serveur SQL qui est sur ma machine. Lorsque vous avez essayé de vous connecter, SQL MS renvoie l'erreur suivante:
=================================== Cannot connect to machineName\SQL2012. =================================== 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) (.Net SqlClient Data Provider) ------------------------------ For help, click: http://go.Microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=2&LinkId=20476 ------------------------------ Error Number: 2 Severity: 20 State: 0 ------------------------------ Program Location: at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling, SqlAuthenticationProviderManager sqlAuthProviderManager) 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 oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.SqlServer.Management.SqlStudio.Explorer.ObjectExplorerService.ValidateConnection(UIConnectionInfo ci, IServerType server) at Microsoft.SqlServer.Management.UI.ConnectionDlg.Connector.ConnectionThreadUser() =================================== The system cannot find the file specified
De toute évidence, il semble que cela ne puisse pas trouver le fichier plus! J'ai même essayé de démarrer le service dans Service Manager, mais que cet état Windows ne peut pas démarrer le service avec un code d'erreur de 1814. Même un redémarrage de la machine ne parvient pas à le faire fonctionner.
Y a-t-il de toute façon dans lequel je peux résoudre ce problème? J'essaie de voir si je peux changer l'emplacement du fichier journal à nouveau sur le D: lecteur de la cmd mais ne peut sembler trouver rien
[~ # ~] éditer [~ # ~ ~] J'ai remarqué cet avertissement dans la visionneuse d'événements lorsque vous essayez de démarrer le service:
Could not create tempdb. You may not have enough disk space available. Free additional disk space by deleting other files on the tempdb drive and then restart SQL Server. Check for additional errors in the event log that may indicate why the tempdb files could not be initialized.
Qui ne s'ajoute pas comme il y a au moins 250 Go gratuit sur le lecteur C:
éditer 2
Comme demandé, voici mon journal d'erreur
2019-11-01 22:37:06.45 Server Microsoft SQL Server 2012 (SP4-GDR) (KB4057116) - 11.0.7462.6 (X64)
Jan 5 2018 22:11:56
Copyright (c) Microsoft Corporation
Developer Edition (64-bit) on Windows NT 6.3 <X64> (Build 17763: )
2019-11-01 22:37:06.45 Server (c) Microsoft Corporation.
2019-11-01 22:37:06.45 Server All rights reserved.
2019-11-01 22:37:06.45 Server Server process ID is 20460.
2019-11-01 22:37:06.45 Server System Manufacturer: 'Dell Inc.', System Model: 'Precision Tower 7910'.
2019-11-01 22:37:06.45 Server Authentication mode is MIXED.
2019-11-01 22:37:06.45 Server Logging SQL Server messages in file 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\Log\ERRORLOG'.
2019-11-01 22:37:06.45 Server The service account is 'MACHINENAMEREMOVED'. This is an informational message; no user action is required.
2019-11-01 22:37:06.45 Server Registry startup parameters:
-d C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\master.mdf
-e C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\Log\ERRORLOG
-l C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\mastlog.ldf
2019-11-01 22:37:06.45 Server Command Line Startup Parameters:
-s "SQL2012"
2019-11-01 22:37:06.67 Server SQL Server detected 1 sockets with 10 cores per socket and 20 logical processors per socket, 20 total logical processors; using 20 logical processors based on SQL Server licensing. This is an informational message; no user action is required.
2019-11-01 22:37:06.67 Server SQL Server is starting at normal priority base (=7). This is an informational message only. No user action is required.
2019-11-01 22:37:06.67 Server Detected 32690 MB of RAM. This is an informational message; no user action is required.
2019-11-01 22:37:06.67 Server Using locked pages in the memory manager.
2019-11-01 22:37:06.70 Server Large Page Allocated: 32MB
2019-11-01 22:37:06.91 Server This instance of SQL Server last reported using a process ID of 17484 at 01/11/2019 22:25:55 (local) 01/11/2019 22:25:55 (UTC). This is an informational message only; no user action is required.
2019-11-01 22:37:06.92 Server Node configuration: node 0: CPU mask: 0x00000000000fffff:0 Active CPU mask: 0x00000000000fffff:0. This message provides a description of the NUMA configuration for this computer. This is an informational message only. No user action is required.
2019-11-01 22:37:07.00 Server Using dynamic lock allocation. Initial allocation of 2500 Lock blocks and 5000 Lock Owner blocks per node. This is an informational message only. No user action is required.
2019-11-01 22:37:07.00 Server Lock partitioning is enabled. This is an informational message only. No user action is required.
2019-11-01 22:37:07.00 Server Database Instant File Initialization: enabled. For security and performance considerations see the topic 'Database Instant File Initialization' in SQL Server Books Online. This is an informational message only. No user action is required.
2019-11-01 22:37:07.00 Server Software Usage Metrics is disabled.
2019-11-01 22:37:07.01 spid5s Starting up database 'master'.
2019-11-01 22:37:07.02 spid5s 9 transactions rolled forward in database 'master' (1:0). This is an informational message only. No user action is required.
2019-11-01 22:37:07.02 spid5s 0 transactions rolled back in database 'master' (1:0). This is an informational message only. No user action is required.
2019-11-01 22:37:07.05 Server CLR version v4.0.30319 loaded.
2019-11-01 22:37:07.11 spid5s Resource governor reconfiguration succeeded.
2019-11-01 22:37:07.11 spid5s SQL Server Audit is starting the audits. This is an informational message. No user action is required.
2019-11-01 22:37:07.11 spid5s SQL Server Audit has started the audits. This is an informational message. No user action is required.
2019-11-01 22:37:07.12 Server Common language runtime (CLR) functionality initialized using CLR version v4.0.30319 from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\.
2019-11-01 22:37:07.14 spid5s SQL Trace ID 1 was started by login "sa".
2019-11-01 22:37:07.14 spid5s Server name is 'machine\SQL2012'. This is an informational message only. No user action is required.
2019-11-01 22:37:07.16 spid13s The certificate [Cert Hash(sha1) "3605E5C22E9EA14834F0C8069ED7EFE9437F6DA0"] was successfully loaded for encryption.
2019-11-01 22:37:07.16 spid5s Failed to verify Authenticode signature on DLL 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\Binn\ftimport.dll'.
2019-11-01 22:37:07.16 spid5s Starting up database 'msdb'.
2019-11-01 22:37:07.16 spid9s Starting up database 'mssqlsystemresource'.
2019-11-01 22:37:07.16 spid13s Server is listening on [ 'any' <ipv6> 58026].
2019-11-01 22:37:07.16 spid13s Server is listening on [ 'any' <ipv4> 58026].
2019-11-01 22:37:07.16 spid13s Server local connection provider is ready to accept connection on [ \\.\pipe\SQLLocal\SQL2012 ].
2019-11-01 22:37:07.16 spid13s Server named pipe provider is ready to accept connection on [ \\.\pipe\MSSQL$SQL2012\sql\query ].
2019-11-01 22:37:07.16 Server Server is listening on [ ::1 <ipv6> 58027].
2019-11-01 22:37:07.16 Server Server is listening on [ 127.0.0.1 <ipv4> 58027].
2019-11-01 22:37:07.16 Server Dedicated admin connection support was established for listening locally on port 58027.
2019-11-01 22:37:07.16 spid9s The resource database build version is 11.00.7462. This is an informational message only. No user action is required.
2019-11-01 22:37:07.17 spid13s SQL Server is now ready for client connections. This is an informational message; no user action is required.
2019-11-01 22:37:07.17 Server SQL Server is attempting to register a Service Principal Name (SPN) for the SQL Server service. Kerberos authentication will not be possible until a SPN is registered for the SQL Server service. This is an informational message. No user action is required.
2019-11-01 22:37:07.18 spid9s Starting up database 'model'.
2019-11-01 22:37:07.19 spid5s 1 transactions rolled forward in database 'msdb' (4:0). This is an informational message only. No user action is required.
2019-11-01 22:37:07.19 spid5s 0 transactions rolled back in database 'msdb' (4:0). This is an informational message only. No user action is required.
2019-11-01 22:37:07.20 Server The SQL Server Network Interface library could not register the Service Principal Name (SPN) [ MSSQLSvc/BDTUK178AA.bluedoor.local:SQL2012 ] for the SQL Server service. Windows return code: 0x200b, state: 15. Failure to register a SPN might cause integrated authentication to use NTLM instead of Kerberos. This is an informational message. Further action is only required if Kerberos authentication is required by authentication policies and if the SPN has not been manually registered.
2019-11-01 22:37:07.20 Server The SQL Server Network Interface library could not register the Service Principal Name (SPN) [ MSSQLSvc/machine ] for the SQL Server service. Windows return code: 0x200b, state: 15. Failure to register a SPN might cause integrated authentication to use NTLM instead of Kerberos. This is an informational message. Further action is only required if Kerberos authentication is required by authentication policies and if the SPN has not been manually registered.
2019-11-01 22:37:07.20 spid9s Clearing tempdb database.
2019-11-01 22:37:07.23 spid9s Error: 5171, Severity: 16, State: 1.
2019-11-01 22:37:07.23 spid9s C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\tempdb.mdf is not a primary database file.
2019-11-01 22:37:07.23 spid9s Error: 1802, Severity: 16, State: 4.
2019-11-01 22:37:07.23 spid9s CREATE DATABASE failed. Some file names listed could not be created. Check related errors.
2019-11-01 22:37:07.23 spid9s Could not create tempdb. You may not have enough disk space available. Free additional disk space by deleting other files on the tempdb drive and then restart SQL Server. Check for additional errors in the event log that may indicate why the tempdb files could not be initialized.
2019-11-01 22:37:07.23 spid9s SQL Server shutdown has been initiated
2019-11-01 22:37:07.23 spid9s SQL Trace was stopped due to server shutdown. Trace ID = '1'. This is an informational message only; no user action is required.
Notez la dernière partie du message d'erreur que vous avez référencé:
.. Check for additional errors in the event log that may indicate why the tempdb files could not be initialized.
Si vous regardez l'ensemble des erreurs liées à la création Tempdb:
2019-11-01 22:37:07.20 spid9s Clearing tempdb database.
2019-11-01 22:37:07.23 spid9s Error: 5171, Severity: 16, State: 1.
2019-11-01 22:37:07.23 spid9s C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\tempdb.mdf is not a primary database file.
2019-11-01 22:37:07.23 spid9s Error: 1802, Severity: 16, State: 4.
2019-11-01 22:37:07.23 spid9s CREATE DATABASE failed. Some file names listed could not be created. Check related errors.
2019-11-01 22:37:07.23 spid9s Could not create tempdb. You may not have enough disk space available. Free additional disk space by deleting other files on the tempdb drive and then restart SQL Server. Check for additional errors in the event log that may indicate why the tempdb files could not be initialized.
L'erreur premier semble être le problème:
...\tempdb.mdf is not a primary database file.
Vous devriez essayer de supprimer ce tempdb.mdf
Fichier et redémarrez le service SQL Server. Pendant que vous êtes là, vérifiez s'il y a un tempdb.ldf
Dossier et supprimer celui-là aussi. SQL Server recréera les fichiers de données TEMPDB s'ils n'existent pas déjà.
Utilisez le fichier ErrorLog au lieu de l'événement EventLog, il est plus facile de voir la chaîne d'erreurs de la première et des erreurs ultérieures résultant de cela. Publiez les pertinents ici si vous avez besoin d'après avoir lu ci-dessous.
TEMPDB est créé selon vos SYS.MASTER_FILES. Ceci est le modèle de votre TEMPDB concernant les fichiers. Si vos SYS.MASTER_FILES spécifient quelque chose qui n'est pas possible (comme créer un fichier dans lequel il n'y a pas assez d'espace ou un emplacement qui n'existe pas), SQL Server peut ne pas démarrer. Je pense qu'il existe un mécanisme de sécurité comme s'il y a deux ou plusieurs du même type de fichier (Data/Log) et au moins on peut créer que SQL Server commencera, cependant, pas 100% des détails ici, cependant.
Si TEMPDB ne peut pas être créé comme spécifié au démarrage, vous devez corriger cela. Éventuellement en créant le dossier, en réparant le disque, en ajoutant un disque de disque, etc. Ou changez ce qui est dans Sys.Master_Files.
La chose est comment obtenir SQL Server démarré en premier lieu. Ceci est l'astuce: Démarrez votre serveur SQL à l'aide du commutateur -f. Entre autres choses, il aura créé un "TEMPDB minimal" où votre maître.MDF est.
Cela pourrait vous mettre en marche afin que vous puissiez vous connecter à l'aide de SQLCMD.exe et corrigez vos SYS.MASTER_FILES. En ce qui concerne la gestion de votre tempdb, j'ai des informations bloguées ici: http://sqlblog.karaszi.com/maning-tempdb/ .