Aracılığıyla paylaş


Azure VM’lerinde SQL Server veritabanlarını geri yükleme

Bu makalede, Azure Backup hizmetinin bir Azure Backup Kurtarma Hizmetleri kasasına yedeklediği bir Azure sanal makinesinde (VM) çalışan bir SQL Server veritabanının nasıl geri yükleneceği açıklanmaktadır.

Bu makalede SQL Server veritabanlarının nasıl geri yükleneceği açıklanmaktadır. Daha fazla bilgi için bkz . Azure VM'lerinde SQL Server veritabanlarını yedekleme.

Bir zamana veya kurtarma noktasına geri yükleme

Azure Backup, Azure VM'lerinde çalışan SQL Server veritabanlarını aşağıdaki gibi geri yükleyebilir:

  • İşlem günlüğü yedeklemelerini kullanarak belirli bir tarih veya saate (ikinciye) geri yükleyin. Azure Backup, seçilen zamana göre geri yüklemek için gereken uygun tam değişiklik yedeklemesini ve günlük yedekleme zincirini otomatik olarak belirler.
  • Belirli bir kurtarma noktasına geri yüklemek için belirli bir tam veya değişiklik yedeğini geri yükleyin.

Önkoşulları geri yükleme

Veritabanını geri yüklemeden önce aşağıdakilere dikkat edin:

  • Veritabanını aynı Azure bölgesindeki bir SQL Server örneğine geri yükleyebilirsiniz.
  • Hedef sunucunun kaynakla aynı kasaya kaydedilmesi gerekir. Yedekleri farklı bir kasaya geri yüklemek istiyorsanız Abonelikler Arası Geri Yükleme'yi etkinleştirin.
  • Sunucuda çalıştırılan birden fazla örnek varsa, tüm örnekler çalışır durumda olmalıdır. Aksi takdirde bu sunucu veritabanını geri yükleyebileceğiniz hedef sunucular listesinde gösterilmez. Daha fazla bilgi için sorun giderme adımlarına bakın.
  • TDE ile şifrelenmiş veritabanını başka bir SQL Server'a geri yüklemek için önce sertifikayı hedef sunucuya geri yüklemeniz gerekir.
  • CDC özellikli veritabanları, Dosya olarak geri yükle seçeneği kullanılarak geri yüklenmelidir.
  • Dosya olarak geri yükle seçeneğini kullanarak "ana" veritabanını geri yüklemenizi ve ardından T-SQL komutlarını kullanarak geri yüklemenizi kesinlikle öneririz.
  • Geri yüklemeyi tetiklemeden önce tüm sistem veritabanları (model, msdb) için SQL Server Agent hizmetini durdurun.
  • Bu veritabanlarından herhangi birine bağlantı almaya çalışabilecek tüm uygulamaları kapatın.

Veritabanını geri yükleme

Geri yüklemek için aşağıdaki izinlere ihtiyacınız vardır:

  • Geri yüklemeyi yaptığınız kasada Yedekleme İşleci izinleri.
  • Yedeklenen kaynak VM'ye katkıda bulunan (yazma) erişimi.
  • Hedef VM'ye katkıda bulunan (yazma) erişimi:
    • Aynı sanal makineye geri yüklüyorsanız, bu kaynak sanal makinedir.
    • Alternatif bir konuma geri yüklüyorsanız, bu yeni hedef sanal makinedir.

Aşağıdaki gibi geri yükle:

  1. Azure portalında Yedekleme merkezine gidin ve Geri Yükle'ye tıklayın.

    Screenshot showing the start the restore process.

  2. Veri kaynağı türü olarak Azure VM'de SQL'i seçin, geri yükleneceği veritabanını seçin ve Devam'a tıklayın.

    Screenshot showing to select the datasource type.

  3. Yapılandırmayı Geri Yükle bölümünde verilerin geri yükleneceği yeri (veya nasıl) belirtin:

    • Alternatif Konum: Veritabanını alternatif bir konuma geri yükleyin ve özgün kaynak veritabanını koruyun.

    • Veritabanının üzerine yaz: Verileri özgün kaynakla aynı SQL Server örneğine geri yükleyin. Bu seçenek özgün veritabanının üzerine yazar.

      Önemli

      Seçilen veritabanı bir Always On kullanılabilirlik grubuna aitse, SQL Server veritabanının üzerine yazılmasına izin vermez. Yalnızca Alternatif Konum kullanılabilir.

    • Dosya olarak geri yükleme: Veritabanı olarak geri yüklemek yerine, daha sonra SQL Server Management Studio kullanarak dosyaların bulunduğu herhangi bir makinede veritabanı olarak kurtarılabilir yedekleme dosyalarını geri yükleyin.

Alternatif konuma geri yükleme

  1. Yapılandırmayı Geri Yükle menüsünde, Geri Yükleneceği Yer'in altında Alternatif Konum'a tıklayın.

  2. Veritabanını geri yüklemek istediğiniz SQL Server adını ve örneğini seçin.

  3. Geri Yüklenen VERITABANı Adı kutusuna hedef veritabanının adını girin.

  4. Varsa, seçili SQL örneğinde aynı ada sahip veritabanı zaten varsa Üzerine yaz'ı seçin.

  5. Geri Yükleme Noktası'na tıklayın ve belirli bir noktaya geri yüklenip geri yüklenmeyeceğini veya belirli bir kurtarma noktasına geri yüklenip geri yüklenmeyeceğini seçin.

    Screenshot showing to select Restore Point.

    Screenshot showing restore to point in time.

  6. Gelişmiş Yapılandırma menüsünde:

    • Geri yüklemeden sonra veritabanını çalışma dışı tutmak istiyorsanız NORECOVERY ile geri yükleme'yi etkinleştirin.

    • Hedef sunucuda geri yükleme konumunu değiştirmek istiyorsanız yeni hedef yollar girin.

      Enter target paths

  7. Geri yüklemeyi tetikleme için Tamam'ı seçin. Bildirimler alanında geri yükleme ilerleme durumunu izleyin veya kasadaki Yedekleme İşleri görünümü altında izleyin.

    Not

    Belirli bir noktaya geri yükleme yalnızca tam ve toplu günlüğe kaydedilen kurtarma modundaki veritabanları için günlük yedeklemelerinde kullanılabilir.

Geri yükleme ve üzerine yazma

  1. Yapılandırmayı Geri Yükle menüsünde, Geri Yükleneceği Yer'in altında Db'nin>Üzerine Yaz Tamam'ı seçin.

    Select Overwrite DB

  2. Belirli bir noktaya geri yüklemek için Geri yükleme noktasını seçin bölümünde Günlükler (Belirli Bir Noktaya) seçeneğini belirleyin. İsterseniz, belirli bir kurtarma noktasına geri yüklemek için Tam ve Fark'ı da seçebilirsiniz.

    Not

    Belirli bir noktaya geri yükleme yalnızca tam ve toplu günlüğe kaydedilen kurtarma modundaki veritabanları için günlük yedeklemelerinde kullanılabilir.

Dosya olarak geri yükleme

Yedekleme verilerini veritabanı yerine .bak dosyaları olarak geri yüklemek için Dosya Olarak Geri Yükle'yi seçin. Dosyalar belirtilen bir yola bırakıldıktan sonra, bu dosyaları veritabanı olarak geri yüklemek istediğiniz herhangi bir makineye götürebilirsiniz. Bu dosyaları herhangi bir makineye taşıyabildiğiniz için artık verileri abonelikler ve bölgeler arasında geri yükleyebilirsiniz.

  1. Geri Yükleme yeri ve nasıl yapılır bölümünde Dosya olarak geri yükle'yi seçin.

  2. Yedekleme dosyalarını geri yüklemek istediğiniz SQL Server adını seçin.

  3. Sunucudaki Hedef yolu'na, 2. adımda seçilen sunucudaki klasör yolunu girin. Bu, hizmetin gerekli tüm yedekleme dosyalarını döküm edeceği konumdur. Genellikle, bir ağ paylaşım yolu veya hedef yol olarak belirtildiğinde bağlı bir Azure dosya paylaşımının yolu, aynı ağdaki diğer makineler veya bunlara bağlı aynı Azure dosya paylaşımı ile bu dosyalara daha kolay erişim sağlar.

    Not

    Veritabanı yedekleme dosyalarını hedef kayıtlı VM'ye bağlı bir Azure Dosya Paylaşımı'na geri yüklemek için NT AUTHORITY\SYSTEM'in dosya paylaşımına erişimi olduğundan emin olun. VM'ye bağlı AFS'ye okuma/yazma izinleri vermek için aşağıda verilen adımları gerçekleştirebilirsiniz:

    • NT AUTHORITY\SYSTEM kabuğuna girmek için komutunu çalıştırın PsExec -s cmd
      • Şunu yürütün: cmdkey /add:<storageacct>.file.core.windows.net /user:AZURE\<storageacct> /pass:<storagekey>
      • ile erişimi doğrulama dir \\<storageacct>.file.core.windows.net\<filesharename>
    • Backup Vault'tan \\<storageacct>.file.core.windows.net\<filesharename> yol olarak dosya olarak geri yüklemeyi başlatma
      PsExec'i Sysinternals sayfasından indirebilirsiniz.
  4. Tamam'ı seçin.

    Select Restore As Files

  5. Geri Yükleme Noktası'na tıklayın ve belirli bir noktaya geri yüklenip geri yüklenmeyeceğini veya belirli bir kurtarma noktasına geri yüklenip geri yüklenmeyeceğini seçin.

  6. Dosya olarak geri yükle'yi kullanarak SQL veritabanı belirli bir noktaya geri yükleme yaparken, Tam yedeklemeden seçilen belirli bir noktaya kadar tüm kurtarma noktalarını depolar. Ardından bu dosyaları SQL Server Management Studio kullanarak mevcut oldukları herhangi bir makinede veritabanı olarak kullanarak geri yükleyebilirsiniz.

    Restored Backup Files in Destination Path

Belirli bir noktaya geri yükleme

Geri yükleme türü olarak Günlükler 'i (Belirli Bir Nokta) seçtiyseniz aşağıdakileri yapın:

  1. Geri Yükleme Tarihi/Saati'nin altında takvimi açın. Takvimde, kurtarma noktaları içeren tarihler kalın yazıyla görüntülenir ve geçerli tarih vurgulanır.

  2. Kurtarma noktaları içeren bir tarih seçin. Kurtarma noktası olmayan tarihleri seçemezsiniz.

    Open the calendar

  3. Bir tarih seçtikten sonra zaman çizelgesi grafiği, kullanılabilir kurtarma noktalarını sürekli aralıkta görüntüler.

  4. Zaman çizelgesi grafiğinde kurtarma için bir saat belirtin veya bir saat seçin. Ardından Tamam'ı seçin.

Dosya olarak kısmi geri yükleme

Azure Backup hizmeti, geri yükleme sırasında indirilecek dosya zincirine dosya olarak karar verir. Ancak içeriğin tamamını yeniden indirmek istemeyebileceğiniz senaryolar vardır.

Örneğin, haftalık dolumlar, günlük farklar ve günlükler içeren bir yedekleme ilkeniz olduğunda ve belirli bir değişiklik için dosyaları zaten indirdiğinizde. Bunun doğru kurtarma noktası olmadığını belirlediniz ve sonraki günün değişikliklerini indirmeye karar verdiniz. Artık başlangıç tam olarak hazır olduğundan değişiklik dosyasına ihtiyacınız var. Azure Backup tarafından sağlanan kısmi dosya olarak geri yükleme özelliği sayesinde artık tam değeri indirme zincirinden dışlayabilir ve yalnızca farkları indirebilirsiniz.

Yedekleme dosyası türlerini dışlama

Extension AyarlarOverrides.json, SQL için Azure Backup hizmetinin birden çok ayarı için geçersiz kılmalar içeren bir JSON (JavaScript Nesne Gösterimi) dosyasıdır. "Dosya olarak Kısmi Geri Yükleme" işlemi için yeni bir JSON alanı RecoveryPointTypesToBeExcludedForRestoreAsFiles eklenmelidir. Bu alan, bir sonraki geri yükleme işleminde hangi kurtarma noktası türlerinin dosya olarak dışlanması gerektiğini belirten bir dize değeri içerir.

  1. Dosyaların indirileceği hedef makinede "C:\Program Files\Azure Workload Backup\bin" klasörüne gidin

  2. Henüz yoksa "Uzantı AyarlarOverrides.JSON" adlı yeni bir JSON dosyası oluşturun.

  3. Aşağıdaki JSON anahtar değer çiftini ekleyin

    {
    "RecoveryPointTypesToBeExcludedForRestoreAsFiles": "ExcludeFull"
    }
    
  4. Hiçbir hizmetin yeniden başlatılması gerekmez. Azure Backup hizmeti, bu dosyada belirtildiği gibi geri yükleme zincirindeki yedekleme türlerini dışlamaya çalışır.

Yalnızca RecoveryPointTypesToBeExcludedForRestoreAsFiles geri yükleme sırasında dışlanacak kurtarma noktalarını gösteren belirli değerleri alır. SQL için bu değerler şunlardır:

  • ExcludeFull (Geri yükleme noktası zincirinde varsa değişiklik ve günlükler gibi diğer yedekleme türleri indirilir)
  • ExcludeFullAndDifferential (Geri yükleme noktası zincirinde varsa günlükler gibi diğer yedekleme türleri indirilir)
  • ExcludeFullAndIncremental (Geri yükleme noktası zincirinde varsa günlükler gibi diğer yedekleme türleri indirilir)
  • ExcludeFullAndDifferentialAndIncremental (Geri yükleme noktası zincirinde varsa günlükler gibi diğer yedekleme türleri indirilir)

Belirli bir geri yükleme noktasına geri yükleme

Geri yükleme türü olarak Tam & Değişiklik'i seçtiyseniz aşağıdakileri yapın:

  1. Listeden bir kurtarma noktası seçin ve geri yükleme noktası yordamını tamamlamak için Tamam'ı seçin.

    Choose a full recovery point

    Not

    Varsayılan olarak, son 30 güne ait kurtarma noktaları görüntülenir. Filtrele'yi seçip özel bir aralık seçerek 30 günden eski kurtarma noktalarını görüntüleyebilirsiniz.

Çok fazla dosya içeren veritabanlarını geri yükleme

Veritabanındaki dosyaların toplam dize boyutu belirli bir sınırdan büyükse, Azure Backup veritabanı dosyalarının listesini farklı bir pit bileşeninde depolar, böylece geri yükleme işlemi sırasında hedef geri yükleme yolunu ayarlayamazsınız. Dosyalar bunun yerine SQL varsayılan yoluna geri yüklenir.

Restore Database with large file

SSMS kullanarak veritabanını .bak dosyasından kurtarma

Veritabanı dosyalarını .bak Azure portalından geri yüklerken biçiminde geri yüklemek için Dosya Olarak Geri Yükle işlemini kullanabilirsiniz. Daha fazla bilgi edinin.

Dosyanın Azure sanal makinesine .bak geri yüklenmesi tamamlandığında, SSMS aracılığıyla TSQL komutlarını kullanarak geri yüklemeyi tetikleyebilirsiniz.   Veritabanı dosyalarını kaynak sunucudaki özgün yola geri yüklemek için, TSQL geri yükleme sorgusundan yan tümcesini kaldırınMOVE.   Örnek

  USE [master] 
  RESTORE DATABASE [<DBName>] FROM  DISK = N'<.bak file path>'

Not

Hedef sunucuda aynı veritabanı dosyalarına sahip olmamanız gerekir (değiştirerek geri yükleme).  Ayrıca, dosya başlatma süresi ek yükünü azaltmak için hedef sunucuda anlık dosya başlatmayı etkinleştirebilirsiniz.

Veritabanı dosyalarını hedef geri yükleme sunucusundan yeniden dağıtmak için yan tümcelerini kullanarak MOVE TSQL komutunu çerçeveleyebilirsiniz.

  USE [master] 
  RESTORE DATABASE [<DBName>] FROM  DISK = N'<.bak file path>'  MOVE N'<LogicalName1>' TO N'<TargetFilePath1OnDisk>',  MOVE N'<LogicalName2>' TO N'<TargetFilePath2OnDisk>' GO

Örnek

  USE [master] 
  RESTORE DATABASE [test] FROM  DISK = N'J:\dbBackupFiles\test.bak' WITH  FILE = 1,  MOVE N'test' TO N'F:\data\test.mdf',  MOVE N'test_log' TO N'G:\log\test_log.ldf',  NOUNLOAD,  STATS = 5 
  GO

Veritabanı için ikiden fazla dosya varsa, geri yükleme sorgusuna ek MOVE yan tümceler ekleyebilirsiniz. Dosyaları kullanarak .bak veritabanı kurtarma için SSMS de kullanabilirsiniz. Daha fazla bilgi edinin.

Not

Büyük veritabanı kurtarma için TSQL deyimlerini kullanmanızı öneririz. Belirli veritabanı dosyalarının yerini değiştirmek istiyorsanız, Dosya Olarak Geri Yükle işlemi sırasında oluşturulan JSON biçimindeki veritabanı dosyalarının listesine bakın.

Bölgeler Arası Geri Yükleme

Geri yükleme seçeneklerinden biri olan Bölgeler Arası Geri Yükleme (CRR), Azure VM'lerinde barındırılan SQL veritabanlarını eşleştirilmiş bir Azure bölgesi olan ikincil bir bölgede geri yüklemenize olanak tanır.

Özelliğe eklemek için Başlamadan Önce bölümünü okuyun.

CRR'nin etkinleştirilip etkinleştirilmediğini görmek için Bölgeler Arası Geri Yüklemeyi Yapılandırma başlığındaki yönergeleri izleyin

İkincil bölgede yedekleme öğelerini görüntüleme

CRR etkinse, ikincil bölgedeki yedekleme öğelerini görüntüleyebilirsiniz.

  1. Portaldan Kurtarma Hizmetleri kasası>Yedekleme öğeleri'ne gidin.
  2. İkincil bölgedeki öğeleri görüntülemek için İkincil Bölge'yi seçin.

Not

Listede yalnızca CRR özelliğini destekleyen Yedekleme Yönetimi Türleri gösterilir. Şu anda yalnızca ikincil bölge verilerini ikincil bölgeye geri yükleme desteğine izin verilir.

Backup items in secondary region

Databases in secondary region

İkincil bölgede geri yükleme

İkincil bölge geri yükleme kullanıcı deneyimi, birincil bölge geri yükleme kullanıcı deneyimine benzer olacaktır. Geri yüklemenizi yapılandırmak için Yapılandırmayı Geri Yükle bölmesinde ayrıntıları yapılandırırken, yalnızca ikincil bölge parametrelerini sağlamanız istenir. İkincil bölgede bir kasa bulunmalı ve SQL sunucusu ikincil bölgedeki kasaya kayıtlı olmalıdır.

Where and how to restore

Trigger restore in progress notification

Not

  • Geri yükleme tetiklendikten sonra ve veri aktarımı aşamasında geri yükleme işi iptal edilemiyor.
  • Bölgeler arası geri yükleme işlemi gerçekleştirmek için gereken rol/erişim düzeyi, abonelikteki Backup İşleci rolü ve kaynak ve hedef sanal makinelerde Katkıda Bulunan (yazma) erişimidir. Yedekleme işlerini görüntülemek için, Yedekleme okuyucusu abonelikte gereken en düşük izindir.
  • İkincil bölgede kullanılabilir yedekleme verilerinin RPO değeri 12 saattir. Bu nedenle, CRR'yi açtığınızda, ikincil bölgenin RPO'sunun 12 saat + günlük sıklığı süresi (en az 15 dakika olarak ayarlanabilir) olur.

Bölgeler arası geri yükleme için en düşük rol gereksinimleri hakkında bilgi edinin.

İkincil bölge geri yükleme işlerini izleme

  1. Azure portalında Yedekleme merkezi>Yedekleme İşleri'ne gidin.

  2. İkincil bölgedeki işleri görüntülemek için CrossRegionRestore için filtre işlemi.

    Screenshot showing the filtered Backup jobs.

Abonelikler Arası Geri Yükleme

Azure Backup artık SQL veritabanını geri yükleme noktasından herhangi bir aboneliğe (aşağıdaki Azure RBAC gereksinimlerine göre) geri yüklemenize olanak tanır. Varsayılan olarak Azure Backup, geri yükleme noktalarının kullanılabildiği aboneliğe geri yüklenir.

Abonelikler Arası Geri Yükleme (CSR) ile, geri yükleme izinleri varsa kiracınızın altındaki herhangi bir aboneliğe ve herhangi bir kasaya geri yükleme esnekliğine sahip olursunuz. CsR varsayılan olarak tüm Kurtarma Hizmetleri kasalarında (mevcut ve yeni oluşturulan kasalar) etkinleştirilir.

Not

  • Kurtarma Hizmetleri kasasından Abonelikler Arası Geri Yükleme'yi tetikleyebilirsiniz.
  • CSR yalnızca akış tabanlı yedekleme için desteklenir ve anlık görüntü tabanlı yedekleme için desteklenmez.
  • CSR ile Bölgeler Arası Geri Yükleme (CRR) desteklenmez.

Azure RBAC gereksinimleri

İşlem türü Yedekleme işleci Kurtarma Hizmetleri kasası Alternatif işleç
Veritabanını geri yükleme veya dosya olarak geri yükleme Virtual Machine Contributor Yedeklenen kaynak VM Yerleşik rol yerine aşağıdaki izinlere sahip özel bir rol düşünebilirsiniz:

- Microsoft.Compute/virtualMachines/write
- Microsoft.Compute/virtualMachines/read
Virtual Machine Contributor Veritabanının geri yükleneceği veya dosyaların oluşturulduğu hedef VM. Yerleşik rol yerine, aşağıdaki izinlere sahip özel bir rol düşünebilirsiniz:

- Microsoft.Compute/virtualMachines/write
- Microsoft.Compute/virtualMachines/read
Backup Operator Hedef Kurtarma Hizmetleri kasası

CsR varsayılan olarak Kurtarma Hizmetleri kasasında etkinleştirilir. Kurtarma Hizmetleri kasası geri yükleme ayarlarını güncelleştirmek için Özellikler>Abonelikler Arası Geri Yükleme'ye gidin ve gerekli değişiklikleri yapın.

Screenshot shows how to modify the Cross Subscription Restore settings on a Recovery Services vault for SQL database.

Sonraki adımlar

Azure Backup tarafından yedeklenen SQL Server veritabanlarını yönetin ve izleyin .