Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Aplikasi ke:Azure SQL Database
Azure SQL Managed Instance
Anda dapat mengimpor database SQL Server ke Azure SQL Database atau SQL Managed Instance menggunakan file .bacpac. Anda dapat mengimpor data dari file BACPAC yang disimpan di penyimpanan Blob Azure (hanya penyimpanan standar) atau dari penyimpanan lokal di lokasi lokal. Untuk memaksimalkan kecepatan impor dengan menyediakan sumber daya yang lebih banyak dan lebih cepat, skalakan database Anda ke tingkat layanan yang lebih tinggi dan ukuran komputasi selama proses impor. Anda kemudian dapat menurunkan skala setelah impor berhasil.
Catatan
Impor atau ekspor Azure SQL Database dengan menggunakan tautan pribadi sedang dalam pratinjau.
Menggunakan portal Azure
Tonton video ini untuk melihat cara mengimpor dari file BACPAC di portal Azure atau lanjutkan membaca:
- Portal Azureonly mendukung pembuatan database tunggal di Azure SQL Database dan only dari file BACPAC yang disimpan di penyimpanan Blob Azure.
- Untuk memigrasikan database ke Azure SQL Managed Instance dari file BACPAC, gunakan SQL Server Management Studio atau utilitas baris perintah
SqlPackage. Portal Azure dan Azure PowerShell saat ini tidak didukung.
Peringatan
File BACPAC lebih dari 150 GB yang dihasilkan dari SqlPackage mungkin gagal diimpor dari portal Azure atau Azure PowerShell dengan pesan kesalahan yang menyatakan File contains corrupted data. Ini adalah hasil dari masalah yang diketahui dan solusinya adalah menggunakan SqlPackage utilitas baris perintah untuk mengimpor file BACPAC. Untuk informasi selengkapnya, lihat SqlPackage dan log masalah.
Catatan
Mesin yang memproses permintaan impor/ekspor yang dikirimkan melalui portal Azure atau PowerShell perlu menyimpan file BACPAC serta file sementara yang dihasilkan oleh Data-Tier Application Framework (DacFX). Ruang disk yang diperlukan bervariasi secara signifikan di antara database dengan ukuran yang sama dan dapat memerlukan ruang disk hingga 3 kali ukuran database. Komputer yang menjalankan permintaan impor/ekspor hanya memiliki ruang disk lokal 450GB. Akibatnya, beberapa permintaan mungkin gagal dengan kesalahan There is not enough space on the disk. Dalam hal ini, solusinya adalah menjalankan utilitas baris perintah SqlPackage pada komputer dengan ruang disk lokal yang cukup. Kami mendorong penggunaan utilitas baris perintah SqlPackage untuk mengimpor/mengekspor database yang lebih besar dari 150GB untuk menghindari masalah ini.
Untuk mengimpor dari file BACPAC ke dalam database tunggal baru menggunakan portal Azure, buka halaman server yang sesuai lalu, pada toolbar, pilih Impor database.
Pilih Pilih cadangan. Pilih akun penyimpanan yang menghosting database Anda, lalu pilih file BACPAC yang akan diimpor.
Tentukan ukuran database baru (biasanya sama dengan asal) dan berikan kredensial SQL Server tujuan. Untuk daftar nilai yang mungkin untuk database baru di Azure SQL Database, lihat Buat Database.
Pilih OK.
Untuk memantau kemajuan impor, buka halaman server database, dan, di bawah Pengaturan, pilih Riwayat Impor/Ekspor. Bila berhasil, impor memiliki status Selesai.
Untuk memverifikasi database langsung di server, pilih database SQL dan verifikasi database baru adalah Online.
Impor dengan autentikasi identitas terkelola (pratinjau)
Azure SQL Database mendukung impor file BACPAC menggunakan autentikasi identitas managed. Opsi ini memungkinkan operasi impor yang sepenuhnya bebas kredensial dan direkomendasikan untuk lingkungan yang menonaktifkan autentikasi SQL atau memberlakukan autentikasi khusus Microsoft Entra.
Anda bisa mengimpor database ke database baru, atau ke database kosong yang sudah ada.
Untuk tutorial terperinci, lihat Menggunakan identitas terkelola dengan impor dan ekspor (pratinjau).
Untuk mengimpor file BACPAC menggunakan autentikasi identitas terkelola, konfigurasi berikut diperlukan:
- Identitas terkelola yang ditetapkan pengguna (UAMI) kepada server logis untuk Azure SQL Database.
- Server memiliki identitas terkelola yang dikonfigurasi sebagai administrator Microsoft Entra.
- Identitas terkelola ditetapkan ke peran Storage Blob Data Reader pada akun Azure Storage sumber. Identitas terkelola ini bisa sama dengan yang ditetapkan ke server atau identitas yang berbeda.
- Server logis, identitas terkelola, dan akun penyimpanan berada di penyewa Microsoft Entra yang sama.
Skenario berikut tidak didukung:
- Operasi impor lintas penyewa.
- Identitas terkelola hanya ditetapkan di tingkat database.
Catatan
Impor dengan autentikasi dengan identitas terkelola saat ini berada dalam tahap pratinjau dan hanya tersedia untuk Azure SQL Database.
Menggunakan SqlPackage
Untuk mengimpor database SQL Server menggunakan SqlPackage utilitas baris perintah, lihat parameter dan properti import. Anda dapat mengunduh SqlPackage terbaru untuk Windows, macOS, atau Linux.
Untuk skala dan performa, sebaiknya gunakan SqlPackage di sebagian besar lingkungan produksi daripada menggunakan portal Azure. Untuk blog Tim Penasihat Pelanggan SQL Server tentang migrasi menggunakan file BACPAC, lihat migrasi dari SQL Server ke Azure SQL Database menggunakan File BACPAC.
Model provisi berbasis DTU mendukung nilai ukuran maksimal database tertentu untuk setiap tingkatan. Saat mengimpor database, gunakan salah satu nilai yang didukung ini.
Perintah SqlPackage berikut mengimpor AdventureWorks2008R2 database dari penyimpanan lokal ke server SQL logis bernama mynewserver20170403. Ini membuat database baru yang disebut myMigratedDatabase dengan tingkat layanan Premium dan Tujuan Layanan P6. Ubah nilai-nilai ini sebagaimana mestinya untuk lingkungan Anda.
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
Penting
Untuk menyambungkan ke Azure SQL Database dari belakang firewall perusahaan, firewall harus membuka port 1433. Untuk menyambungkan ke SQL Managed Instance, Anda harus memiliki koneksi point-to-site atau koneksi rute ekspres.
Sebagai alternatif untuk nama pengguna dan kata sandi, Anda dapat menggunakan Microsoft Entra ID (formerly Azure Active Directory). Saat ini, layanan Impor/Ekspor tidak mendukung autentikasi Microsoft Entra ID saat MFA diperlukan. Ganti parameter nama pengguna dan kata sandi untuk /ua:true dan /tid:"yourdomain.onmicrosoft.com". Contoh ini memperlihatkan cara mengimpor database menggunakan SqlPackage dengan autentikasi Microsoft Entra:
SqlPackage /a:Import /sf:testExport.bacpac /tdn:NewDacFX /tsn:apptestserver.database.windows.net /ua:True /tid:"apptest.onmicrosoft.com"
Visual Studio Code
Ekstensi MSSQL untuk Visual Studio Code adalah ekstensi sumber terbuka gratis yang tersedia untuk Windows, macOS, dan Linux. Ekstensi ini mencakup pengalaman Aplikasi Tingkat Data (Pratinjau) untuk operasi SqlPackage, termasuk ekspor dan impor. Untuk informasi selengkapnya tentang menginstal dan menggunakan ekstensi, lihat ekstensi MSSQL untuk Visual Studio Code.
Menggunakan PowerShell
Catatan
Azure SQL Managed Instance saat ini tidak mendukung migrasi database ke dalam database instans dari file BACPAC menggunakan Azure PowerShell. Untuk mengimpor ke instans terkelola SQL, gunakan SQL Server Management Studio atau SQLPackage.
Catatan
Mesin yang memproses permintaan impor/ekspor yang dikirimkan melalui portal atau PowerShell perlu menyimpan file BACPAC serta file sementara yang dihasilkan oleh Data-Tier Application Framework (DacFX). Ruang disk yang diperlukan bervariasi secara signifikan di antara DB dengan ukuran yang sama dan dapat mencapai hingga tiga kali ukuran database. Komputer yang menjalankan permintaan impor/ekspor hanya memiliki ruang disk lokal 450GB. Akibatnya, beberapa permintaan mungkin gagal dengan kesalahan: There is not enough space on the disk. Dalam hal ini, solusinya adalah menjalankan SqlPackage pada komputer dengan ruang disk lokal yang cukup. Saat mengimpor/mengekspor database yang lebih besar dari 150GB, gunakan SqlPackage untuk menghindari masalah ini.
Penting
Modul PowerShell Azure Resource Manager (AzureRM) tidak digunakan lagi pada 29 Februari 2024. Semua pengembangan di masa mendatang harus menggunakan modul Az.Sql. Pengguna disarankan untuk bermigrasi dari AzureRM ke modul Az PowerShell untuk memastikan dukungan dan pembaruan yang berkelanjutan. Modul AzureRM tidak lagi dipertahankan atau didukung. Argumen untuk perintah dalam modul Az PowerShell dan dalam modul AzureRM secara substansial identik. Untuk informasi selengkapnya tentang kompatibilitasnya, lihat Memperkenalkan modul Az PowerShell baru.
Gunakan cmdlet New-AzSqlDatabaseImport untuk mengirimkan permintaan database impor ke Azure. Bergantung pada ukuran database, impor mungkin membutuhkan waktu untuk menyelesaikannya. Model provisi berbasis DTU mendukung nilai ukuran maksimal database tertentu untuk setiap tingkatan. Saat mengimpor database, gunakan salah satu nilai yang didukung ini.
$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)
Anda dapat menggunakan cmdlet Get-AzSqlDatabaseImportExportStatus untuk memeriksa kemajuan impor. Menjalankan cmdlet segera setelah permintaan biasanya akan mengembalikan Status: InProgress. Impor selesai ketika Anda melihat 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
Petunjuk
Untuk contoh skrip lain, lihat Menggunakan PowerShell untuk mengimpor file BACPAC ke dalam database di SQL Database.
Membatalkan permintaan impor
Gunakan perintah Operasi Database - Batalkan API atau Stop-AzSqlDatabaseActivity PowerShell, seperti dalam contoh berikut:
Stop-AzSqlDatabaseActivity -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName -OperationId $Operation.OperationId
Izin yang diperlukan untuk membatalkan impor
Untuk membatalkan operasi impor, Anda harus menjadi anggota salah satu peran berikut:
- Peran Kontributor DB SQL
-
Kontrol akses berbasis peran Azure kustom dengan peran RBAC yang dilengkapi izin
Microsoft.Sql/servers/databases/operations
Tingkat kompatibilitas database baru
Tingkat kompatibilitas database yang diimpor didasarkan pada tingkat kompatibilitas database sumber.
Setelah mengimpor database, Anda bisa memilih untuk mengoperasikan database pada tingkat kompatibilitasnya saat ini atau pada tingkat yang lebih tinggi. Untuk informasi selengkapnya tentang implikasi dan opsi untuk mengoperasikan database pada tingkat kompatibilitas tertentu, lihat MENGUBAH tingkat kompatibilitas DATABASE. Untuk informasi tentang pengaturan tingkat database lain yang terkait dengan tingkat kompatibilitas, lihat MENGUBAH KONFIGURASI CAKUPAN DATABASE.
Batasan
- Mengimpor ke database di kumpulan elastis tidak didukung melalui portal Azure, Azure PowerShell, atau Azure CLI. Sebagai gantinya, buat database di kumpulan elastis lalu gunakan Impor SQLPackage, atau impor data menggunakan metode apa pun ke dalam satu database lalu pindahkan database ke kumpulan elastis.
- Layanan Ekspor Impor tidak berfungsi saat Mengizinkan akses ke layanan Azure diatur ke posisi OFF. Namun, Anda dapat mengatasi masalah dengan menjalankan SqlPackage secara manual dari VM Azure, atau melakukan ekspor langsung dalam kode Anda dengan menggunakan API DacFx.
- Impor tidak mendukung penentuan redundansi penyimpanan cadangan saat membuat database baru dan akan menggunakan redundansi penyimpanan cadangan geo-redundan default. Untuk mengatasinya, pertama-tama buat database kosong dengan redundansi penyimpanan cadangan yang diinginkan menggunakan portal Azure atau PowerShell lalu impor BACPAC ke database kosong ini.
- Penyimpanan di belakang firewall saat ini tidak didukung.
- Selama proses impor, jangan membuat database dengan nama yang sama. Proses impor membuat database baru dari nama yang ditentukan.
- Saat ini, layanan Impor/Ekspor tidak mendukung autentikasi Microsoft Entra ID saat MFA diperlukan.
- Layanan Import\Export hanya mendukung autentikasi SQL dan Microsoft Entra ID. Import\Export tidak kompatibel dengan pendaftaran aplikasi Microsoft Identity.
Alat tambahan
Anda juga bisa menggunakan wizard ini.
- Import Data-tier Application Wizard di SQL Server Management Studio.
- Asisten Impor dan Ekspor SQL Server