Aracılığıyla paylaş


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

Azure SQL Veritabanı veya SQL Yönetilen Örneği'ne bir SQL Server veritabanını .bacpac dosyası kullanarak içeriye 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 küçültebilirsiniz.

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ı'da tek bir veritabanı oluşturmayı ve yalnızca Azure Blob depolamada depolanan bir bacpac dosyasından oluşturmayı destekler.
  • Veritabanını bir bacpac dosyasından Azure SQL Yönetilen Örneği'e geçirmek için SQL Server Management Studio veya SqlPackage komut satırı aracını kullanın. Azure portalı ve Azure PowerShell şu anda desteklenmiyor.

Uyarı

SqlPackage'dan oluşturulan 150 GB üzerindeki Bacpac dosyaları, Azure portalından veya Azure PowerShell'den "File contains corrupted dataiçeren bir hata iletisiyle" içeri aktarılamayabilir. Bu bilinen bir sorunun sonucudur ve geçici çözüm bacpac dosyasını içeri aktarmak için komut satırı yardımcı programını kullanmaktır SqlPackage . Daha fazla bilgi için bkz . SqlPackage ve sorun günlüğü.

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 komut satırı yardımcı programını ç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 komut satırı yardımcı programını kullanmanızı ö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.

    Veritabanı içeri aktarmanın seçili olduğu Azure portalının mantıksal sunucuya genel bakış sayfasının ekran görüntüsü.

  2. Yedeklemeyi 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.

    Azure portalı, Veritabanı içeri aktarma sayfasının ekran görüntüsü.

  4. Tamam'ı seçin.

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

    Veritabanı içeri aktarma durumunu gösteren Azure portalı, sunucuya genel bakış sayfasının ekran görüntüsü.

  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 import parametreleri ve özelliklerine bakın. 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. Azure SQL Veritabanı'na BACPAC Dosyalarını kullanarak SQL Server'dan geçiş hakkında BACPAC dosyalarını kullanan bir SQL Server Müşteri Danışmanlık Ekibi bloguna bakın.

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ı AdventureWorks2008R2mantıksal bir SQL sunucusuna aktarırmynewserver20170403. Yeni bir myMigratedDatabase adlı veritabanı, Premium hizmet katmanı ve P6 Hizmet Hedefi ile 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ğine bağlanmak için ya bir noktadan siteye bağlantınız ya da bir 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. /ua:true ve /tid:"yourdomain.onmicrosoft.com" için 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 (AzureRM) modülü 29 Şubat 2024'te kullanım dışı bırakılmıştır. Gelecekteki tüm geliştirmelerde Az.Sql modülü kullanılmalıdır. Kullanıcıların destek ve güncelleştirmelerin devam etmesini sağlamak için AzureRM'den Az PowerShell modülüne geçmeleri tavsiye edilir. AzureRM modülü artık korunmaz veya desteklenmez. Az PowerShell modülündeki ve AzureRM modüllerindeki komutların bağımsız değişkenleri önemli ölçüde aynıdır. Yeni Az PowerShell modülü hakkında bilgi almak için, uyumlulukları ile ilgili daha fazla bilgiyi ve'de bulabilirsiniz.

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. İsteğin hemen ardından cmdlet'in çalıştırılması genellikle Status: InProgress döndürür. öğ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 BACPAC dosyasından bir veritabanı içeri aktarma'ya bakın.

İç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

  • Elastik havuzdaki bir veritabanına içeri aktarma işlemi Azure Portal, Azure PowerShell veya Azure CLI aracılığıyla desteklenmez. Bunun yerine, elastik havuzda bir veritabanı oluşturun ve sqlpackage import kullanın veya herhangi bir yöntemi kullanarak tek bir veritabanına veri aktarın ve veritabanını elastik havuza taşıyın.
  • 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.