Web design and hosting, database, cloud and social media solutions that deliver real business results
  • Veritabanı Hizmetleri
    • Araçlar
      • Claytabase Server Disk IOPs Calculator
      • SQL Kod Yedekleme
      • SQL Yazıcı
    • Teknik Makaleler
      • SQL-Server
      • SQL Server 2008 Bakım Planı
      • SQL Server işlevlerini kullanma
      • SQL Server Pivot-Unpivot'u Kullanma
      • SQL Server Tarihlerini Kullanma
  • Web Sitesi Tasarımı
    • Teknik Makaleler
      • ASP-NET
      • CSS
    • Web Sitesi Güvenliği
    • Wight Adası
  • İş hizmetleri
    • Microsoft Azure
    • Microsoft Office
  • Sosyal Medya
  • Hakkında
    • Portföy
    • Takım
      • Chester Copperpot
AR - عربىCS - češtinaDE - DeutschEN - EnglishES - EspañolFA - فارسیFR - FrançaisHI - हिंदीIT - italianoJA - 日本語PL - polskiPT - PortuguêsRU - русскийZH - 中国的

Depolanan bir prosedürden SQL Server veritabanını geri yüklemek için dinamik bir komut dosyası

Daha geniş bir bakım planının parçası olarak bir dizi parametre kullanarak veritabanlarını geri yükleyebilen dinamik SQL komut dosyası kullanarak merkezi, genel ve yeniden kullanılabilir bir saklı yordam oluşturun

İşlem

DB.png'yi geri yükle

Bir veritabanını geri yükleme işlemi, SSMS'den komut dosyası olarak yazılabilir. Bu bir Depolanan Prosedüre kaydedildiğinde, diğer işlenmiş veya sunuculardan çağrılabilir ve özellikle birleştirilmiş bir bakım planının parçası olarak kullanışlıdır.

Aşağıda iki komut dosyası oluşturduk.

Basit komut dosyasıyla SSMS'den oluşturulan kodu kullanın ve Depolanan Prosedürün içeriğini değiştirin.

Genel komut dosyasıyla, tek veritabanları değişkenler kullanılarak geri yüklenebilir, bu da onu yeniden kullanabileceğiniz anlamına gelir.

Simple Script

USE [utilities]

GO

CREATE PROC [maint].RestoreDatabase_{dbname} AS BEGIN

RESTORE 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'

END

GO

Yeniden kullanılabilir komut dosyası

Bu komut dosyası, başka bir yerden çağrılmasını sağlamak için bir dizi parametre kullanır, bu nedenle yeniden kullanılabilir ve gerekirse çapraz sunucu olarak adlandırılabilir.

  • @dbname - Çağrılmasını istediğiniz veritabanı adı
  • @Directory_Bak - Yedeklerin depolandığı klasör
  • @Directory_Dat - Günlük dosyalarını ve veritabanı dosyalarını farklı disklerde tutmak en iyisidir, bu yüzden onu depolamak istediğiniz dizin budur
  • @Directory_Log - Yukarıdaki gibi, günlük dosyanız için ayrı bir dizin kullanın
  • @Directory_Stand - Bu, günlük sevkiyatı düşünülerek geliştirilmiştir, bu nedenle bu, ana veritabanınızdan raporlama veritabanına geri yükleme yapmak için kullanılabilir

SQL

USE [utilities]

GO

CREATE PROC [maint].RestoreDatabase(@dbname NVARCHAR(100),@Directory_Bak NVARCHAR(100),@Directory_Dat NVARCHAR(100),@Directory_Log NVARCHAR(100),@Directory_Stand BIT) AS BEGIN

DECLARE @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 Code

IF ISNULL(@Directory_Bak,'')<>''

SET @SQL=@SQL+',STANDBY=N'''+@Directory_Stand+'ROLLBACK_UNDO_'+@dbname+'.bak'''

EXEC master..sp_executesql @SQL

END

GO

Yazar

Gavin Clayton
Gavin Clayton
SQL Server ve ASP.NET ile çalışmamı sürdürmek için bir yol olarak Claytabase'i 2010'da kurdum. Bu, Ousia İçerik Yönetim Sisteminin konseptten pazardaki en hızlı CMS'lerden biri haline getirilmesiyle sonuçlandı.
 Google Translate
Google Translate

Helpful?

Please note, this commenting system is still in final testing.

Our services

database maintenance | database design | web site design | web site hosting | web site security | cloud services | social media

© 2016 Claytabase Ltd, registered company in the UK 08985867

Quick links

RSS Login ContactCookie PolicySitemap

Find us on social media

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

Get in touch

+441983300796info@claytabase.co.ukGround Floor, Building 1000, Lakeside North Harbour, Western Road, Portsmouth, Hampshire, United Kingdom, PO6 3EZ

Partners and memberships

Ousia logo
Bu sitedeki ayarlar tüm çerezlere izin verecek şekilde ayarlanmıştır. Bunlar, çerez politikamız ve ayarlar sayfamızdan değiştirilebilir. Bu siteyi kullanmaya devam ederseniz, çerezlerin kullanımını kabul etmiş olursunuz.
Ousia Logo
Ousia CMS Loader