Zamanlama ve sql Server veritabanlarında sql Server Express Yedeklemeleri otomatikleştirmek nasıl

Makale çevirileri Makale çevirileri
Makale numarası: 2019698
Hepsini aç | Hepsini kapa

™zet

sql Server Express sürümleri sql Server Aracısı bileşeni bu sürümlerde yoktur çünkü işler veya bakım planlarını planlamak için bir yol sunmaz. Bu nedenle, bu sürümlerde kullandığınızda, veritabanlarını yedeklemek için farklı bir yaklaşım almak zorunda.   

Şu anda sql Server Express kullanıcılar aşağıdaki yöntemlerden birini kullanarak kendi veritabanlarını yedekleyin:

sql Server Management Studio Express kullanın. Bu, sql Server Express Gelişmiş servisi veya sql Server Express Toolkit ile birlikte yüklenir. Daha fazla bilgi için aşağıdaki Microsoft Developer Network (msdn) Web sitesine gidin:

Tam veritabanı yedekleme (sql Server) oluşturma

  • backup database ailesi komutlarının kullanan bir Transact-sql komut dosyası kullanın. Daha fazla bilgi için aşağıdaki msdn Web sitesini ziyaret edin:

    Yedekleme (Transact-sql)

    Bu makalede, bir zamanlama temelinde veritabanları sql Server Express Yedeklemeleri otomatikleştirmek için Windows Görev Zamanlayıcısı ile birlikte bir Transact-sql komut dosyası nasıl kullanılır.

  • Daha fazla bilgi

    Windows Görev Zamanlayıcısı'nı kullanarak sql Server veritabanlarınızı yedeklemek için aşağıdaki üç adımı izleyin vardır:

    Adım bir: Use sql Server Management Studio Express ya da Sqlcmd aaıdaki saklı yordamı ana veritabanınızı oluşturmak için:

    / / Telif Hakkı © Microsoft Corporation.  Tüm hakları saklıdır.

    / / Bu kod serbest koşulları

    / / Microsoft Kamu Lisansı (ms-pl http://opensource.org/licenses/ms-pl.html.)

    Kullanımı [ana]
    GO 
    / ****** Nesne: saklı yordam [dbo].[sp_BackupDatabases] ****** /
    set ANSI_NULLS on
    Git
    set QUOTED_IDENTIFIER on
    Git
    --=============================================
    --Yazar: Microsoft
    --oluşturma tarihi: 2010-02-06
    --açıklaması: yedek veritabanları için SQLExpress
    --parametre1: databaseName
    --Parametre2: YedeklemeTürü f tam, d = fark, M = = oturum
    --Parametre3: yedekleme dosyası konumu
    --=============================================
    oluşturma yordamı [dbo]. [[sp_BackupDatabases]
    @ VeritabanıAdı sysname = null,
    @ YedeklemeTürü char(1),
    @ YedekKonumu nvarchar(200)
    as
    set nocount on; 
               
                DECLARE @DBs TABLE
                (
                      ID int IDENTITY PRIMARY KEY,
                      DBNAME nvarchar(500)
                )
               
                 -- Pick out only databases which are online in case ALL databases are chosen to be backed up
                 -- If specific database is chosen to be backed up only pick that out from @DBs
                INSERT INTO @DBs (DBNAME)
                SELECT Name FROM master.sys.databases
                where state=0
                AND name=@DatabaseName
                OR @DatabaseName IS NULL
                ORDER BY Name
               
                -- Filter out databases which do not need to backed up
                IF @backupType='F'
                      BEGIN
                      delete @ DBs nerede dbname de ('tempdb', 'Northwind' 'pubs', 'AdventureWorks')
    son
    else IF @ YedeklemeTürü = vardı '
    başlamak
    delete @ DBs nerede dbname de ('tempdb', 'Northwind', 'pubs' 'ana', 'AdventureWorks')
    son
    else IF @ YedeklemeTürü 'l' =
    BAŞLAYAN
    delete @ DBs nerede dbname de ('tempdb', 'Northwind', 'pubs' 'ana', 'AdventureWorks')
    son
    else
    BAŞLAYAN
    DÖNMEK
    son
    --değişkenleri bildirmek
    BİLDİRMEK @ YedekAdı varchar(100)
    BİLDİRMEK @ BackupFile varchar(100)
    BİLDİRMEK @ dbname varchar(300)
    declare @ sqlCommand nvarchar(1000)
    declare @ dateTime nvarchar(20)
    BİLDİRMEK @ döngü int
    --veritabanları bir döngü
    seçin @ döngü min(ID) from @ DBs =
    WHILE döngüsü Is not null @
    başlamak
    --veritabanı adları vardır, bu yana-[dbname] biçimi ya da onların adı _ olmak zorunda
          set @ dbname = '[' +(SELECT DBNAME FROM @DBs WHERE ID = @Loop) +']'
    --geçerli tarih ve saati n yyyyhhmmss biçimini ayarlayın
    set @ dateTime = replace (DÖNÜŞTÜRMEK (varchar, getdate(),101),'/','') + '_' + YERİNİ (DÖNÜŞTÜRMEK (varchar, getdate(),108),':','')
    --path\filename.extension biçiminde tam, fark ve günlük yedeklemeler için yedekleme dosya adı oluşturma
    YedeklemeTürü = 'f'
    set @ BackupFile = YedekKonumu + Değiştir (YERİNİ (@ dbname, ' [', ''),'] ','') '_full_' + @ dateTime + '.bak'
    else IF @ YedeklemeTürü = vardı '
    set @ BackupFile = YedekKonumu + Değiştir (replace (@ dbname, ' [', ''),'] ','') + '_DIFF_' + @ dateTime + '.bak'
    else IF @ YedeklemeTürü 'l' =
    set @ BackupFile = YedekKonumu + Değiştir (replace (@ dbname, ' [', ''),'] ','') + '_log_' + @ dateTime + '.trn'
    --Yedekleme ortam saklamak için bir ad girmeniz
    YedeklemeTürü = 'f'
    set @ YedekAdı replace(replace(@dbname,'[',''),']','') = +' için tam yedekleme ' + @ dateTime
    YedeklemeTürü = ise vardı '
    set @ YedekAdı replace(replace(@dbname,'[',''),']','') = +' Farklıları yedekleme için ' + @ dateTime
    YedeklemeTürü = 'l'
    set @ YedekAdı replace(replace(@dbname,'[',''),']','') = +' günlük yedekleme için ' + @ dateTime
    --yürütülecek dinamik sql komutu oluşturmak
    YedeklemeTürü = 'f'
    başlamak
    set @ sqlCommand 'Yedek veri TABANI' +@dbname+ = ' için DISK = '''+@BackupFile+ ''' ile INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'
                      END
           IF @backupType = 'D'
                      BEGIN
                   SET @sqlCommand = 'BACKUP DATABASE ' +@DBNAME+  ' TO DISK = '''+@BackupFile+ ''' WITH DIFFERENTIAL, INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'        
                      END
           IF @backupType = 'L' 
                      BEGIN
                   SET @sqlCommand = 'BACKUP LOG ' +@DBNAME+  ' TO DISK = '''+@BackupFile+ ''' WITH INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'        
                      END
     
    -- Execute the generated SQL command
           EXEC(@sqlCommand)
     
    -- Goto the next database
    SELECT @Loop = min(ID) FROM @DBs where ID > @ döngü
    end

    Adım b: bir metin düzenleyicisinde Sqlbackup.bat adlı bir toplu iş dosyası oluşturun ve sonra metni aşağıdaki örneklerde birini senaryonuza bağlı olarak bu dosyaya kopyalayın:

    Example1:Windows kimlik doğrulaması kullanarak sqlexpress adlandırılmış yerel örneğinde tüm veritabanlarının tam yedeklemeler

    / / Sqlbackup.bat

    sqlcmd -s. \express –e -q "exec sp_BackupDatabases @ YedekKonumu = vardı: \SQLBackups\', 'f' YedeklemeTürü =" 

    Example2: bir SQLLogin ve kendi parolasını kullanarak sqlexpress yerel adlandırılmış örneği tüm veritabanlarında, fark yedekler

    / / Sqlbackup.bat

    sqlCmd - u SQLLogin -p parola -s. \sqlexpress -q "exec sp_BackupDatabases @ YedekKonumu = 'D:\SQLBackups', YedeklemeTürü = vardı '"

    Not: at SQLLogin öğe sql Server'da en az yedekleme işletmeni rolüne.


    Örnek 3: Tüm veritabanları yerel adlandırılmış örneği Windows kimlik doğrulaması kullanarak sqlexpress günlüğü yedekleri

    / / Sqlbackup.bat

    sqlCmd -s. \sqlexpress -e -q "exec sp_BackupDatabases @ backupLocation='D:\SQLBackups\',@backupType='L'"

    Örnek 4:Windows kimlik doğrulaması kullanarak yerel adlandırılmış örneği sqlexpress userdb veritabanının tam yedeklemeler

    / / Sqlbackup.bat

    sqlCmd -s. \sqlexpress -e -q "exec sp_BackupDatabases @ YedekKonumu = vardı: \SQLBackups\', @ databaseName = 'userdb', 'f' YedeklemeTürü ="

    Benzer şekilde, diferansiyel yapıştırarak userdb yedekleme yapabilirsiniz yaklaşık ' @ YedeklemeTürü parametresi ve günlük yedek bir kopyasını userdb @ YedeklemeTürü parametresi için 'l' yapıştırarak.

    Adım c:b.. adımda oluşturduğunuz toplu iş dosyasını çalıştırmak için Windows Görev Zamanlayıcısı'nı kullanarak iş zamanlama Bunu yapmak için şu adımları izleyin:

    1. sql Server Express çalıştıran bilgisayarda, Başlat' ı tıklatın, Tüm Programlar' ın üzerine, Donatılar' ın üzerine gelin, Sistem Araçları' nın üzerine ve Zamanlanmış Görevler. 
    2. Çift Add zamanlanmış görev. 
    3. Zamanlanmış Görev Sihirbazı'nda, İleri' yi tıklatın. 
    4. Gözat' ı tıklatın, b adımda oluşturduğunuz toplu iş dosyasını tıklatın ve ' ı tıklatın. 
    5. sqlbackup için görev adını yazın, Günlük' ü tıklatın ve sonra İleri' yi tıklatın. 
    6. Görevi çalıştırmak üzere zamanlama bilgilerini belirtin. (En az bir kez her gün bu görevi çalıştırmak öneririz.) Daha sonra İleri' yi tıklatın.
    7. Kullanıcı adı girin alanında, bir kullanıcı adı yazın ve ardından Enter parola alanına bir parola yazın.

      Not 1, 3 Veya 4 örnek toplu iş dosyalarından birini kullanıyorsanız, bu kullanıcının en az sql Server düzeyinde BackupOperator rolü atanmalıdır.
    8. İleri' yi tıklatın ve sonra Son' u tıklatın. 
    9. Zamanlanmış görev Yedekleme başarıyla oluşturuldu emin olmak için en az bir kez çalıştırın.

      Notsqlcmd yürütülebilir dosya için genellikle yol değişkenleri sunucunun, sql Server yüklü olduğu, ancak yol değişkeni bu klasör listesi, < yükleme konumu > \90\Tools\Binn altında bulabilirsiniz klasördür (örneğin: C:\Program Files\Microsoft sql Server\90\Tools\Binn).

      Bu makalede belgelenen yordamı kullandığınızda, aşağıdakileri dikkate alın:

      • Çalışmak üzere zamanlandığı anda Windows Görev Zamanlayıcısı hizmetinin çalışıyor olması gerekir. Bu hizmetin başlangıç türünü Otomatikayarlamanız önerilir. Bu hizmet bile yeniden başlatma üzerinde çalışıyor emin olmayı sağlar.
      • Orada çok fazla alan yedekleri yazılmaktadır sürücüde olmalıdır. Yedekleme klasörünü düzenli aralıklarla disk alanı yetersiz çalıştırmayın emin olmak için eski dosyaları temizlemek öneririz. Eski dosyaları temizleme mantığı komut dosyası içermiyor.

      Ek başvurular

    Özellikler

    Makale numarası: 2019698 - Last Review: 29 Haziran 2012 Cuma - Gözden geçirme: 1.0
    Anahtar Kelimeler: 
    kbmt KB2019698 KbMttr
    Machine-translated Article
    ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
    Makalenin İngilizcesi aşağıdaki gibidir: 2019698

    Geri Bildirim Ver

     

    Contact us for more help

    Contact us for more help
    Connect with Answer Desk for expert help.
    Get more support from smallbusiness.support.microsoft.com