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ı'da tek bir veritabanı oluşturmayı ve yalnızca Azure Blob depolamada depolanan bir bacpac dosyasından oluşturmayı destekler.
Uyarı
SqlPackage'dan oluşturulan 4 GB üzerindeki Bacpac dosyaları Azure portalından veya Azure PowerShell'den içeri aktarılamayabilir ve hata iletisi görüntülenir File contains corrupted data.
. 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üğü.
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 disk
baş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.
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.
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.
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 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ı mynewserver20170403
mantı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: InProgress
hemen sonra çalıştırılması. öğ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 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:
- SQL DB Katkıda Bulunanı rolü veya
- İzinli
Microsoft.Sql/servers/databases/operations
özel bir Azure rol tabanlı erişim denetimi RBAC rolü
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.
- SQL Server Management Studio'da Veri Katmanı Uygulama İçeri Aktarma 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ş 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ş.
- Performans önerileri de dahil olmak üzere TÜM SQL Server veritabanı geçiş işleminin bir tartışması için bkz. SQL Server veritabanı geçişi Azure SQL Veritabanı.
- 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.