Bonjour à tous,
Un admin SharePoint a voulu détacher une DB et la réattacher par lui-même.
Mais après l'avoir mise sur le nouveau serveur, il a renommé manuellement les fichiers mdf et ldf.
Ensuite, clic droit et attach. Si je me souviens bien de ses explications, ça été très vite. Mais la DB n'est pas là, il réessaye et là il dit que la DB est utilisée.
Donc il m'appelle à l'aide...
Je tente donc plusieurs choses, et savoir avant tout qui bloque les fichiers.
Je tente de renommer le fichier pour être sûr qu'il est utilisé, bien sûr il me dit qu'il est utilisé
J'utilise Process Explorer qui me confirme bien que la DB est utilisée par SQL Server
sp_whoisactive et sp_who2 ne me donne aucun process qui tourne sur cette DB.
Je me dis alors que j'ai peut-être loupé une ligne avec sp_who2, donc je lance cette query mais sans résultat
J'essaye de réattacher la DB mais sans résultat bien sûr...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 SELECT spid, sp.[status], loginame [Login], hostname, blocked BlkBy, sd.name DBName, cmd Command, cpu CPUTime, physical_io DiskIO, last_batch LastBatch, [program_name] ProgramName FROM master.dbo.sysprocesses sp JOIN master.dbo.sysdatabases sd ON sp.dbid = sd.dbid WHERE sd.name = 'SHP_PRD_XXXXX' ORDER BY spid
Je cherche sur Google, et il me parle de permission sur le fichier ou faire Run as administrator de SSMS. Je mets everyone, mon groupe AD, celui de l'équipe SP, mais rien ne change.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SET TRANSACTION ISOLATION LEVEL READ COMMITTED; GO CREATE DATABASE SHP_PRD_SHP_PRD_XXXXX ON ( FILENAME = N'D:\MSSQL\Data\SHP_PRD_XXXXX.mdf' ), ( FILENAME = N'L:\MSSQL\Log\SHP_PRD_XXXXX_log.ldf' ) FOR ATTACH; GO
Les fichiers sont lockés et la DB n'est pas visible.
Pourtant, quand je lance cette query
Je vois bien le nom de la DB qui n'est pas le même que le fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT name, physical_name AS current_file_location FROM sys.master_files WHERE physical_name LIKE '%D:\MSSQL\Data\SHP_PRD_XXXX_%' ORDER BY name
Et si je fais ceci, j'ai aucun résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part NUCPart1
J'ai pas d'idée, et vous ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select * from sys.databases where name = 'NUCPart1'
Merci
Partager