BACPAC dosyasına aktarma - Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği

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

Veritabanını arşivleme veya başka bir platforma taşıma amacıyla dışarı aktarmanız gerektiğinde, veritabanı şemasını ve verilerini bir BACPAC dosyasına aktarabilirsiniz. BACPAC dosyası, veritabanındaki meta verileri ve verileri içeren BACPAC uzantısına sahip bir ZIP dosyasıdır. BACPAC dosyası Azure Blob depolama alanında veya şirket içi bir konumdaki yerel depolamada depolanabilir ve daha sonra Azure SQL Veritabanı, Azure SQL Yönetilen Örneği veya SQL Server örneğine geri aktarılabilir.

Dikkat edilmesi gereken noktalar

  • Dışarı aktarma işleminin işlem açısından tutarlı olması için, dışarı aktarma sırasında hiçbir yazma etkinliği gerçekleşmediğinden veya veritabanınızın işlem açısından tutarlı bir kopyasından dışarı aktardığınızdan emin olmanız gerekir.

  • Blob depolamaya aktarıyorsanız BACPAC dosyasının boyutu üst sınırı 200 GB'tır. Daha büyük bir BACPAC dosyasını arşiv etmek için SqlPackage ile yerel depolamaya aktarın.

  • Azure Depolama dosya adı ile . bitemez ve boşluk karakteri veya <, , >, *, %, , &, :\, , /?gibi özel karakterler içeremez. Dosya adı 128 karakterden daha az olmalıdır.

  • Dışarı aktarma işlemi 20 saati aşarsa iptal edilebilir. Dışarı aktarma sırasında performansı artırmak için şunları yapabilirsiniz:

    • İşlem boyutunuzu geçici olarak artırın.
    • Dışarı aktarma sırasında tüm okuma ve yazma etkinliklerini sonlandırın.
    • Tüm büyük tablolarda null olmayan değerlerle kümelenmiş dizin kullanın. Kümelenmiş dizinler olmadığında, dışarı aktarma işlemi 6-12 saatten uzun sürerse başarısız olabilir. Bunun nedeni, dışarı aktarma hizmetinin tablonun tamamını dışarı aktarmayı denemek için tablo taramasını tamamlaması gerekir. Tablolarınızın dışarı aktarma için iyileştirilip iyileştirilmediğini belirlemenin iyi bir yolu çalıştırmak DBCC SHOW_STATISTICS ve RANGE_HI_KEY null olmadığından ve değerinin iyi bir dağılıma sahip olduğundan emin olmaktır. Ayrıntılar için bkz . DBCC SHOW_STATISTICS.
  • Daha büyük veritabanları için BACPAC dışarı/içeri aktarma işlemi uzun sürebilir ve çeşitli nedenlerle başarısız olabilir.

Not

BACPAC'lerin yedekleme ve geri yükleme işlemleri için kullanılması amaçlanmamıştır. Azure, her kullanıcı veritabanı için otomatik olarak yedeklemeler oluşturur. Ayrıntılar için bkz. İş sürekliliğine genel bakış ve Azure SQL Veritabanı otomatik yedeklemeler veya Azure SQL Yönetilen Örneği'da Otomatik yedeklemeler.

Not

Özel Bağlantı kullanarak içeri ve dışarı aktarma önizleme aşamasındadır.

Azure portal

Azure portalını kullanarak veritabanının BACPAC'sini Azure SQL Yönetilen Örneği dışarı aktarma işlemi şu anda desteklenmiyor. Bkz. Önemli Noktalar.

Not

Azure portalı veya PowerShell aracılığıyla gönderilen içeri/dışarı aktarma isteklerini işleyen makinelerin BACPAC dosyasını ve Veri Katmanı Uygulama Çerçevesi (DacFX) tarafından oluşturulan geçici dosyaları depolaması gerekir. Gereken disk alanı, aynı boyuta sahip veritabanları arasında önemli ölçüde farklılık gösterir ve veritabanının boyutunun üç katına kadar disk alanı gerektirebilir. İçeri/dışarı aktarma isteğini çalıştıran makinelerde yalnızca 450 GB yerel disk alanı vardır. Sonuç olarak, bazı istekler hatasıyla There is not enough space on the diskbaşarısız olabilir. Bu durumda geçici çözüm, yeterli yerel disk alanına sahip bir makinede SqlPackage çalıştırmaktır. Bu sorunu önlemek için 150 GB'tan büyük veritabanlarını içeri/dışarı aktarmak için SQLPackage kullanılmasını öneririz.

  1. Azure portalını kullanarak bir veritabanını dışarı aktarmak için veritabanınızın sayfasını açın ve araç çubuğunda Dışarı Aktar'ı seçin.

    Screenshot that highlights the Export button.

  2. BACPAC dosya adını belirtin, dışarı aktarma için mevcut bir Azure depolama hesabını ve kapsayıcısını seçin ve ardından kaynak veritabanına erişim için uygun kimlik bilgilerini sağlayın. Azure yöneticisi olmanız, Azure SQL Veritabanı veya Azure SQL Yönetilen Örneği yönetici izinlerine sahip olmak için yeterli olmadığından, burada Azure yöneticisi olsanız bile SQL Server yönetici oturum açma bilgileri gereklidir.

    Screenshot shows the Export Database page with username and password specified.

  3. Tamam'ı seçin.

  4. Dışarı aktarma işleminin ilerleme durumunu izlemek için, dışarı aktarılmakta olan veritabanını içeren sunucunun sayfasını açın. Veri yönetimi'nin altında İçeri/Dışarı Aktarma geçmişi'ne tıklayın.

SQLPackage yardımcı programı

Çoğu üretim ortamında ölçek ve performans için SQLPackage yardımcı programının kullanılmasını öneririz. İçeri/dışarı aktarma işlemlerini hızlandırmak için tabloların alt kümeleri için birden çok SqlPackage komutunu paralel olarak çalıştırabilirsiniz.

SQLPackage komut satırı yardımcı programını kullanarak veritabanını SQL Veritabanı dışarı aktarmak için bkz. Parametreleri ve özellikleri dışarı aktarma. SQLPackage yardımcı programı Windows, macOS ve Linux için kullanılabilir.

Bu örnekte, Active Directory Evrensel Kimlik Doğrulaması ile SqlPackage kullanarak veritabanını dışarı aktarma işlemi gösterilmektedir:

SqlPackage /a:Export /tf:testExport.BACPAC /scs:"Data Source=apptestserver.database.windows.net;Initial Catalog=MyDB;" /ua:True /tid:"apptest.onmicrosoft.com"

Azure Data Studio

Azure Data Studio ücretsiz, açık kaynak bir araçtır ve Windows, Mac ve Linux için kullanılabilir. "SQL Server dacpac" uzantısı, dışarı ve içeri aktarma dahil olmak üzere SqlPackage işlemleri için bir sihirbaz arabirimi sağlar. Uzantıyı yükleme ve kullanma hakkında daha fazla bilgi için bkz . SQL Server dacpac uzantısı.

SQL Server Management Studio (SSMS)

SQL Server Management Studio, Azure SQL Veritabanı veya SQL Yönetilen Örneği veritabanındaki bir veritabanını BACPAC dosyasına dışarı aktarmaya yönelik bir sihirbaz sağlar. Bkz. Veri Katmanı Uygulamasını Dışarı Aktarma.

PowerShell

PowerShell kullanarak veritabanının BACPAC'sini Azure SQL Yönetilen Örneği dışarı aktarmak desteklenmez. Bkz. Önemli Noktalar.

Azure SQL Veritabanı hizmetine bir dışarı aktarma veritabanı isteği göndermek için New-AzSqlDatabaseExport cmdlet'ini kullanın. Veritabanınızın boyutuna bağlı olarak dışarı aktarma işleminin tamamlanması biraz zaman alabilir.

$exportRequest = New-AzSqlDatabaseExport -ResourceGroupName $ResourceGroupName -ServerName $ServerName `
  -DatabaseName $DatabaseName -StorageKeytype $StorageKeytype -StorageKey $StorageKey -StorageUri $BacpacUri `
  -AdministratorLogin $creds.UserName -AdministratorLoginPassword $creds.Password

Dışarı aktarma isteğinin durumunu denetlemek için Get-AzSqlDatabaseImportExportStatus cmdlet'ini kullanın. İstek sonrasında bu cmdlet'i çalıştırmak genellikle Durum: InProgress değerini döndürür. Durum: Başarılı ifadesini gördüğünüzde dışarı aktarma tamamlandı.

$exportStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $exportRequest.OperationStatusLink
[Console]::Write("Exporting")
while ($exportStatus.Status -eq "InProgress")
{
    Start-Sleep -s 10
    $exportStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $exportRequest.OperationStatusLink
    [Console]::Write(".")
}
[Console]::WriteLine("")
$exportStatus

Dışarı aktarma isteğini iptal etme

Dışarı aktarma isteğini iptal etmek için Veritabanı İşlemleri - İPTAL API'sini veya PowerShell Stop-AzSqlDatabaseActivity komutunu kullanın. Aşağıda örnek bir PowerShell komutu verilmiştir:

Stop-AzSqlDatabaseActivity -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName -OperationId $Operation.OperationId

Not

Dışarı aktarma işlemini iptal etmek için aşağıdaki rollerden birine sahip olmanız gerekir:

Sınırlamalar

  • Bu makalede açıklanan yöntemleri kullanarak bir BACPAC dosyasını Azure premium depolama alanına dışarı aktarma desteklenmez.
  • Güvenlik duvarının arkasındaki depolama şu anda desteklenmiyor.
  • Sabit depolama şu anda desteklenmiyor.
  • Azure SQL Yönetilen Örneği şu anda Azure portalını veya Azure PowerShell'i kullanarak veritabanını BACPAC dosyasına aktarmayı desteklemez. Yönetilen örneği bir BACPAC dosyasına aktarmak için SQL Server Management Studio (SSMS) veya SQLPackage kullanın.
  • Şu anda İçeri/Dışarı Aktarma hizmeti, MFA gerektiğinde Microsoft Entra ID kimlik doğrulamasını desteklememektedir.
  • İçeri/Dışarı Aktarma hizmetleri yalnızca SQL kimlik doğrulamayı ve Microsoft Entra Id'yi destekler. Import\Export, Microsoft Identity uygulama kaydıyla uyumlu değil.
  • Bir veritabanını arşivleme amacıyla dışarı aktarmaya alternatif olarak tek bir veritabanının ve havuza alınan veritabanlarının uzun süreli yedek saklaması hakkında bilgi edinmek için bkz . Uzun süreli yedekleme saklama. SQL Aracısı işlerini kullanarak uzun süreli yedekleme saklamaya alternatif olarak yalnızca kopya veritabanı yedeklemelerini zamanlayabilirsiniz.
  • BACPAC'yi SQL Server veritabanına aktarma hakkında bilgi edinmek için bkz . BACPAC'yi SQL Server veritabanına aktarma.
  • SQL Server veritabanından BACPAC'yi dışarı aktarma hakkında bilgi edinmek için bkz . Veri Katmanı Uygulamasını Dışarı Aktarma
  • Veritabanını geçirmek için Veri Geçiş Hizmeti'ni kullanma hakkında bilgi edinmek için bkz. DMS kullanarak SQL Server'dan Azure SQL Veritabanı çevrimdışına geçirme.
  • SQL Server'dan Azure SQL Veritabanı geçiş öncesi olarak dışarı aktarıyorsanız bkz. SQL Server veritabanını Azure SQL Veritabanı geçirme.
  • Depolama anahtarlarını ve paylaşılan erişim imzalarını güvenli bir şekilde yönetmeyi ve paylaşmayı öğrenmek için bkz . Blob depolama için güvenlik önerileri.