Hızlı Başlangıç: bacpac dosyasını Azure SQL Veritabanı veya Azure SQL Yönetilen Örneği bir veritabanına aktarma

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

SQL Server veritabanını bir .bacpac dosyası kullanarak Azure SQL Veritabanı veya SQL Yönetilen Örneği içeri aktarabilirsiniz. Verileri Azure Blob depolamada depolanan bir bacpac dosyasından (yalnızca standart depolama) veya şirket içi bir konumdaki yerel depolama alanından içeri aktarabilirsiniz. Daha fazla ve daha hızlı kaynaklar sağlayarak içeri aktarma hızını en üst düzeye çıkarmak için içeri aktarma işlemi sırasında veritabanınızı daha yüksek bir hizmet katmanına ve işlem boyutuna sahip olacak şekilde ölçeklendirin. İçeri aktarma işlemi başarılı olduktan sonra ölçeği azaltabilirsiniz.

Not

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

Azure portalı kullanma

Azure portalında bir bacpac dosyasından içeri aktarmayı veya okumaya devam etme işlemini görmek için bu videoyu izleyin:

Azure portalıyalnızca Azure SQL Veritabanı ve yalnızca Azure Blob depolamada depolanan bir bacpac dosyasından tek bir veritabanı oluşturmayı destekler.

Veritabanını bacpac dosyasından bir Azure SQL Yönetilen Örneği geçirmek için SQL Server Management Studio veya SQLPackage kullanın; Azure portalını veya Azure PowerShell'i kullanmak şu anda desteklenmemektedir.

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 sorundan kaçınmak 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 bacpac dosyasından yeni bir veritabanına aktarmak için uygun sunucu sayfasını açın ve araç çubuğunda Veritabanını içeri aktar'ı seçin.

    Screenshot of the Azure portal, logical server overview page, with database import selected.

  2. Yedekleme seç'i seçin. Veritabanınızı barındıran depolama hesabını seçin ve ardından içeri aktarılacağınız bacpac dosyasını seçin.

  3. Yeni veritabanı boyutunu belirtin (genellikle kaynakla aynıdır) ve hedef SQL Server kimlik bilgilerini sağlayın. Azure SQL Veritabanı'da yeni bir veritabanı için olası değerlerin listesi için bkz. Veritabanı Oluşturma.

    Screenshot of the Azure portal, Database import page.

  4. Tamam'ı seçin.

  5. İçeri aktarma işleminin ilerleme durumunu izlemek için veritabanının sunucu sayfasını açın ve Ayarlar altında İçeri/Dışarı Aktarma geçmişi'ni seçin. Başarılı olduğunda, içeri aktarma tamamlandı durumuna sahiptir.

    Screenshot of the Azure portal, server overview page, showing the database import status.

  6. Veritabanının sunucuda canlı olduğunu doğrulamak için SQL veritabanları'nı seçin ve yeni veritabanının Çevrimiçi olduğunu doğrulayın.

SqlPackage kullanma

SqlPackage komut satırı yardımcı programını kullanarak bir SQL Server veritabanını içeri aktarmak için bkz. parametreleri ve özellikleri içeri aktarma. Windows, macOS veya Linux için en son SqlPackage'ı indirebilirsiniz.

Ölçek ve performans için, Azure portalını kullanmak yerine çoğu üretim ortamında SqlPackage kullanmanızı öneririz. Dosyaları kullanarak BACPAC geçiş hakkında bir SQL Server Müşteri Danışmanlığı Ekibi blogu için bkz. BACPAC Dosyalarını kullanarak SQL Server'dan Azure SQL Veritabanı geçiş.

DTU tabanlı sağlama modeli, her katman için belirli veritabanı maksimum boyut değerlerini destekler. Veritabanını içeri aktarırken desteklenen bu değerlerden birini kullanın.

Aşağıdaki SqlPackage komutu, veritabanını yerel depolama alanından adlı mynewserver20170403mantıksal bir SQL sunucusuna aktarırAdventureWorks2008R2. Premium hizmet katmanı ve P6 Hizmet Hedefi ile adlı myMigratedDatabase yeni bir veritabanı oluşturur. Bu değerleri ortamınıza uygun şekilde değiştirin.

SqlPackage /a:import /tcs:"Data Source=<serverName>.database.windows.net;Initial Catalog=<migratedDatabase>;User Id=<userId>;Password=<password>" /sf:AdventureWorks2008R2.bacpac /p:DatabaseEdition=Premium /p:DatabaseServiceObjective=P6

Önemli

Şirket güvenlik duvarının arkasından Azure SQL Veritabanı bağlanmak için güvenlik duvarının 1433 numaralı bağlantı noktasının açık olması gerekir. SQL Yönetilen Örneği bağlanmak için noktadan siteye bağlantınız veya hızlı yol bağlantınız olmalıdır.

Kullanıcı adı ve parolaya alternatif olarak Microsoft Entra Id (eski adıyla Azure Active Directory) kullanabilirsiniz. Şu anda İçeri/Dışarı Aktarma hizmeti, MFA gerektiğinde Microsoft Entra ID kimlik doğrulamasını desteklememektedir. ve /tid:"yourdomain.onmicrosoft.com"için /ua:true kullanıcı adı ve parola parametrelerini değiştirin. Bu örnekte, Microsoft Entra kimlik doğrulaması ile SqlPackage kullanarak veritabanını içeri aktarma işlemi gösterilmektedir:

SqlPackage /a:Import /sf:testExport.bacpac /tdn:NewDacFX /tsn:apptestserver.database.windows.net /ua:True /tid:"apptest.onmicrosoft.com"

Azure Data Studio

Azure Data Studio ücretsiz, açık kaynak bir araçtır ve Windows, macOS 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 SQL Server dacpac uzantısı belgelerine bakın.

PowerShell kullanma

Not

Azure SQL Yönetilen Örneği şu anda Azure PowerShell kullanarak bir veritabanını bacpac dosyasından örnek veritabanına geçirmeyi desteklememektedir. SQL yönetilen örneğine içeri aktarmak için SQL Server Management Studio veya SQLPackage kullanın.

Not

Portal veya PowerShell aracılığıyla gönderilen içeri/dışarı aktarma isteklerini işleyen makinelerin hem bacpac dosyasını hem de Veri Katmanı Application Framework (DacFX) tarafından oluşturulan geçici dosyaları depolaması gerekir. Gerekli disk alanı, aynı boyuttaki DB'ler arasında önemli ölçüde farklılık gösterir ve veritabanı boyutunun üç katına kadar sürebilir. İçeri/dışarı aktarma isteğini çalıştıran makinelerde yalnızca 450 GB yerel disk alanı vardır. Sonuç olarak, bazı istekler "Diskte yeterli alan yok" hatasıyla başarısız olabilir. Bu durumda geçici çözüm, yeterli yerel disk alanına sahip bir makinede SqlPackage çalıştırmaktır. 150 GB'tan büyük veritabanlarını içeri/dışarı aktarırken bu sorundan kaçınmak için SqlPackage kullanın.

Önemli

PowerShell Azure Resource Manager (RM) modülü hala desteklenmektedir ancak gelecekteki tüm geliştirmeler Az.Sql modülüne yöneliktir. AzureRM modülü en az Aralık 2020'ye kadar hata düzeltmeleri almaya devam edecektir. Az modülündeki ve AzureRm modüllerindeki komutların bağımsız değişkenleri önemli ölçüde aynıdır. Uyumlulukları hakkında daha fazla bilgi için bkz . Yeni Azure PowerShell Az modülüne giriş.

Azure'a bir içeri aktarma veritabanı isteği göndermek için New-AzSqlDatabaseImport cmdlet'ini kullanın. Veritabanı boyutuna bağlı olarak içeri aktarma işleminin tamamlanması biraz zaman alabilir. DTU tabanlı sağlama modeli, her katman için belirli veritabanı maksimum boyut değerlerini destekler. Veritabanını içeri aktarırken desteklenen bu değerlerden birini kullanın.

$importRequest = New-AzSqlDatabaseImport -ResourceGroupName "<resourceGroupName>" `
    -ServerName "<serverName>" -DatabaseName "<databaseName>" `
    -DatabaseMaxSizeBytes "<databaseSizeInBytes>" -StorageKeyType "StorageAccessKey" `
    -StorageKey $(Get-AzStorageAccountKey `
        -ResourceGroupName "<resourceGroupName>" -StorageAccountName "<storageAccountName>").Value[0] `
        -StorageUri "https://myStorageAccount.blob.core.windows.net/importsample/sample.bacpac" `
        -Edition "Premium" -ServiceObjectiveName "P6" `
        -AdministratorLogin "<userId>" `
        -AdministratorLoginPassword $(ConvertTo-SecureString -String "<password>" -AsPlainText -Force)

İçeri aktarma işleminin ilerleme durumunu denetlemek için Get-AzSqlDatabaseImportExportStatus cmdlet'ini kullanabilirsiniz. cmdlet'in istek genellikle döndürüldükten Status: InProgresshemen sonra çalıştırılması. öğesini gördüğünüzde Status: Succeedediçeri aktarma işlemi tamamlanır.

$importStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $importRequest.OperationStatusLink

[Console]::Write("Importing")
while ($importStatus.Status -eq "InProgress") {
    $importStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $importRequest.OperationStatusLink
    [Console]::Write(".")
    Start-Sleep -s 10
}

[Console]::WriteLine("")
$importStatus

İpucu

Başka bir betik örneği için bkz . BACPAC dosyasından veritabanı içeri aktarma.

İçeri aktarma isteğini iptal etme

Aşağıdaki örnekte olduğu gibi Veritabanı İşlemleri - İptal API'sini veya Stop-AzSqlDatabaseActivity PowerShell komutunu kullanın:

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

İçeri aktarmayı iptal etmek için gereken izinler

İçeri aktarma işlemini iptal etmek için aşağıdaki rollerden birinin üyesi olmanız gerekir:

Yeni veritabanının uyumluluk düzeyi

  • İçeri aktarılan veritabanının uyumluluk düzeyi, kaynak veritabanının uyumluluk düzeyine bağlıdır.
  • Veritabanınızı içeri aktardıktan sonra veritabanını geçerli uyumluluk düzeyinde veya daha yüksek bir düzeyde çalıştırmayı seçebilirsiniz. Veritabanını belirli bir uyumluluk düzeyinde çalıştırmanın etkileri ve buna yönelik seçenekler hakkında daha fazla bilgi için, bkz. Veritabanı Uyumluluk Düzeyini Değiştirme. Uyumluluk düzeyleriyle ilgili diğer veritabanı düzeyi ayarları hakkında bilgi için bkz . ALTER DATABASE SCOPED CONFIGURATION .

Sınırlamalar

  • Bir veritabanının elastik havuza aktarılması desteklenmez. Verileri tek bir veritabanına aktarıp ardından bu veritabanını elastik havuza taşıyabilirsiniz.
  • Azure hizmetlerine erişime izin ver ayarı KAPALI olduğunda İçeri/Dışarı aktarma hizmeti çalışmaz. Ancak, SqlPackage'ı bir Azure VM'den el ile çalıştırarak veya DacFx API'sini kullanarak doğrudan kodunuzda dışarı aktarma gerçekleştirerek sorunu çözebilirsiniz.
  • İçeri aktarma işlemi, yeni veritabanı oluştururken yedekleme alanı yedekliliği belirtilmesini desteklemez ve varsayılan coğrafi olarak yedekli yedekleme alanı yedekliliği ayarıyla oluşturur. Geçici çözüm olarak, önce Azure portalını veya PowerShell'i kullanarak istenen yedekleme depolama yedekliliğine sahip boş bir veritabanı oluşturun ve ardından bacpac'i bu boş veritabanına aktarın.
  • Güvenlik duvarının arkasındaki depolama şu anda desteklenmiyor.
  • İçeri aktarma işlemi sırasında aynı ada sahip bir veritabanı oluşturmayın. İçeri aktarma işlemi, belirtilen adla yeni bir veritabanı oluşturur.
  • Ş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.

Ek araçlar

Bu sihirbazları da kullanabilirsiniz.