Nom logique
my_Data
my_Log
Chemin:
C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA
C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA
Nom de fichier:
my.MDF
my_1.LDF
Quel serait le script SQL pour déplacer ces fichiers vers un nouvel emplacement: D:\DATA
La firebase database est active et je dois donc fermer les connexions existantes.
Vous avez oublié de mentionner le nom de votre firebase database (est-ce “mon”?).
ALTER DATABASE my SET SINGLE_USER WITH ROLLBACK IMMEDIATE; ALTER DATABASE my SET OFFLINE; ALTER DATABASE my MODIFY FILE ( Name = my_Data, Filename = 'D:\DATA\my.MDF' ); ALTER DATABASE my MODIFY FILE ( Name = my_Log, Filename = 'D:\DATA\my_1.LDF' );
Maintenant, ici, vous devez déplacer manuellement les fichiers de leur emplacement actuel vers D: \ Data \ (et n’oubliez pas de les renommer manuellement si vous les avez modifiés dans la commande MODIFY FILE) … vous pouvez alors rétablir la firebase database:
ALTER DATABASE my SET ONLINE; ALTER DATABASE my SET MULTI_USER;
Cela suppose que le compte de service SQL Server dispose de privilèges suffisants sur le dossier D: \ Data \. Sinon, vous recevrez des erreurs lors de la commande SET ONLINE.
Vous pouvez utiliser l’option Détacher / Attacher dans SQL Server Management Studio.
Vérifiez ceci: Déplacer une firebase database en utilisant Détacher et attacher
Pour append les privilèges nécessaires aux fichiers, ajoutez et accordez le droit à l’utilisateur local suivant: SQLServerMSSQLUser $ COMPUTERNAME $ INSTANCENAME, où COMPUTERNAME et INSTANCENAME doivent être remplacés respectivement par le nom de l’ordinateur et l’instance MSSQL.
Il s’agit d’une procédure complète permettant de transférer une firebase database et des connexions à une nouvelle, de créer des scripts de connexion et de déplacer des fichiers de données et des fichiers journaux sur la destination. Tout en utilisant des métascripts.
Désolé pour la procédure hors site mais les scripts sont très longs. Vous devez:
– Logins de script avec SID original et mot de passe HASHED
– Créer un script pour sauvegarder la firebase database en utilisant des métascripts
– Créer un script pour restaurer les parameters de relocalisation de la firebase database en utilisant à nouveau des métascripts
– Exécutez les scripts générés sur l’instance source et destination.
Voir les détails et télécharger les scripts en suivant le lien ci-dessus.
Quelques notes pour compléter le processus ALTER DATABASE:
1) Vous pouvez obtenir une liste complète des bases de données avec les noms logiques et les chemins complets des fichiers MDF et LDF:
USE master SELECT name, physical_name FROM sys.master_files
2) Vous pouvez déplacer manuellement les fichiers avec la commande CMD move:
Déplacer “Source” “Destination”
Exemple:
md "D:\MSSQLData" Move "C:\test\SYSADMIT-DB.mdf" "D:\MSSQLData\SYSADMIT-DB_Data.mdf" Move "C:\test\SYSADMIT-DB_log.ldf" "D:\MSSQLData\SYSADMIT-DB_log.ldf"
3) Vous devez changer le chemin de la firebase database par défaut pour la création de nouvelles bases de données. Le chemin par défaut est obtenu à partir du registre Windows.
Vous pouvez également modifier avec T-SQL, par exemple, pour définir la destination par défaut sur: D: \ MSSQLData
USE [master] GO EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', REG_SZ, N'D:\MSSQLData' GO EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultLog', REG_SZ, N'D:\MSSQLData' GO
Extrait de: http://www.sysadmit.com/2016/08/mover-base-de-datos-sql-server-a-otro-disco.html