Web design and hosting, database, cloud and social media solutions that deliver business results
  • Obchodní řešení
    • Databázové služby
      • Integrace dat
    • Robotická automatizace procesů
    • Návrh webových stránek
      • Zabezpečení webových stránek
    • Obchodní služby
      • Microsoft Azure
    • Microsoft Office
    • Sociální Média
  • Akademie
    • Výuka návrhu databáze
      • Zprávy
      • Pomocí serveru SQL Pivot-Unpivot
      • Použití dat serveru SQL Server
      • Používání funkcí dat serveru SQL Server
      • Používání funkcí serveru SQL Server
      • SQL Server 2008 plán údržby
    • Výuka designu webových stránek
      • CSS
      • ASP NET
  • O nás
    • Portfolio
    • tým
      • Gavin Clayton
      • Chester Copperpot
      • Suneel Kumar
عربى (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)

Dynamický skript pro obnovení databáze serveru SQL z uložené procedury

Vytvořte centralizovanou, obecnou a opakovaně použitelnou uloženou proceduru pomocí dynamického skriptu SQL, který může obnovit databáze pomocí řady parametrů jako součást širšího plánu údržby

Proces

Obnovit DB.png

Proces obnovy databáze lze skriptovat z SSMS. Když je toto uloženo do uložené procedury, může být voláno z jiných zpracovaných nebo serverů a je zvláště užitečné jako součást spojeného plánu údržby.

Níže jsme vytvořili dva skripty.

Pomocí jednoduchého skriptu použijte kód vygenerovaný z SSMS a nahraďte obsah uložené procedury.

S obecným skriptem lze jednotlivé databáze obnovit pomocí proměnných, což znamená, že je můžete znovu použít.

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

Znovu použitelný skript

Tento skript používá řadu parametrů k tomu, aby jej bylo možné volat odjinud, takže jej lze v případě potřeby znovu použít a zavolat mezi servery.

  • @dbname - název databáze, kterou chcete volat
  • @Directory_Bak - složka, kde jsou uloženy zálohy
  • @Directory_Dat - nejlepší je uchovávat soubory protokolu a databázové soubory na různých discích, takže do tohoto adresáře jej chcete uložit
  • @Directory_Log - Jak je uvedeno výše, použijte pro svůj soubor protokolu samostatný adresář
  • @Directory_Stand - Toto bylo vyvinuto s ohledem na zasílání logů, takže jej lze použít k obnovení z hlavní databáze do databáze hlášení

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

Autor

Helpful?

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

Registered in England and Wales 08985867

RSSLoginLink Cookie Policymapa stránek

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
Nastavení na této stránce jsou nastaveny povolit všechny soubory cookie. Ty mohou být změněny na našich zásad a nastavení stránky cookie. Nadále používat tento web souhlasíte s použitím cookies.
Ousia Logo
Logout
Ousia CMS Loader