Déplacer les fichiers de firebase database SQL Server 2008 vers un nouvel emplacement de dossier

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.

http://zaboilab.com/sql-server-toolbox/massive-database-migration-between-sql-server-instances-the-complete-procedure

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