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 data
iç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 disk
baş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.
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.
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.
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.
Tamam'ı seçin.
İç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ı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ı AdventureWorks2008R2
mantı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: Succeeded
iç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:
- SQL DB Katkıda Bulunanı rolü veya
-
Özelleştirilmiş Azure rol tabanlı erişim kontrolü (RBAC) rolü ile
Microsoft.Sql/servers/databases/operations
izni
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.
- SQL Server Management Studio'da Veri Katmanı Uygulaması Aktarım Sihirbazı.
- SQL Server İçeri ve Dışarı Aktarma Sihirbazı.
İlgili içerik
- Azure Data Studio'dan Azure SQL Veritabanı bağlanmayı ve sorgulamayı öğrenmek için bkz. Hızlı Başlangıç: Azure SQL Veritabanı bağlanmak ve sorgulamak için Azure Data Studio'yu kullanma.
- Azure SQL Veritabanı'da bir veritabanına bağlanmayı ve veritabanını sorgulamayı öğrenmek için bkz. Hızlı Başlangıç: Azure SQL Veritabanı: Sql Server Management Studio'yu kullanarak verilere bağlanma ve verileri sorgulama.
- .bacpac dosyalarını kullanarak geçiş yapmak hakkında SQL Server Müşteri Danışmanlık Ekibi blogunu görmek için BACPAC Dosyalarını Kullanarak SQL Server'dan Azure SQL Veritabanı'na Geçiş başlığına bakın.
- Performans önerileri de dahil olmak üzere tüm süreç için SQL Server veritabanı geçişinin bir tartışması hakkında bilgi için bkz Azure SQL Veritabanı'na SQL Server veritabanı geçişi.
- Depolama anahtarlarını ve paylaşılan erişim imzalarını güvenli bir şekilde yönetmeyi ve paylaşmayı öğrenmek için bkz . Azure Depolama Güvenlik Kılavuzu.