Sıralama: Newbie
Gruplar: Registered
Katılan: 8.07.2014(UTC) Mesajlar: 2
|
Merhaba uzun zamandır derleriniz olsun forum olsun takip etmekteydim. Nasıl oldu ise kendimi biranda MSSQL içinde buldum :) Bir projemi desem ne desem tanımlayamadım :( 1 adet aktif olrak kullanılan MSSQL Server var, bunun içinde yaklaşık irili ufaklı Database bulunmaktadır. bunları JOB ile sorunsuz bir şekilde otomatik yedek aldırtıyoruz ve yedek alındıgına dair mail göndertme filan herşey yerinde. 1 adet pasif olarakda 2. bir serverimiz var bunda da 1. serverda alınan yedegi 3. part yazılım ile 2. serverımıza aktarıp Database restore yapmaktayız ( yine JOB ile yapılmaktadır restore edildigine dair mail filan gelmekte ıvır zıvır.) T-SQL bir geliştirme maksadı ile 1. serverdan aldıgımız yedek dosyamıza ne zaman yedek alındıgına dair tarih ekliyoruz. Yani hen günün bir yedegi var olmuş oluyor. Örn. Backup_08-07-2014.bak gibi Gelelim esas sorumuza 2. Serverda Restore edilen database tarih kısmını otomatik tanıması ve database restore etmesini istemekteyim ama bir türlü işin içinden çıkamadım. Şimdiden Teşekkürler. BACKUP aldıgım Script aşagıdaki gibidir. Alıntı:DECLARE @name VARCHAR(50) DECLARE @path VARCHAR(256) DECLARE @fileName VARCHAR(256) DECLARE @fileDate VARCHAR(20)
SET @path = 'D:\MSSQL2012\Backup\' SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),105)
DECLARE db_cursor CURSOR FOR SELECT name FROM master.dbo.sysdatabases WHERE name NOT IN ('master','model','msdb','tempdb')
OPEN db_cursor FETCH NEXT FROM db_cursor INTO @name
WHILE @@FETCH_STATUS = 0 BEGIN SET @fileName = @path + @name + '_' + @fileDate + '.bak' BACKUP DATABASE @name TO DISK = @fileName
FETCH NEXT FROM db_cursor INTO @name END
CLOSE db_cursor DEALLOCATE db_cursor
|
|
|
|
Sıralama: Administration
Gruplar: Administrators
Katılan: 6.05.2014(UTC) Mesajlar: 670
19 Kere Teşekkür Etti. 152 Mesajına Toplam 253 Kere Teşekkür Edildi.
|
Originally Posted by: AdemB Merhaba uzun zamandır derleriniz olsun forum olsun takip etmekteydim. Nasıl oldu ise kendimi biranda MSSQL içinde buldum :) Bir projemi desem ne desem tanımlayamadım :( 1 adet aktif olrak kullanılan MSSQL Server var, bunun içinde yaklaşık irili ufaklı Database bulunmaktadır. bunları JOB ile sorunsuz bir şekilde otomatik yedek aldırtıyoruz ve yedek alındıgına dair mail göndertme filan herşey yerinde. 1 adet pasif olarakda 2. bir serverimiz var bunda da 1. serverda alınan yedegi 3. part yazılım ile 2. serverımıza aktarıp Database restore yapmaktayız ( yine JOB ile yapılmaktadır restore edildigine dair mail filan gelmekte ıvır zıvır.) T-SQL bir geliştirme maksadı ile 1. serverdan aldıgımız yedek dosyamıza ne zaman yedek alındıgına dair tarih ekliyoruz. Yani hen günün bir yedegi var olmuş oluyor. Örn. Backup_08-07-2014.bak gibi Gelelim esas sorumuza 2. Serverda Restore edilen database tarih kısmını otomatik tanıması ve database restore etmesini istemekteyim ama bir türlü işin içinden çıkamadım. Şimdiden Teşekkürler. BACKUP aldıgım Script aşagıdaki gibidir. Alıntı:DECLARE @name VARCHAR(50) DECLARE @path VARCHAR(256) DECLARE @fileName VARCHAR(256) DECLARE @fileDate VARCHAR(20)
SET @path = 'D:\MSSQL2012\Backup\' SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),105)
DECLARE db_cursor CURSOR FOR SELECT name FROM master.dbo.sysdatabases WHERE name NOT IN ('master','model','msdb','tempdb')
OPEN db_cursor FETCH NEXT FROM db_cursor INTO @name
WHILE @@FETCH_STATUS = 0 BEGIN SET @fileName = @path + @name + '_' + @fileDate + '.bak' BACKUP DATABASE @name TO DISK = @fileName
FETCH NEXT FROM db_cursor INTO @name END
CLOSE db_cursor DEALLOCATE db_cursor Merhabalar, Sql Server iyidir :) Sorunuza gelince bugune kadar sql serverda hiç böyle bir özellik duymadım yok diyemem ama ben duymadım :) Gelelim sizin sorununuz nasıl çözeceğimize, aslında çok da zor değil ama ne yazikki third party bir yazılım gerekmetedir, hazırı var mı bilmiyorum ama eğer bir yazılım dili biliyorsanız bunu kolaylıkla yapabilirsiniz, Yazacagınız program öncelikle sizin backup a aldıgınız klasore bakıcak günü tarihi ile tarih adı verdiğiniz dosyayı arayacak sonra ise dosya adını sizin yukarıdaki yazdıgınız koda parametre olarak gönderecek , siz bunu windows'un planlanan işlerine eklediğinizde hergün exeniz otomatik olarak çalışarak sizin ihtiyacagınızı çözmüş olacak Kolay Gelsin |
Sql Server 2016 Eğitimiz 19 Mayıs tarihinde başlayacaktır. 32 Saat Olup Ücret 1450 TL + KDV'dir. Kayıt ve ayrıntılar için tıklayınıztwitter.com/dbakademi Dua ve teşekkür en büyük servetlere bedel... |
|
|
|
Sıralama: Newbie
Gruplar: Registered
Katılan: 8.07.2014(UTC) Mesajlar: 2
|
Merhaba, Öncelikle cevabınız için teşekkürler. özellikten kastınız nedir ? zannedersem yazım yanlış yorumlandı. neyse sorumun bir kısmını çözmüş gibiyim ama tam yapmak istedigimi yapamadım diyebilirim. Alıntı:DECLARE @pathName NVARCHAR(512) SET @pathName = 'D:\MSSQL2012\Backup\Test_' + CONVERT(VARCHAR(20),GETDATE(),105) + '.bak' RESTORE DATABASE [Test] FROM DISK = @pathName WITH REPLACE GO DECLARE @pathName NVARCHAR(512) SET @pathName = 'D:\MSSQL2012\Backup\Deneme_' + CONVERT(VARCHAR(20),GETDATE(),105) + '.bak' RESTORE DATABASE [Deneme] FROM DISK = @pathName WITH REPLACE bu kod ile işim hallediliyor ama ben herbir database için değilde Backup klasöründeki *_(günün tarihi).bak yedek klasörlerini otomatik tarayıp buldugu bütün database dosyalarını restore etmesini istiyorum. herhalde çok şey istedim bir kaç yabancı kaynakta bulmuştum ama şimdi bulamıyorum.bulsam onun üzerinde çalışıp derlemek lazım.
|
|
|
|
Forumu Atla
Bu foruma yeni konular postalayamazsınız.
Bu forumda ki konulara yeni posta gönderemezsiniz.
Bu forumdaki postalarınızı silemezsiniz.
Bu forumdaki postalarınızı düzenleyemezsiniz.
Bu forumda anketler yaratamazsınız.
Bu forumdaki anketlere oy veremezsiniz.