İleri Seviye SQL Server Sql Server

SQL Server’da Tüm Veritabanlarının Yedeğini Alan Cursor

SQL Server Eğitimleri Kanalına Abone Olun

Herkese merhaba,

Bu yazıda SQL Server’da veritabanlarının Cursor yardımıyla yedeğinin alınması hakkında bilgi vereceğim.

SQL Server’da yedek almanın birçok yöntemi mevcut ve var olan sisteminize, yapınıza göre bu yöntemler şekillenebilir.

Kimileri bu işlemi job’lar aracılığı ile yapabildiği gibi kimileri elle günlük olarak da alabilir. Kimilerinin ise bambaşka yöntemleri vardır. Ayrıntısı bol bir konu.

Benim göstereceğim yapı ise Cursor kullanarak sistem veritabanları hariç diğer veritabanların tüm yedeğinin tek seferde nasıl alınabileceği.

Aşağıdaki kodu kullanarak sistem harici veritabanlarının yedeğini tek seferde alabilirsiniz. Bu işlem veritabanının büyüklüğüne göre zaman alabilir ya da almaz.

DECLARE @name VARCHAR(50); -- Veritabanı adı 
DECLARE @path VARCHAR(256); -- Yedek yolu
DECLARE @fileName VARCHAR(256); -- Yedek adı
DECLARE @fileDate VARCHAR(20); -- Yedek alınma tarihi

SET @path = 'C:\Backup\'; --Veritabanı yedeklerinizi kaydedebileceğiniz alan

SELECT @fileDate = CONVERT(VARCHAR(20), GETDATE(), 112);

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;

Aşağıdaki  kısmı

SELECT name FROM master.dbo.sysdatabases WHERE name NOT IN ( 'master', 'model', 'msdb', 'tempdb' );

Bu şekilde de değiştirip kullanabilirsiniz.

SELECT name FROM master.dbo.sysdatabases WHERE name  IN ( 'veritabaniadi1','veritabaniadi2' );

Üstteki şekilde kullanırsanız seçmiş olduğunuz veritabanlarının yedeğini alır. veritabaniadi1 ve veritabaniadi2 dediğim kısımlar sizin kendi veritabanlarınıza ait adlardır.

Kodunuzu kendinize göre düzenleyip çalıştırdıktan sonra yedeklerinizi kaydettiğiniz alanda alınmış yedeklerinizi göreceksiniz.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

2 Kez Okundu
SQL Server Eğitimleri Kanalına Abone Olun

Yazar hakkında

Yavuz Selim Kart

SQL Server tarafında kendini ilerletmeye çalışırken bildiklerini sürekli başkalarına aktaran, yazılım dünyasında (C#, Java, Python vb.) kendini güncel tutmaya çalışan, araştırma yapmaktan bıkmayan, meraklı, bilginin üzerine bilgi katmaktan mutluluk duyan bir yazılım eğitmeni ve kod sever.
Grafik tasarım dünyasında Indesign'ı anlatacak kadar iyi kullanabilen, Photoshop ve Illustrator'e de orta düzey hakimiyeti bulunan, internet üzerinde online kimya dergisi kurmuş ve bunu yüzbinlerce kişiye ulaştırmayı başaran bir grafik sever.
WordPress tarafında 5 adet web sitesi kurmuş, bu sistemler üzerine çalışan bir WordPress sever.
Sosyal medya üzerinde okumalara ve araştırmalara devam eden, kendi kurmuş olduğu kimya dergisini daha çok kişiye nasıl ulaştırırım diye düşünen ve bu konuda SEO çalışmaları üzerine kafa yoran bir Sosyal Medya sever.
Kısaca çok çalışmayı seven, azimli biriyim.

Kopyalamak Yasaktır!