logo
Welcome Guest! To enable all features please Giriş or Kayıt.

Bildirim

Icon
Error

Ayarlar
Son mesaja git Go to first unread
AdemB  
#1 Gönderildi : 8 Temmuz 2014 Salı 15:40:48(UTC)
AdemB

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


mehmetzekikir  
#2 Gönderildi : 9 Temmuz 2014 Çarşamba 08:45:01(UTC)
mehmetzekikir

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 Go to Quoted Post
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ız

twitter.com/dbakademi
Dua ve teşekkür en büyük servetlere bedel...
AdemB  
#3 Gönderildi : 9 Temmuz 2014 Çarşamba 09:39:04(UTC)
AdemB

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.


Bu konudaki kullanıcılar
Guest (3)
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.