Günlük Yeniden Yürütme Hizmeti kullanarak VERITABANLARını SQL Server'dan geçirme - Azure SQL Yönetilen Örneği

Şunlar için geçerlidir:Azure SQL Yönetilen Örneği

Bu makalede, Günlük Yeniden Yürütme Hizmeti (LRS) kullanılarak veritabanlarının Azure SQL Yönetilen Örneği nasıl geçirilerek anlatılıyor. LRS, SQL Server günlük gönderim teknolojisini temel alarak Azure SQL Yönetilen Örneği için kullanılabilen ücretsiz bir bulut hizmetidir.

Aşağıdaki kaynaklar desteklenir:

  • Sanal Makinelerde SQL Server
  • Amazon EC2 (Elastik İşlem Bulutu)
  • SQL Server için Amazon RDS (İlişkisel Veritabanı Hizmeti)
  • Google Compute Engine
  • SQL Server için Cloud SQL - GCP (Google Cloud Platform)

Önkoşullar

Başlamadan önce hem SQL Server örneğin hem de Azure için aşağıdaki gereksinimleri göz önünde bulundurun.

SQL Server

SQL Server için aşağıdaki gereksinimleri karşıladığınızdan emin olun:

  • SQL Server 2008 ile 2022 sürümleri.
  • SQL Server veritabanınız tam kurtarma modelini kullanıyor (zorunlu).
  • Veritabanlarının tam yedeklemesi (bir veya birden çok dosya).
  • Değişiklik yedeği (bir veya birden çok dosya).
  • Günlük yedeklemesi (işlem günlüğü dosyası için bölünmez).
  • SQL Server 2008 ile 2016 sürümleri için yerel olarak bir yedekleme alın ve Azure Blob Depolama hesabınıza el ile yükleyin.
  • SQL Server 2016 ve üzeri için, yedeklemenizi doğrudan Azure Blob Depolama hesabınıza taşıyabilirsiniz.

CHECKSUM Yedeklemeler için etkinleştirilmesi gerekli olmasa da, daha hızlı geri yükleme işlemleri için bunu kesinlikle öneririz.

Azure

Azure için aşağıdaki gereksinimleri karşıladığınızdan emin olun:

  • PowerShell Az.SQL modülü sürüm 4.0.0 veya üzeri (Azure Cloud Shell aracılığıyla yüklenir veya erişilir).
  • Azure CLI sürüm 2.42.0 veya üzeri (yüklü).
  • Sağlanan Azure Blob Depolama kapsayıcısı.
  • Blob Depolama kapsayıcısı için oluşturulan Okuma ve Listeleme izinlerine sahip paylaşılan erişim imzası (SAS) güvenlik belirteci veya kapsayıcıya erişebilen yönetilen kimlik.
  • Tek bir veritabanı için yedekleme dosyalarını düz dosya yapısı (zorunlu) kullanarak depolama hesabındaki ayrı bir klasöre yerleştirin. Klasörleri veritabanı klasörlerinin içine yerleştirme desteklenmez.

Azure RBAC izinleri

LRS'nin sağlanan istemciler aracılığıyla çalıştırılması için aşağıdaki Azure rol tabanlı erişim denetimi (RBAC) rollerinden biri gerekir:

En iyi yöntemler

LRS kullanırken aşağıdaki en iyi yöntemleri göz önünde bulundurun:

  • Veritabanlarınızın SQL Yönetilen Örneği geçirilmeye hazır olduğunu doğrulamak için Data Migration Yardımcısı çalıştırın.
  • Tek bir dosya kullanmak yerine tam ve değişiklik yedeklemelerini birden çok dosyaya bölün.
  • Ağ aktarım hızlarına yardımcı olmak için yedekleme sıkıştırmasını etkinleştirin.
  • Her zaman en son yayımlanan cmdlet'leri kullanacak şekilde güncelleştirileceği için, PowerShell veya CLI betiklerini çalıştırmak için Cloud Shell kullanın.
  • Sistem güncelleştirmelerinin belirli bir gün ve saatte zamanlanması için bir bakım penceresi yapılandırın. Sistem yükseltmeleri devam eden geçişleri kesintiye uğratabileceğinden, bu yapılandırma veritabanı geçişleri için daha öngörülebilir bir süre elde etmenize yardımcı olur.
  • Tek bir LRS geçiş işini en fazla 30 gün içinde tamamlamayı planlayın. Bu zaman çerçevesinin sona ermesi üzerine LRS işi otomatik olarak iptal edilir.
  • Daha hızlı bir veritabanı geri yüklemesi için yedeklerinizi alırken etkinleştirin CHECKSUM . SQL Yönetilen Örneği, olmadan CHECKSUMyedeklemelerde bir bütünlük denetimi gerçekleştirir ve bu da geri yükleme süresini artırır.

SQL Yönetilen Örneği için sistem güncelleştirmeleri, devam eden veritabanı geçişlerinden önceliklidir. Bir örnekteki sistem güncelleştirmesi sırasında, bekleyen tüm LRS geçişleri yalnızca güncelleştirme uygulandıktan sonra askıya alınır ve sürdürülür. Bu sistem davranışı, özellikle büyük veritabanları için geçiş süresini uzatabilir.

Veritabanı geçişleri için öngörülebilir bir süre elde etmek için, sistem güncelleştirmelerini belirli bir gün ve saat için zamanlayacak bir bakım penceresi yapılandırmayı ve geçiş işlerini belirlenen bakım penceresi zaman çerçevesinin dışında çalıştırıp tamamlamayı göz önünde bulundurun.

Önemli

  • Geçiş işlemi bitene kadar LRS aracılığıyla geri yüklenen veritabanlarını kullanamazsınız.
  • LRS, geçiş sırasında veritabanlarına salt okunur erişimi desteklemez.
  • Geçiş tamamlandıktan sonra geçiş işlemi sonlanır ve ek değişiklik yedeklemeleriyle sürdürülemez.

Birden çok veritabanını geçirme

Aynı Azure Blob Depolama kapsayıcısını kullanarak birden çok veritabanını geçiriyorsanız, farklı veritabanları için yedekleme dosyalarını kapsayıcının içindeki ayrı klasörlere yerleştirmeniz gerekir. Tek bir veritabanı için tüm yedekleme dosyaları, veritabanı klasörünün içindeki düz dosya yapısına yerleştirilmelidir ve klasörler iç içe yerleştirilemiyor. Klasörleri veritabanı klasörlerinin içine yerleştirme desteklenmez.

Aşağıda, Azure Blob Depolama kapsayıcısının içindeki bir klasör yapısı örneği ve LRS kullanarak birden çok veritabanını geçirmek için gereken bir yapı verilmiştir.

-- Place all backup files for database 1 in a separate "database1" folder in a flat-file structure.
-- Don't use nested folders inside the database1 folder.
https://<mystorageaccountname>.blob.core.windows.net/<containername>/<database1>/<all-database1-backup-files>

-- Place all backup files for database 2 in a separate "database2" folder in a flat-file structure.
-- Don't use nested folders inside the database2 folder.
https://<mystorageaccountname>.blob.core.windows.net/<containername>/<database2>/<all-database2-backup-files>

-- Place all backup files for database 3 in a separate "database3" folder in a flat-file structure. 
-- Don't use nested folders inside the database3 folder.
https://<mystorageaccountname>.blob.core.windows.net/<containername>/<database3>/<all-database3-backup-files>

Depolama hesabı oluşturma

SQL Server örneğin ve SQL Yönetilen Örneği dağıtımınız arasında yedekleme dosyaları için aracı depolama alanı olarak bir Azure Blob Depolama hesabı kullanırsınız. Depolama hesabı içinde yeni bir depolama hesabı ve blob kapsayıcısı oluşturmak için:

  1. Depolama hesabı oluşturma.
  2. Depolama hesabının içinde bir blob kapsayıcısı oluşturun.

Azure depolamayı güvenlik duvarının arkasında yapılandırma

Bir güvenlik duvarının arkasında korunan Azure Blob depolamanın kullanılması desteklenir, ancak ek yapılandırma gerektirir. Azure Güvenlik Duvarı açıkken Azure Depolama okuma/yazma erişimini etkinleştirmek için, MI alt ağ temsilcisini ve Depolama hizmet uç noktasını kullanarak SQL yönetilen örneğinin alt akını depolama hesabının güvenlik duvarı kurallarına eklemeniz gerekir. Depolama hesabı ve yönetilen örnek aynı bölgede veya iki eşleştirilmiş bölgede olmalıdır.

Azure depolama alanınız bir güvenlik duvarının arkasındaysa, SQL yönetilen örneği hata günlüğünde aşağıdaki iletiyi görebilirsiniz:

Audit: Storage access denied user fault. Creating an email notification:

Bu, SQL yönetilen örneği için denetimin depolama hesabına denetim günlükleri yazamadığını bildiren bir e-posta oluşturur. Bu hatayı görürseniz veya bu e-postayı alırsanız, güvenlik duvarınızı yapılandırmak için bu bölümdeki adımları izleyin.

Güvenlik duvarını yapılandırmak için şu adımları izleyin:

  1. Azure portalında yönetilen örneğinize gidin ve alt ağı seçerek Alt Ağlar sayfasını açın.

    Screenshot of the SQL managed instance Overview page of the Azure portal, with the subnet selected.

  2. Alt ağlar sayfasında alt ağın adını seçerek alt ağ yapılandırma sayfasını açın.

    Screenshot of the SQL managed instance Subnet page of the Azure portal, with the subnet selected.

  3. Alt ağ temsilcisi altında, Hizmet alt ağından hizmete temsilci seç açılan menüsünden Microsoft.Sql/managedInstances'ı seçin. İzinlerin yayılması için yaklaşık bir saat bekleyin ve ardından Hizmet uç noktaları'nın altında Hizmetler açılan listesinden Microsoft.Depolama'ı seçin.

    Screenshot of the SQL managed instance Subnet configuration page of the Azure portal.

  4. Ardından Azure portalında depolama hesabınıza gidin, Güvenlik + ağ altında Ağ'ı seçin ve ardından Güvenlik duvarları ve sanal ağlar sekmesini seçin.

  5. Depolama hesabınızın Güvenlik duvarları ve sanal ağlar sekmesinde + Var olan sanal ağı ekle'yi seçerek ekle sayfasını açın.

    Screenshot of the Storage Account Networking page of the Azure portal, with Add existing virtual network selected.

  6. Açılan menülerden uygun aboneliği, sanal ağı ve yönetilen örnek alt ağını seçin ve ardından SQL yönetilen örneğinin sanal ağını depolama hesabına eklemek için Ekle'yi seçin.

Blob Depolama hesabınızda kimlik doğrulaması

Azure Blob Depolama hesabınıza erişmek için SAS belirteci veya yönetilen kimlik kullanın.

Uyarı

Aynı depolama hesabında hem SAS belirteci hem de yönetilen kimliği paralel olarak kullanamazsınız. SAS belirteci veya yönetilen kimlik kullanabilirsiniz, ancak ikisini birden kullanamazsınız.

LRS için Blob Depolama SAS kimlik doğrulama belirteci oluşturma

SAS belirteci kullanarak Azure Blob Depolama hesabınıza erişin.

SQL Server örneğiniz ile SQL Yönetilen Örneği dağıtımınız arasında yedekleme dosyaları için aracı depolama alanı olarak bir Azure Blob Depolama hesabı kullanabilirsiniz. LRS için yalnızca Okuma ve Listeleme izinlerine sahip bir SAS kimlik doğrulama belirteci oluşturun. Belirteç, LRS'nin Blob Depolama hesabınıza erişmesini sağlar ve bunları yönetilen örneğinize geri yüklemek için yedekleme dosyalarını kullanır.

Belirteci oluşturmak için şu adımları izleyin:

  1. Azure portalında Depolama Gezgini'ni açın.

  2. Blob Kapsayıcıları'nın kapsamını genişletin.

  3. Blob kapsayıcıya sağ tıklayın ve Paylaşılan Erişim İmzası Al'ı seçin.

    Screenshot that shows selections for generating a SAS authentication token.

  4. Belirtecin süre sonu için zaman çerçevesini seçin. Geçişiniz sırasında belirtecin geçerli olduğundan emin olun.

  5. Belirtecin saat dilimini seçin: UTC veya yerel saat.

    Önemli

    Belirtecin saat dilimi ve yönetilen örneğiniz uyumsuz olabilir. Saat dilimlerini dikkate alarak SAS belirtecinin uygun saat geçerliliğine sahip olduğundan emin olun. Saat dilimi farklarını hesaba eklemek için, geçiş pencereniz başlamadan önce FROM değerini ve geçişinizin tamamlanmasını bekledikten sonra TO değerini iyi ayarlayın.

  6. Yalnızca Okuma ve Listeleme izinlerini seçin.

    Önemli

    Başka bir izin seçmeyin. Bunu yaparsanız, LRS başlamaz. Bu güvenlik gereksinimi tasarım gereğidir.

  7. Oluştur'u belirleyin.

    Screenshot that shows selections for SAS token expiration, time zone, and permissions, along with the Create button.

SAS kimlik doğrulaması, belirttiğiniz zaman geçerliliği ile oluşturulur. Aşağıdaki ekran görüntüsünde gösterildiği gibi belirtecin URI sürümüne ihtiyacınız vardır:

Screenshot that shows an example of the URI version of a SAS token.

Not

Depolanan erişim ilkesi tanımlanarak ayarlanan izinlerle oluşturulan SAS belirteçlerinin kullanılması şu anda desteklenmemektedir. SAS belirtecinin Okuma ve Listeleme izinlerini el ile belirtmek için bu yordamdaki yönergeleri izleyin.

SAS belirtecinden parametreleri kopyalama

SAS belirteci veya yönetilen kimlik kullanarak Azure Blob Depolama hesabınıza erişin.

LRS'yi başlatmak için SAS belirtecini kullanmadan önce yapısını anlamanız gerekir. Oluşturulan SAS belirtecinin URI'si, bu örnekte gösterildiği gibi soru işareti ()? ile ayrılmış iki bölümden oluşur:

Example URI for a generated SAS token for Log Replay Service.

Soru işareti ()? ile https:// başlayan ilk bölüm, LRS'ye giriş olarak beslenen parametre için StorageContainerURI kullanılır. Veritabanı yedekleme dosyalarının depolandığı klasör hakkında LRS bilgileri verir.

Soru işaretinden (?) sonra dizenin sonuna kadar olan ikinci bölüm parametresidir StorageContainerSasToken . Bu bölüm, belirtilen süre boyunca geçerli olan gerçek imzalı kimlik doğrulama belirtecidir. Bu bölümün örnekte gösterildiği gibi ile sp= başlaması gerekmez. Senaryonuz farklı olabilir.

Parametreleri aşağıdaki gibi kopyalayın:

  1. Belirtecin ilk bölümünü, https:// soru işaretini (? dahil etmek yerine) kadar kopyalayın. LRS'yi başlatırken PowerShell'de veya Azure CLI'da parametre olarak StorageContainerUri kullanın.

    Screenshot that shows where to copy the first part of the token.

  2. Soru işaretinden (?) sonradan dizenin sonuna kadar belirtecin ikinci bölümünü kopyalayın. LRS'yi başlatırken PowerShell'de veya Azure CLI'da parametre olarak StorageContainerSasToken kullanın.

    Screenshot that shows where to copy the second part of the token.

Not

Belirtecin herhangi bir bölümünü kopyalarken soru işaretini (?) eklemeyin.

Yönetilen örnek depolama erişiminizi doğrulama

Yönetilen örneğinizin Blob Depolama hesabınıza erişebildiğini doğrulayın.

İlk olarak, gibi full_0_0.bakherhangi bir veritabanı yedeğini Azure Blob Depolama kapsayıcınıza yükleyin.

Ardından yönetilen örneğinize bağlanın ve yönetilen örneğinizin kapsayıcıdaki yedeklemeye erişip erişemeyeceğini belirlemek için örnek bir test sorgusu çalıştırın.

Depolama hesabınızda kimlik doğrulaması yapmak için SAS belirteci kullanıyorsanız değerini SAS belirtecinizle değiştirin <sastoken> ve örneğinizde aşağıdaki sorguyu çalıştırın:

CREATE CREDENTIAL [https://mitutorials.blob.core.windows.net/databases] 
WITH IDENTITY = 'SHARED ACCESS SIGNATURE' 
, SECRET = '<sastoken>' 

RESTORE HEADERONLY 
FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<containername>/full_0_0.bak' 

Blob Depolama hesabınıza yedeklemeleri yükleme

Blob kapsayıcınız hazır olduğunda ve yönetilen örneğinizin kapsayıcıya erişebildiğini onayladıktan sonra yedeklemelerinizi Blob Depolama hesabınıza yüklemeye başlayabilirsiniz. Şunlardan birini yapabilirsiniz:

  • Yedeklerinizi Blob Depolama hesabınıza kopyalayın.
  • Ortamınız izin veriyorsa (SQL Server 2012 SP1 CU2 ve SQL Server 2014 sürümlerinden başlayarak) URL'ye YEDEKLE komutunu kullanarak SQL Server'dan doğrudan Blob Depolama hesabınıza yedek alın.

Mevcut yedeklemeleri Blob Depolama hesabınıza kopyalama

SQL Server'ın önceki bir sürümündeyseniz veya ortamınız doğrudan bir URL'ye yedeklemeyi desteklemiyorsa, yedeklerinizi normalde yaptığınız gibi SQL Server örneğinize alın ve ardından Blob Depolama hesabınıza kopyalayın.

SQL Server örneğinde yedek alma

Günlük yedeklemelerine izin vermek için tam kurtarma modeline geçirmek istediğiniz veritabanlarını ayarlayın.

-- To permit log backups, before the full database backup, modify the database to use the full recovery
USE master
ALTER DATABASE SampleDB
SET RECOVERY FULL
GO

Veritabanınızın tam, değişiklik ve günlük yedeklemelerini yerel depolama alanına el ile yapmak için aşağıdaki örnek T-SQL betiklerini kullanın. CHECKSUM gerekli değildir, ancak bunu öneririz.

Aşağıdaki örnek, yerel diske tam veritabanı yedeklemesi alır:

-- Take full database backup to local disk
BACKUP DATABASE [SampleDB]
TO DISK='C:\BACKUP\SampleDB_full.bak'
WITH INIT, COMPRESSION, CHECKSUM
GO

Aşağıdaki örnek, yerel diske değişiklik yedeği alır:

-- Take differential database backup to local disk
BACKUP DATABASE [SampleDB]
TO DISK='C:\BACKUP\SampleDB_diff.bak'
WITH DIFFERENTIAL, COMPRESSION, CHECKSUM
GO

Aşağıdaki örnek, yerel diske bir işlem günlüğü yedeklemesi alır:

-- Take transactional log backup to local disk
BACKUP LOG [SampleDB]
TO DISK='C:\BACKUP\SampleDB_log.trn'
WITH COMPRESSION, CHECKSUM
GO

Yedeklemeleri Blob Depolama hesabınıza kopyalama

Yedeklemeleriniz hazır olduktan ve LRS kullanarak veritabanlarını yönetilen örneğe geçirmeye başlamak istiyorsanız, mevcut yedeklemeleri Blob Depolama hesabınıza kopyalamak için aşağıdaki yaklaşımları kullanabilirsiniz:

Not

Aynı Azure Blob Depolama kapsayıcısını kullanarak birden çok veritabanını geçirmek için, tek bir veritabanının tüm yedekleme dosyalarını kapsayıcı içinde ayrı bir klasöre yerleştirin. Her veritabanı klasörü için düz dosya yapısı kullanın. Klasörleri veritabanı klasörlerinin içine yerleştirme desteklenmez.

Yedeklemeleri doğrudan Blob Depolama hesabınıza alma

SQL Server'ın desteklenen bir sürümündeyseniz (SQL Server 2012 SP1 CU2 ve SQL Server 2014'ten başlayarak) ve şirket ve ağ ilkeleriniz buna izin veriyorsa, yerel SQL Server BACKUP TO URL seçeneğini kullanarak SQL Server'dan doğrudan Blob Depolama hesabınıza yedek alabilirsiniz. 'yi kullanabiliyorsanız BACKUP TO URLyerel depolamaya yedekleme almanız ve bunları Blob Depolama hesabınıza yüklemeniz gerekmez.

Yerel yedeklemeleri doğrudan Blob Depolama hesabınıza aldığınızda, depolama hesabında kimlik doğrulaması yapmanız gerekir.

SAS belirtecini SQL Server örneğine aktaran bir kimlik bilgisi oluşturmak için aşağıdaki komutu kullanın:

CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<containername>] 
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',  
SECRET = '<SAS_TOKEN>';  

SAS belirteçleriyle çalışan ayrıntılı yönergeler için SQL Server ile Azure Blob Depolama kullanma öğreticisini gözden geçirin.

BLOB Depolama ile SQL Server örneğinizin kimliğini doğrulamak için kimlik bilgilerini oluşturduktan sonra yedeklemeleri doğrudan depolama hesabına almak için URL'ye YEDEKLE komutunu kullanabilirsiniz. CHECKSUM önerilir, ancak gerekli değildir.

Aşağıdaki örnek, BIR URL'ye tam veritabanı yedeklemesi alır:

-- Take a full database backup to a URL
BACKUP DATABASE [SampleDB]
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<containername>/<databasefolder>/SampleDB_full.bak'
WITH INIT, COMPRESSION, CHECKSUM
GO

Aşağıdaki örnek, BIR URL'ye değişiklik veritabanı yedeklemesi alır:

-- Take a differential database backup to a URL
BACKUP DATABASE [SampleDB]
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<containername>/<databasefolder>/SampleDB_diff.bak'  
WITH DIFFERENTIAL, COMPRESSION, CHECKSUM
GO

Aşağıdaki örnek, URL'ye bir işlem günlüğü yedeklemesi alır:

-- Take a transactional log backup to a URL
BACKUP LOG [SampleDB]
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<containername>/<databasefolder>/SampleDB_log.trn'  
WITH COMPRESSION, CHECKSUM

Azure'da oturum açın ve bir abonelik seçin

Azure'da oturum açmak için aşağıdaki PowerShell cmdlet'ini kullanın:

Login-AzAccount

Aşağıdaki PowerShell cmdlet'ini kullanarak yönetilen örneğinizin bulunduğu aboneliği seçin:

Select-AzSubscription -SubscriptionId <subscription ID>

Geçişi başlatma

LRS'yi başlatarak geçişi başlatın. Hizmeti otomatik tamamlama veya sürekli modda başlatabilirsiniz.

Otomatik tamamlama modunu kullandığınızda, belirtilen yedekleme dosyalarının sonuncusu geri yüklendiğinde geçiş otomatik olarak tamamlar. Bu seçenek, yedekleme zincirinin tamamının önceden kullanılabilir olmasını ve Blob Depolama hesabınıza yüklenmesini gerektirir. Geçiş devam ederken yeni yedekleme dosyalarının eklenmesine izin vermez. Bu seçenek, komutun start son yedekleme dosyasının dosya adını belirtmesini gerektirir. Veri yakalamanın gerekli olmadığı pasif iş yükleri için bu modu öneririz.

Sürekli modu kullandığınızda, hizmet Azure Blob Depolama klasörünü sürekli tarar ve geçiş devam ederken eklenen tüm yeni yedekleme dosyalarını geri yükler. Geçiş ancak el ile tam geçiş istendikten sonra tamamlanmıştır. Yedekleme zincirinin tamamına önceden sahip değilseniz ve geçiş devam ettikten sonra yeni yedekleme dosyaları eklemeyi planladığınızda sürekli mod geçişini kullanmanız gerekir. Veri yakalamanın gerekli olduğu etkin iş yükleri için bu modu öneririz.

Tek bir LRS geçiş işini en fazla 30 gün içinde tamamlamayı planlayın. Bu süre dolduğunda LRS işi otomatik olarak iptal edilir.

Not

Birden çok veritabanını geçirirken, LRS her veritabanı için ayrı olarak başlatılmalıdır ve Azure Blob Depolama kapsayıcısının ve tek tek veritabanı klasörünün tam URI yoluna işaret etmelidir.

LRS'i otomatik tamamlama modunda başlatma

Yedekleme zincirinin tamamının Azure Blob Depolama hesabınıza yüklendiğinden emin olun. Bu seçenek, geçiş devam ederken yeni yedekleme dosyalarının eklenmesine izin vermez.

LRS'yi otomatik tamamlama modunda başlatmak için PowerShell veya Azure CLI komutlarını kullanın. parametresini kullanarak -LastBackupName son yedekleme dosyası adını belirtin. Belirtilen son yedekleme dosyasının geri yüklenmesi tamamlandıktan sonra hizmet otomatik olarak tam geçiş başlatır.

SAS belirtecini veya yönetilen kimliği kullanarak veritabanınızı depolama hesabından geri yükleyin.

Önemli

  • Geçişi otomatik tamamlama modunda başlatmadan önce yedekleme zincirinin tamamının Azure Blob Depolama hesabınıza yüklendiğinden emin olun. Bu mod, geçiş devam ederken yeni yedekleme dosyalarının eklenmesine izin vermez.
  • Son yedekleme dosyasını doğru belirttiğinizden ve dosyadan sonra daha fazla dosya yüklemediğinizden emin olun. Sistem, belirtilen son yedekleme dosyasının ötesinde daha fazla yedekleme dosyası algılarsa geçiş başarısız olur.

Aşağıdaki PowerShell örneği, SAS belirteci kullanarak LRS'yi otomatik tamamlama modunda başlatır:

Start-AzSqlInstanceDatabaseLogReplay -ResourceGroupName "ResourceGroup01" `
    -InstanceName "ManagedInstance01" `
    -Name "ManagedDatabaseName" `
    -Collation "SQL_Latin1_General_CP1_CI_AS" `
    -StorageContainerUri "https://<mystorageaccountname>.blob.core.windows.net/<containername>/<databasefolder>" `
    -StorageContainerSasToken "sv=2019-02-02&ss=b&srt=sco&sp=rl&se=2023-12-02T00:09:14Z&st=2019-11-25T16:09:14Z&spr=https&sig=92kAe4QYmXaht%2Fgjocqwerqwer41s%3D" `
    -AutoCompleteRestore `
    -LastBackupName "last_backup.bak"

Aşağıdaki Azure CLI örneği, SAS belirteci kullanarak LRS'yi otomatik tamamlama modunda başlatır:

az sql midb log-replay start -g mygroup --mi myinstance -n mymanageddb -a --last-bn "backup.bak"
    --storage-uri "https://<mystorageaccountname>.blob.core.windows.net/<containername>/<databasefolder>"
    --storage-sas "sv=2019-02-02&ss=b&srt=sco&sp=rl&se=2023-12-02T00:09:14Z&st=2019-11-25T16:09:14Z&spr=https&sig=92kAe4QYmXaht%2Fgjocqwerqwer41s%3D"

LRS'i sürekli modda başlatma

İlk yedekleme zincirinizi Azure Blob Depolama hesabınıza yüklediğinizden emin olun.

Önemli

LRS'yi sürekli modda başlattıktan sonra, el ile tam geçişe kadar depolama hesabınıza yeni günlük ve değişiklik yedekleri ekleyebilirsiniz. El ile tam geçiş başlatıldıktan sonra ek değişiklik dosyaları eklenemez veya geri yüklenemez.

Aşağıdaki PowerShell örneği, SAS belirteci kullanarak LRS'yi sürekli modda başlatır:

Start-AzSqlInstanceDatabaseLogReplay -ResourceGroupName "ResourceGroup01" `
    -InstanceName "ManagedInstance01" `
    -Name "ManagedDatabaseName" `
    -Collation "SQL_Latin1_General_CP1_CI_AS" -StorageContainerUri "https://<mystorageaccountname>.blob.core.windows.net/<containername>/<databasefolder>" `
    -StorageContainerSasToken "sv=2019-02-02&ss=b&srt=sco&sp=rl&se=2023-12-02T00:09:14Z&st=2019-11-25T16:09:14Z&spr=https&sig=92kAe4QYmXaht%2Fgjocqwerqwer41s%3D"

Aşağıdaki Azure CLI örneği, LRS'yi sürekli modda başlatır:

az sql midb log-replay start -g mygroup --mi myinstance -n mymanageddb
    --storage-uri "https://<mystorageaccountname>.blob.core.windows.net/<containername>/<databasefolder>"
    --storage-sas "sv=2019-02-02&ss=b&srt=sco&sp=rl&se=2023-12-02T00:09:14Z&st=2019-11-25T16:09:14Z&spr=https&sig=92kAe4QYmXaht%2Fgjocqwerqwer41s%3D"

Geçiş işini betikleyin

LRS'yi sürekli modda başlatan PowerShell ve Azure CLI istemcileri zaman uyumlu olur. Bu modda PowerShell ve Azure CLI, api yanıtının işi başlatmadan önce başarılı veya başarısız olduğunu bildirmesini bekler.

Bu bekleme sırasında komut, denetimi komut istemine döndürmez. Geçiş deneyimini betik olarak kullanıyorsanız ve betiğin geri kalanına devam etmek için denetimi hemen geri vermek için LRS başlat komutuna ihtiyacınız varsa PowerShell'i anahtarla -AsJob arka plan işi olarak çalıştırabilirsiniz. Örneğin:

$lrsjob = Start-AzSqlInstanceDatabaseLogReplay <required parameters> -AsJob

Bir arka plan işi başlattığınızda, işin tamamlanması uzun sürse bile iş nesnesi hemen geri döner. İş çalışırken oturumda kesintisiz olarak çalışmaya devam edebilirsiniz. PowerShell'i arka plan işi olarak çalıştırma hakkında ayrıntılı bilgi için PowerShell Başlangıç İşi belgelerine bakın.

Benzer şekilde, Linux'ta arka plan işlemi olarak bir Azure CLI komutu başlatmak için LRS start komutunun sonundaki ve işareti (&) kullanın:

az sql midb log-replay start <required parameters> &

Geçiş ilerleme durumunu izleme

Az.SQL 4.0.0 ve üzeri , ayrıntılı bir ilerleme raporu sağlar. Örnek çıktı için Yönetilen Veritabanı Geri Yükleme Ayrıntıları - Alma bölümünü gözden geçirin.

PowerShell aracılığıyla geçiş ilerleme durumunu izlemek için aşağıdaki komutu kullanın:

Get-AzSqlInstanceDatabaseLogReplay -ResourceGroupName "ResourceGroup01" `
    -InstanceName "ManagedInstance01" `
    -Name "ManagedDatabaseName"

Azure CLI aracılığıyla geçiş ilerleme durumunu izlemek için aşağıdaki komutu kullanın:

az sql midb log-replay show -g mygroup --mi myinstance -n mymanageddb

Geçişi durdurma (isteğe bağlı)

Geçişi durdurmanız gerekiyorsa PowerShell'i veya Azure CLI'yı kullanın. Geçişin durdurulması yönetilen örneğinizdeki geri yükleme veritabanını siler, bu nedenle geçişin devamı mümkün olmaz.

PowerShell aracılığıyla geçiş işlemini durdurmak için aşağıdaki komutu kullanın:

Stop-AzSqlInstanceDatabaseLogReplay -ResourceGroupName "ResourceGroup01" `
    -InstanceName "ManagedInstance01" `
    -Name "ManagedDatabaseName"

Azure CLI aracılığıyla geçiş işlemini durdurmak için aşağıdaki komutu kullanın:

az sql midb log-replay stop -g mygroup --mi myinstance -n mymanageddb

Geçişi tamamlama (sürekli mod)

LRS'yi sürekli modda başlatırsanız, yeni yedekleme dosyalarının oluşturulmasını önlemek için uygulamanızın ve SQL Server iş yükünüzün durduruldığından emin olun. SQL Server örneğinizdeki son yedeklemenin Azure Blob Depolama hesabınıza yüklendiğinden emin olun. Yönetilen örneğinizdeki geri yükleme ilerleme durumunu izleyin ve son günlük kuyruğu yedeklemesinin geri yüklendiğinden emin olun.

Yönetilen örneğinizde son günlük kuyruğu yedeklemesi geri yüklendiğinde, geçişi tamamlamak için el ile tam geçişi başlatın. Tam geçiş tamamlandıktan sonra veritabanı yönetilen örnekte okuma ve yazma erişimi için kullanılabilir hale gelir.

Geçiş işlemini PowerShell aracılığıyla LRS sürekli modunda tamamlamak için aşağıdaki komutu kullanın:

Complete-AzSqlInstanceDatabaseLogReplay -ResourceGroupName "ResourceGroup01" `
-InstanceName "ManagedInstance01" `
-Name "ManagedDatabaseName" `
-LastBackupName "last_backup.bak"

Azure CLI aracılığıyla LRS sürekli modunda geçiş işlemini tamamlamak için aşağıdaki komutu kullanın:

az sql midb log-replay complete -g mygroup --mi myinstance -n mymanageddb --last-backup-name "backup.bak"

LRS sorunlarını giderme

LRS'yi başlattıktan sonra, işlemin durumunu görmek için aşağıdaki izleme cmdlet'lerinden birini kullanın:

  • PowerShell için: get-azsqlinstancedatabaselogreplay
  • Azure CLI için: az_sql_midb_log_replay_show

LRS bir süre sonra başlatılamazsa ve hata alırsanız en yaygın sorunları denetleyin:

  • Yönetilen örneğinizdeki mevcut bir veritabanı, SQL Server örneğinizden geçirmeye çalıştığınız veritabanıyla aynı ada sahip mi? Veritabanlarından birini yeniden adlandırarak bu çakışmayı çözün.
  • SAS belirteci için izinler salt okunur ve listeleniyor mu?
  • Soru işaretinden ()? sonra LRS için SAS belirtecini, şuna benzeyen sv=2020-02-10...içerikle kopyaladınız mı? 
  • SAS belirteci geçerlilik süresi, geçişi başlatma ve tamamlama zaman penceresi için uygun mu? SQL Yönetilen Örneği dağıtımınız ve SAS belirteciniz için kullanılan farklı saat dilimleri nedeniyle uyuşmazlıklar olabilir. SAS belirtecini yeniden oluşturmayı ve geçerli tarihten önceki ve sonraki zaman penceresinin belirteç geçerliliğini genişletmeyi deneyin.
  • Aynı depolama kapsayıcısını hedefleyen birden çok Günlük Yeniden Yürütme geri yüklemesini paralel olarak başlatırken, her geri yükleme işlemi için aynı geçerli SAS belirtecinin sağlandığından emin olun.
  • Veritabanı adı, kaynak grubu adı ve yönetilen örnek adı doğru yazıldı mı?
  • LRS'yi otomatik tamamlama modunda başlattıysanız, belirtilen son yedekleme dosyası için geçerli bir dosya adı var mıydı?
  • Yedekleme URI'sinin yolu veya backupsanahtar sözcüklerini backup içeriyor mu? veya kullanan backupbackups kapsayıcıyı veya klasörleri ayrılmış anahtar sözcükler olarak yeniden adlandırın.

Sonraki adımlar