TUTOS.EU

Préparer une restauration SQL server avec déplacement

Préparer une restauration SQL server avec déplacement des fichiers

'Version du 16 mai 2013
'http://www.chdb.eu/?n=3452
'Script d aide à la restauration de tout un lot de bases SQL avec déplacement des fichiers.
'Ce script se place dans le répertoire contenant les fichiers de backups à restaurer
'Il génèrera un fichier avec des commandes de restauration indiquant une modification de l'emplacement des bases et logs SQL
'Restera à contrôler les commandes avant exécution
'Quand il y a tout un serveur à restaurer sur un autre qui n'a pas les même emplacements de répertoire, cela aide ...

Dim objFSO 'Objet FSO pour l'accès au système de fichiers
Dim MyFile 'Représente un fichier
Dim objTextFile 'Représente le fichier texte qui contient les réponses
Dim NomBaseOriginal
Dim NomBaseCourt
Dim Position

'Déclaration des constantes pour la lecture et l'ecriture dans les fichiers
Const ForReading = 1
Const ForWritting = 2
Const ForAppending = 8

CheminScriptActuel = Left(wscript.scriptfullname,Len(wscript.scriptfullname)-Len(wscript.scriptname)-1)
CheminFichierResultat = CheminScriptActuel & "\" & "Fichier de Sortie.txt"
CheminRepertoireAExplorer = InputBox("Entrez le chemin du répertoire avec les backups","Chemin du répertoire",CheminScriptActuel)
CheminFichierResultat = InputBox("Entrez le chemin du fichier contenant le resultat","Chemin du fichier de reponse",CheminFichierResultat)
CheminDataSQL = InputBox("Entrez le chemin du fichier du repertoire contenant les bases SQL","Bases SQL","D:\RepertoireAvecLesBases")
CheminLogSQL = InputBox("Entrez le chemin du fichier du repertoire contenant les Logs SQL","Logs SQL","L:\RepertoireAvecLesLogs")

'Création des objets
Set objFSO = CreateObject("Scripting.FileSystemObject")

'On fait un objet qui représente le répertoire à explorer
Set objFolder = objFSO.GetFolder(CheminRepertoireAExplorer)
Set objTextFile = objFSO.OpenTextFile(CheminFichierResultat, ForWritting, True)

For Each MyFile In objFolder.Files
	If ExtensionFichier(MyFile.Name) = "bak" Then
		NomBaseOriginal = MyFile.Name
		Position = InStrRev(NomBaseOriginal, ".")
		If Position > 0 Then
			'NomBaseOriginal = Left(NomBaseOriginal,(Len(NomBaseOriginal)-24))
			NomBaseCourt = Mid(NomBaseOriginal,1, Position-1)
			'Wscript.Echo NomBaseOriginal
			objTextFile.WriteLine("RESTORE DATABASE """ & NomBaseCourt & """ FROM DISK = '" & MyFile.Path & "' with Replace, Move '" & NomBaseCourt & "_Data' to '" & CheminDataSQL & "\" & NomBaseCourt & ".MDF', move '" & NomBaseCourt & "_log' to '" & CheminLogSQL & "\" & NomBaseCourt & "_log.LDF'")
		End If
	End If
Next

objTextFile.Close
Set objTextFile = Nothing
Set objFolder = Nothing
Set objFSO = Nothing

Wscript.Echo "Terminé."

Public Function ExtensionFichier(ByVal CheminFichier)

	'Retourne l'extension du fichier

	Dim Position

	ExtensionFichier = ""
	Position = InStrRev(CheminFichier,".")
	If (Position > 0) And (Position < Len(CheminFichier)) Then
		ExtensionFichier = Mid(CheminFichier,Position+1)
	End If

End Function
Lien vers le fichier : cliquez ici Copier le code

Article(s) précédent(s)

2