Web design and hosting, database, cloud and social media solutions that deliver business results
  • Des solutions d'affaires
    • Automatisation des processus robotiques
    • Logiciel
    • Services de base
      • Intégration de données
      • Power BI
      • Services d'entrepôt de données
      • Tools
    • Conception de site Web
      • Localisation et traduction Web
      • Sécurité du site Web
    • Services Cloud
      • Microsoft Azure
    • Média Social
    • Microsoft Office
  • Académie
    • Conception de bases de données d'apprentissage
      • Utilisation de données SQL Server
      • Obtenir la requête ouverte
      • Plan de maintenance SQL Server 2008
      • Utilisation des dates SQL Server
      • Utilisation de SQL Server Pivot-Unpivot
      • Utiliser SQL Server Fonctions
    • Apprentissage de la conception Web
      • CSS
      • ASP NET
    • Cloud d'apprentissage et services informatiques
      • Demande SSL et génération de fichier PFX dans OpenSSL étapes simples
  • Sur
    • Carrières
    • Équipe
      • Ali Al Amine
      • Chester Copperpot
      • Gavin Clayton
      • Suneel Kumar
    • Portefeuille
عربى (AR)čeština (CS)Deutsch (DE)English (EN-GB)English (EN-US)Español (ES)فارسی (FA)Français (FR)हिंदी (HI)italiano (IT)日本語 (JA)polski (PL)Português (PT)русский (RU)Türk (TR)中国的 (ZH)

Un script dynamique pour restaurer la base de données SQL Server à partir d'une procédure stockée

Créez une procédure stockée centralisée, générique et réutilisable à l'aide d'un script SQL dynamique capable de restaurer des bases de données à l'aide d'un certain nombre de paramètres dans le cadre d'un plan de maintenance plus large

Traiter

Restaurer DB.png

Le processus de restauration d'une base de données peut être scripté à partir de SSMS. Lorsqu'elle est enregistrée dans une procédure stockée, elle peut être appelée à partir d'autres serveurs traités ou, et est particulièrement utile dans le cadre d'un plan de maintenance joint.

Ci-dessous, nous avons créé deux scripts.

Avec le script simple, utilisez le code généré à partir de SSMS et remplacez le contenu de la procédure stockée.

Avec le script générique, des bases de données uniques peuvent être restaurées à l'aide de variables, ce qui signifie que vous pouvez les réutiliser.

Simple Script

USE [utilities]GOCREATE PROC [maint].RestoreDatabase_{dbname} AS BEGINRESTORE DATABASE [dbname] FROM DISK=N'c:\backupfolder\{dbname}.bak' WITH FILE= 1,MOVE N'{dbname}' TO N'd:\database\{dbname}.mdf',MOVE N'{dbname}_log' TO N'e:\database\{dbname}.ldf',NOUNLOAD, REPLACE, STATS= 10,STANDBY=N'e:\database\ROLLBACK_UNDO_{dbname}.bak'ENDGO

Script réutilisable

Ce script utilise un certain nombre de paramètres pour lui permettre d'être appelé ailleurs, il peut donc être réutilisé et appelé cross-serveur si nécessaire.

  • @dbname - Nom de la base de données que vous souhaitez appeler
  • @Directory_Bak - Dossier dans lequel les sauvegardes sont stockées
  • @Directory_Dat - Il est préférable de conserver les fichiers journaux et les fichiers de base de données sur différents disques, c'est donc le répertoire sur lequel vous souhaitez les stocker
  • @Directory_Log - Comme ci-dessus, utilisez un répertoire séparé pour votre fichier journal
  • @Directory_Stand - Ceci a été développé avec l'envoi de journaux à l'esprit, donc cela peut être utilisé pour effectuer une restauration de votre base de données principale vers la base de données de rapports

SQL

USE [utilities]GOCREATE PROC [maint].RestoreDatabase(@dbname NVARCHAR(100),@Directory_Bak NVARCHAR(100),@Directory_Dat NVARCHAR(100),@Directory_Log NVARCHAR(100),@Directory_Stand BIT) AS BEGINDECLARE @SQL NVARCHAR(MAX)='RESTORE DATABASE ['+@dbname+'] FROM DISK=N'''+@Directory_Bak+''+@dbname+'.bak'' WITH FILE= 1,MOVE N'''+@dbname+''' TO N'''+@Directory_Dat+@dbname+'.mdf'',MOVE N'''+@dbname+'_log'' TO N'''+@Directory_Log+@dbname+'.ldf'',NOUNLOAD, REPLACE, STATS=10'--Standby CodeIF ISNULL(@Directory_Bak,'')<>''SET @SQL=@SQL+',STANDBY=N'''+@Directory_Stand+'ROLLBACK_UNDO_'+@dbname+'.bak'''EXEC master..sp_executesql @SQLENDGO

Auteur

Helpful?

Please note, this commenting system is still in final testing.
Copyright Claytabase Ltd 2020

Registered in England and Wales 08985867

RSSLoginLink Politique de cookieSitemap

Social Media

facebook.com/Claytabaseinstagram.com/claytabase/twitter.com/Claytabaselinkedin.com/company/claytabase-ltd

Get in Touch

+442392064871info@claytabase.comClaytabase Ltd, Unit 3d, Rink Road Industrial Estate, PO33 2LT, United Kingdom
Les paramètres de ce site sont configurés pour autoriser tous les cookies. Ceux-ci peuvent être modifiés sur notre page cookies. En continuant à utiliser ce site, vous acceptez l'utilisation de cookies.
Ousia Logo
Logout
Ousia CMS Loader