Sql server 2012 Databases bütün olarak yedekleme

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
cinarbil
Üye
Mesajlar: 109
Kayıt: 18 Mar 2014 09:26

Sql server 2012 Databases bütün olarak yedekleme

Mesaj gönderen cinarbil »

İyi günler.
Sql server 2012 'de
Databases bütün olarak yedekleme bilir mi ?

XXXX sql server 212 içindeki databases tıklayarak içindeki istediğimiz database sağ tıkla backup yapabiliyoruz.
veya yazılımla yedek yapılabilmekte.

Kod: Tümünü seç

 sorgu.sql.Clear;
    sorgu.sql.Add('BACKUP DATABASE ' + tablo_adi.Text);
    sorgu.sql.Add('   TO DISK = '+''''+kayit_yeri1.Text+'''');
    sorgu.ExecSQL;

zirve kullananlar bilir her yeni mükellef için yeni database oluşturur. ben databases içindeki tüm database listeliyorum
sonra döngü ile databases içindeki tüm database leri yedek aldırıyorum.

daha kolay ve güvenli tüm databases yedekleme imkanı arıyorum

cmd modunda sql susturarak xcopy ile klasörü kopyalama yaparak tekrar sql çalıştırma imkanı yok.
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: Sql server 2012 Databases bütün olarak yedekleme

Mesaj gönderen mussimsek »

Daha kolay derken yönteminizin size sıkıntısı nedir?

Biz de bahsettiğiniz "BACKUP DATABASE..." kodlarını bir stored procedure içine yazdık ve her gece belli bir saatte job ile bu sp'yi çalıştırarak yedek alıyoruz.

Kolay gelsin.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Sql server 2012 Databases bütün olarak yedekleme

Mesaj gönderen freeman35 »

ntbackup ı inceleyebilirsin, sadece sql server dosyları değil, yaptığınız listeyide yedekler. sql server ın down edilmesinede gerek kalmıyor. incremental da yedek alabiliyor.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
cinarbil
Üye
Mesajlar: 109
Kayıt: 18 Mar 2014 09:26

Re: Sql server 2012 Databases bütün olarak yedekleme

Mesaj gönderen cinarbil »

İlginiz için teşekkür ederim
BACKUP DATABASE yedek alırken stored procedure hangi database alacaksanız devamına yazıyoruz
BACKUP DATABASE LKSDB bu alındı birde
BACKUP DATABASE GODB bu nu aldık. alınacak isimlerde Türkçe olmayınca sorun yok.

dinamik olarak müşteriler tarafından açılan databaseleri yedeklerken sorun oluyor.

ÇINAR_2015
ŞAMDAN TİCARET
ĞĞĞ ticaret v.s gibi sayısı belirli olmayan database ler oluyor.

ben ( tablo_liste Listbox tablo_adi ansistring )

aşağıdaki komutla sql de bulunan tabloları alıyorum.

Kod: Tümünü seç

tablo_liste.Clear;
sorgu.Close;
sorgu.SQL.Clear;
sorgu.SQL.Add ('SELECT name FROM sysdatabases WHERE name NOT IN (''master'', ''tempdb'',''model'',''msdb'',''ReportServer'',''ReportServerTempDB'')');
sorgu.Open;
sorgu.First;
while not sorgu.Eof do begin
   tablo_liste.Items.Add(sorgu.Fields[0].asstring); // Türkçe isimler buraya sorunsuz geliyor.
   sorgu.Next;
end;

Kod: Tümünü seç

BACKUP DATABASE tablo_adi.Text := trim(tablo_liste.items[tablo_liste.itemindex]);
// komutunu döngü ile yedekliyorum

Türkçe karakter den midir sql gördüğü dosya ismini işletim sistemi görmüyor mu anlamadım.
her 10 sql server 2012 den 1 veya 2 tanesinde bazı dosyaları yedeklenmiyor.
Server ları biz kurmuyoruz ve server ayarlarına müdahale edemiyoruz.

bu nedenle mümkünse tek seferde tüm databases yedeklemek istemiştim.
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Sql server 2012 Databases bütün olarak yedekleme

Mesaj gönderen csunguray »

Bir strored procedure kullanarak tanımlı olan tüm DB'leri yedekleyebilirsiniz.

Kod: Tümünü seç

USE master
GO

SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_BackupAllDatabase]
    @backupType CHAR(1),
    @backupFolder VARCHAR(150)
AS  
BEGIN  
    DECLARE @dayOfWeek int
    DECLARE @dayNameOfWeek varchar(10)
    DECLARE @name VARCHAR(50) -- database name  
    DECLARE @fileName VARCHAR(256) -- filename for backup  
    DECLARE @fileDate VARCHAR(20) -- used for file name

    -- specify filename format (Dosya adi icin tarih olustur)
    SELECT @fileDate = CONVERT(VARCHAR(20), GETDATE(), 112) 
    SET @dayOfWeek = DATEPART(weekday ,GETDATE())
    SET @dayNameOfWeek = UPPER(DATENAME(weekday, GETDATE()))

    DECLARE db_cursor CURSOR FOR  
    SELECT name 
    FROM master.dbo.sysdatabases 
    WHERE name NOT IN ('master','model','msdb','tempdb')  -- exclude these databases (bu DB leri hariç bırak)

    OPEN db_cursor   
    FETCH NEXT FROM db_cursor INTO @name   

    WHILE @@FETCH_STATUS = 0   
    BEGIN   
        IF @backupType = 'F'  
        BEGIN
            SET @fileName = @backupFolder + @name + '_' + @fileDate + '_FULL.BAK'  
            BACKUP DATABASE @name TO DISK = @fileName  
        END   

        IF @backupType = 'D'  
        BEGIN
            SET @fileName = @backupFolder + @name + '_' + @fileDate + '_DIFF.BAK'  
            BACKUP DATABASE @name TO DISK = @fileName WITH DIFFERENTIAL  
        END   

        IF @backupType = 'W'  
        BEGIN
            IF @dayOfWeek = 2  -- Pazartesi günüyse
            BEGIN
              SET @fileName = @backupFolder + @name + '_' + @dayNameOfWeek + '_FULL.BAK'  
              BACKUP DATABASE @name TO DISK = @fileName  
            END ELSE
            BEGIN
              SET @fileName = @backupFolder + @name + '_' + @dayNameOfWeek + '_DIFF.BAK'  
              BACKUP DATABASE @name TO DISK = @fileName WITH DIFFERENTIAL  
            END
        END   

        FETCH NEXT FROM db_cursor INTO @name   
    END   

    CLOSE db_cursor   
    DEALLOCATE db_cursor
END
GO
Ben yukarıdaki gibi bir şey yaptım. Full, Differantial veya haftalık Full olarak yedek alablirsiniz. Haftalık Full yedek sadece Pazartesi Full diğer günler Differantial yedek alıyor. Böylede yedekleriniz HD'te çok yer kaplamıyor.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Kullanıcı avatarı
cinarbil
Üye
Mesajlar: 109
Kayıt: 18 Mar 2014 09:26

Re: Sql server 2012 Databases bütün olarak yedekleme

Mesaj gönderen cinarbil »

Teşekkür ederim hemen deneyeceğim.
Allah c.c razı olsun.
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Kullanıcı avatarı
cinarbil
Üye
Mesajlar: 109
Kayıt: 18 Mar 2014 09:26

Re: Sql server 2012 Databases bütün olarak yedekleme

Mesaj gönderen cinarbil »

csunguray çok teşekkür ederim tam istediğimiz gibi sorunsuz tüm server larda yedek alıyor.
Alınan tüm yedekler başarılı bir şekilde geri yükleniyor.
Allah cümlenizden razı olsun.
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Kullanıcı avatarı
itsmylife38
Üye
Mesajlar: 28
Kayıt: 07 Haz 2005 04:11
Konum: İzmir
İletişim:

Re: Sql server 2012 Databases bütün olarak yedekleme

Mesaj gönderen itsmylife38 »

Konu geçmiş ama Stor procedure sadece aşağıda ki parametreleri göndermek yeterli mi benim databasim web üstünde başka bir firmada ondan mı hata alıyorum acaba ?

QYedek.Active:=False;
QYedek.Parameters.ParamByName('@backupType').Value:='D';
QYedek.Parameters.ParamByName('@backupFolder').Value:='D:\';
QYedek.ExecProc;


Security ile iligili hata veriyor ?
Ismail ULUSOY

it is my life
( Hayat bizim peki Kontrolu kimde? )
Cevapla