Hızlı Başlangıç: BACPAC dosyasını Azure SQL veritabanı 'nda bir veritabanına aktarmaQuickstart: Import a BACPAC file to a database in Azure SQL Database

Bir SQL Server veritabanını, bacpac dosyasını kullanarak Azure SQL veritabanındaki bir veritabanına aktarabilirsiniz.You can import a SQL Server database into a database in Azure SQL Database using a BACPAC file. Verileri Azure Blob depolama (yalnızca standart BACPAC depolama) veya şirket içi bir konumdaki yerel depolama alanında depolanan bir dosyadan içeri aktarabilirsiniz.You can import the data from a BACPAC file stored in Azure Blob storage (standard storage only) or from local storage in an on-premises location. Daha fazla ve daha hızlı kaynak 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 ölçeklendirin.To maximize import speed by providing more and faster resources, scale your database to a higher service tier and compute size during the import process. Ardından içeri aktarma işlemi başarılı olduktan sonra ölçeği azaltabilirsiniz.You can then scale down after the import is successful.

Not

İçeri aktarılan veritabanının uyumluluk düzeyi, kaynak veritabanının uyumluluk düzeyi üzerinde temel alır.The imported database's compatibility level is based on the source database's compatibility level.

Önemli

Veritabanınızı içeri aktardıktan sonra veritabanını, geçerli uyumluluk düzeyinde (düzey 100 AdventureWorks2008R2 veritabanı için) veya daha yüksek bir düzeyde çalışılacak seçebilirsiniz.After importing your database, you can choose to operate the database at its current compatibility level (level 100 for the AdventureWorks2008R2 database) or at a higher level. 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.For more information on the implications and options for operating a database at a specific compatibility level, see ALTER DATABASE Compatibility Level. Uyumluluk düzeyleriyle ilgili ek veritabanı düzeyi ayarları hakkında bilgi için, ayrıca bkz. VERİTABANI KAPSAMLI YAPILANDIRMAYI DEĞİŞTİRME.See also ALTER DATABASE SCOPED CONFIGURATION for information about additional database-level settings related to compatibility levels.

Azure portalında bir BACPAC dosyasından almaImport from a BACPAC file in the Azure portal

Azure Portal yalnızca Azure SQL veritabanı 'Nda ve yalnızca Azure Blob depolamada depolanan bir bacpac dosyasından tek bir veritabanı oluşturulmasını destekler.The Azure portal only supports creating a single database in Azure SQL Database and only from a BACPAC file stored in Azure Blob storage.

Bir veritabanını Azure PowerShell kullanılarak BACPAC dosyasından yönetilen bir örneğe geçirme Şu anda desteklenmiyor.Migrating a database into a managed instance from a BACPAC file using Azure PowerShell is not currently supported. Bunun yerine SQL Server Management Studio veya SQLPackage kullanın.Use SQL Server Management Studio or SQLPackage instead.

Not

Azure portal veya PowerShell aracılığıyla gönderilen içeri/dışarı aktarma isteklerini işleyen makineler, BACPAC dosyasını ve veri katmanı uygulama çerçevesi (DacFX) tarafından oluşturulan geçici dosyaları da depolaması gerekir.Machines processing import/export requests submitted through the Azure portal or PowerShell need to store the BACPAC file as well as temporary files generated by the Data-Tier Application Framework (DacFX). Gerekli disk alanı, aynı boyuta sahip veritabanları arasında önemli ölçüde farklılık gösterir ve veritabanı boyutunun 3 katına kadar disk alanı gerektirebilir.The disk space required varies significantly among databases with the same size and can require disk space up to 3 times the size of the database. İçeri/dışarı aktarma isteği çalıştıran makinelerde yalnızca 450GB yerel disk alanı vardır.Machines running the import/export request only have 450GB local disk space. Sonuç olarak, bazı istekler hata There is not enough space on the diskvererek başarısız olabilir.As a result, some requests may fail with the error There is not enough space on the disk. Bu durumda geçici çözüm, SqlPackage. exe ' yi yeterli yerel disk alanına sahip bir makinede çalıştırmalıdır.In this case, the workaround is to run sqlpackage.exe on a machine with enough local disk space. Bu sorundan kaçınmak için, SQL paketini 150gb 'den büyük veritabanlarını içeri/dışarı aktarmak için kullanmayı öneririz.We encourage using SqlPackage to import/export databases larger than 150GB to avoid this issue.

  1. Bir BACPAC dosyasından Azure portal kullanarak yeni bir tek veritabanına aktarmak için, uygun veritabanı sunucusu sayfasını açın ve ardından araç çubuğundan veritabanını Içeri aktar' ı seçin.To import from a BACPAC file into a new single database using the Azure portal, open the appropriate database server page and then, on the toolbar, select Import database.

    Veritabanı import1

  2. BACPAC dosyası için depolama hesabını ve kapsayıcıyı seçin ve ardından İçeri aktarılacak BACPAC dosyasını seçin.Select the storage account and the container for the BACPAC file and then select the BACPAC file from which to import.

  3. Yeni veritabanı boyutu (genellikle kaynak aynı) belirtin ve hedef SQL Server kimlik bilgilerini sağlayın.Specify the new database size (usually the same as origin) and provide the destination SQL Server credentials. Yeni bir Azure SQL veritabanı için olası değerlerin bir listesi için, bkz. veritabanı oluşturma.For a list of possible values for a new Azure SQL database, see Create Database.

    Veritabanı import2

  4. Tamam'ı tıklatın.Click OK.

  5. İçeri aktarmanın ilerlemesini izlemek için veritabanının sunucu sayfasını açın ve Ayarlaraltında Içeri/dışarı aktarma geçmişi' ni seçin.To monitor an import's progress, open the database's server page, and, under Settings, select Import/Export history. Başarılı olduğunda, içeri aktarma sahip bir tamamlandı durumu.When successful, the import has a Completed status.

    Veritabanı içeri aktarma durumu

  6. Veritabanının veritabanı sunucusunda canlı olduğunu doğrulamak için SQL veritabanları ' nı seçin ve yeni veritabanının çevrimiçiolduğunu doğrulayın.To verify the database is live on the database server, select SQL databases and verify the new database is Online.

SqlPackage kullanarak BACPAC dosyasından almaImport from a BACPAC file using SqlPackage

SqlPackage komut satırı yardımcı programını kullanarak bir SQL Server veritabanını içeri aktarmak için, bkz. içeri aktarma parametreleri ve özellikleri.To import a SQL Server database using the SqlPackage command-line utility, see import parameters and properties. SqlPackage, Visual Studio içinen son SQL Server Management Studio ve SQL Server veri araçları sahiptir.SqlPackage has the latest SQL Server Management Studio and SQL Server Data Tools for Visual Studio. En son da indirebilirsiniz SqlPackage Microsoft İndirme Merkezi'nden.You can also download the latest SqlPackage from the Microsoft download center.

Ölçek ve performans için, Azure portal kullanmak yerine, çoğu üretim ortamında SqlPackage kullanılması önerilir.For scale and performance, we recommend using SqlPackage in most production environments rather than using the Azure portal. Dosya kullanarak BACPAC geçiş hakkında bir SQL Server müşteri danışmanlık ekibi blogu için, bkz. bacpac dosyalarını kullanarak SQL Server Azure SQL veritabanı 'na geçirme.For a SQL Server Customer Advisory Team blog about migrating using BACPAC files, see migrating from SQL Server to Azure SQL Database using BACPAC Files.

Ölçek ve performans için çoğu üretim ortamlarında SqlPackage kullanmanızı öneririz.For scale and performance, we recommend using SqlPackage in most production environments. BACPAC dosyalarını kullanarak geçiş hakkında bir SQL Server Müşteri Danışmanlık Ekibi blogu için bkz. BACPAC Dosyalarını kullanarak SQL Server’dan Azure SQL Veritabanına Geçiş.For a SQL Server Customer Advisory Team blog about migrating using BACPAC files, see Migrating from SQL Server to Azure SQL Database using BACPAC Files.

Aşağıdaki SqlPackage komutu, AdventureWorks2008R2 veritabanını yerel depolamadan Mynewserver20170403adlı bir Azure SQL veritabanı sunucusuna aktarır.The following SqlPackage command imports the AdventureWorks2008R2 database from local storage to an Azure SQL Database server called mynewserver20170403. Adlı yeni bir veritabanı oluşturur myMigratedDatabase ile bir Premium hizmet katmanı ve bir P6 hizmet hedefi.It creates a new database called myMigratedDatabase with a Premium service tier and a P6 Service Objective. Bu değerleri ortamınız için uygun şekilde değiştirin.Change these values as appropriate for your environment.

SqlPackage.exe /a:import /tcs:"Data Source=mynewserver20170403.database.windows.net;Initial Catalog=myMigratedDatabase;User Id=<your_server_admin_account_user_id>;Password=<your_server_admin_account_password>" /sf:AdventureWorks2008R2.bacpac /p:DatabaseEdition=Premium /p:DatabaseServiceObjective=P6

Önemli

Şirket güvenlik duvarının ardında tek bir veritabanını yöneten bir SQL veritabanı sunucusuna bağlanmak için, güvenlik duvarında 1433 numaralı bağlantı noktası açık olmalıdır.To connect to a SQL Database server managing a single database from behind a corporate firewall, the firewall must have port 1433 open. Yönetilen bir örneğe bağlanmak için, Noktadan siteye bağlantı veya Express Route bağlantısına sahip olmanız gerekir.To connect to a managed instance, you must have a point-to-site connection or an express route connection.

Bu örnek, bir veritabanını Active Directory Evrensel kimlik doğrulaması ile SqlPackage kullanarak içeri aktarma gösterir.This example shows how to import a database using SqlPackage with Active Directory Universal Authentication.

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

PowerShell kullanarak BACPAC dosyasından tek bir veritabanına aktarmaImport into a single database from a BACPAC file using PowerShell

Not

Yönetilen bir örnek Şu anda bir veritabanını Azure PowerShell kullanılarak bacpac dosyasından bir örnek veritabanına geçirmeyi desteklememektedir.A managed instance does not currently support migrating a database into an instance database from a BACPAC file using Azure PowerShell. Yönetilen bir örneğe aktarmak için SQL Server Management Studio veya SQLPackage kullanın.To import into a managed instance, use SQL Server Management Studio or SQLPackage.

Not

Portal veya PowerShell aracılığıyla gönderilen içeri/dışarı aktarma isteklerini işleyen makinelerin bacpac dosyasını ve veri katmanı uygulaması çerçevesi (DacFX) tarafından oluşturulan geçici dosyaları depolaması gerekir.The machines processing import/export requests submitted through portal or Powershell need to store the bacpac file as well as temporary files generated by Data-Tier Application Framework (DacFX). Gerekli disk alanı, aynı boyuta sahip olan veritabanları arasında önemli ölçüde farklılık gösterir ve veritabanı boyutunun 3 ' i kadar katına yararlanabilir.The disk space required varies significantly among DBs with same size and can take up to 3 times of the database size. İçeri/dışarı aktarma isteği çalıştıran makinelerde yalnızca 450GB yerel disk alanı vardır.Machines running the import/export request only have 450GB local disk space. Sonuç olarak, bazı istekler "diskte yeterli alan yok" hatasını vererek başarısız olabilir.As result, some requests may fail with “There is not enough space on the disk” error. Bu durumda geçici çözüm, SqlPackage. exe ' yi yeterli yerel disk alanına sahip bir makinede çalıştırmalıdır.In this case, the workaround is to run sqlpackage.exe on a machine with enough local disk space. 150GB 'den büyük veritabanlarını içeri/dışarı aktarırken, bu sorundan kaçınmak için SqlPackage kullanın.When importing/exporting databases larger than 150GB, use SqlPackage to avoid this issue.

Not

Bu makale yeni Azure PowerShell Az modülünü kullanacak şekilde güncelleştirilmiştir.This article has been updated to use the new Azure PowerShell Az module. En azından Aralık 2020'ye kadar hata düzeltmeleri almaya devam edecek olan AzureRM modülünü de kullanmaya devam edebilirsiniz.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Yeni Az modülüyle AzureRM'nin uyumluluğu hakkında daha fazla bilgi edinmek için bkz. Yeni Azure PowerShell Az modülüne giriş.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az modülü yükleme yönergeleri için bkz. Azure PowerShell'i yükleme.For Az module installation instructions, see Install Azure PowerShell.

Önemli

PowerShell Azure Resource Manager modülü Azure SQL veritabanı tarafından hala desteklenmektedir, ancak gelecekteki tüm geliştirmeler az. SQL modülüne yöneliktir.The PowerShell Azure Resource Manager module is still supported by Azure SQL Database, but all future development is for the Az.Sql module. Bu cmdlet 'ler için bkz. Azurerd. SQL.For these cmdlets, see AzureRM.Sql. Az Module ve Azurerd modüllerinde komutların bağımsız değişkenleri önemli ölçüde aynıdır.The arguments for the commands in the Az module and in the AzureRm modules are substantially identical.

Azure SQL veritabanı hizmetine bir veritabanı içeri aktarma isteği göndermek için New-Azsqldatabaseımport cmdlet 'ini kullanın.Use the New-AzSqlDatabaseImport cmdlet to submit an import database request to the Azure SQL Database service. Veritabanı boyutuna bağlı olarak içeri aktarma tamamlanması biraz zaman alabilir.Depending on database size, the import may take some time to complete.

$importRequest = New-AzSqlDatabaseImport 
   -ResourceGroupName "<your_resource_group>" `
   -ServerName "<your_server>" `
   -DatabaseName "<your_database>" `
   -DatabaseMaxSizeBytes "<database_size_in_bytes>" `
   -StorageKeyType "StorageAccessKey" `
   -StorageKey $(Get-AzStorageAccountKey -ResourceGroupName "<your_resource_group>" -StorageAccountName "<your_storage_account").Value[0] `
   -StorageUri "https://myStorageAccount.blob.core.windows.net/importsample/sample.bacpac" `
   -Edition "Standard" `
   -ServiceObjectiveName "P6" `
   -AdministratorLogin "<your_server_admin_account_user_id>" `
   -AdministratorLoginPassword $(ConvertTo-SecureString -String "<your_server_admin_account_password>" -AsPlainText -Force)

Almanın ilerlemesini denetlemek için Get-Azsqldatabaseımportexportstatus cmdlet 'ini kullanabilirsiniz.You can use the Get-AzSqlDatabaseImportExportStatus cmdlet to check the import's progress. İsteğin genellikle durumu döndüren cmdlet 'i hemen çalıştırmak: Sürüyor.Running the cmdlet immediately after the request usually returns Status: InProgress. Durumu gördüğünüzde içeri aktarma tamamlanır: Başarılıoldu.The import is complete when you see Status: Succeeded.

$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 komut dosyası örneği için bkz. veritabanını BACPAC dosyasından içeri aktarma.For another script example, see Import a database from a BACPAC file.

SınırlamalarLimitations

Elastik havuzdaki bir veritabanı için içeri aktarma desteklenmiyor.Importing to a database in elastic pool isn't supported. Verileri tek bir veritabanına aktarabilir ve sonra veritabanını elastik bir havuza taşıyabilirsiniz.You can import data into a single database and then move the database to an elastic pool.

İçeri aktarma sihirbazlarıImport using wizards

Bu sihirbazlar de kullanabilirsiniz.You can also use these wizards.

Sonraki adımlarNext steps