J'ai hérité d'une instance SQL Server 2012 dans laquelle les répertoires de fichiers des fichiers journaux et de données figurent sur le même dossier du même lecteur (tous sont dans le lecteur C: \). Ma tâche que je vais faire est de séparer les fichiers de données du disque OS. L'instance a déjà peu de bases de données sur l'exécution .Can je viens de modifier les paramètres de l'instance pour le signaler dans le nouveau répertoire, détachez les bases de données existantes Déplacez-la des fichiers de données et de la fixer? S'il vous plaît partager quelle serait la meilleure approche pour ce faire cela.
Comment changer le répertoire de fichiers de votre journal et vos fichiers de données et quels sont les effets
Puis-je simplement modifier les paramètres de l'instance pour le signaler dans le nouveau répertoire, détachez les bases de données existantes Déplacez les fichiers de données et de la fixer? S'il vous plaît partager quelle serait la meilleure approche pour ce faire cela.
Vous trouverez ci-dessous deux scripts que j'ai utilisés à cette fin plusieurs fois dans le passé; Il suffit de régler en conséquence pour votre environnement.
Fondamentalement, il suffit de brancher les nouveaux emplacements de chemin, les noms de fichiers de données et journaux, ainsi que les noms logiques de données SQL et de fichiers journaux, puis exécutez le premier script (voir commentaire ci-dessus Script ci-dessous).
premier script
Branchez votre variable en conséquence pour votre environnement.
ALTER DATABASE <DBName> SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE <DBName> SET OFFLINE
ALTER DATABASE <DBName> MODIFY FILE (
NAME = <LogicalDataFileName1>
,Filename = 'T:\MSSQL\Data\<DBName>.mdf'
);
ALTER DATABASE <DBName> MODIFY FILE (
NAME = <LogicalDataFileName2>
,Filename = 'T:\MSSQL\Data\<DBName1>.ndf'
);
ALTER DATABASE <DBName> MODIFY FILE (
NAME = <LogicalLogFileName2>
,Filename = 'Y:\MSSQL\Logs\<DBName>.ldf'
);
deuxième script
Avant d'exécuter le TSQL ci-dessous, vous devez déplacer les données physiques applicables et les fichiers journaux applicables aux nouveaux emplacements que vous avez branché sur le premier script.
--Now move the files to the new location where you pointed them to before running the below.
ALTER DATABASE <DBName> SET ONLINE
ALTER DATABASE <DBName> SET MULTI_USER