Mengekspor ke file BACPAC - Azure SQL Database dan Azure SQL Managed Instance
Berlaku untuk: Azure SQL Database Azure SQL Managed Instance
Ketika Anda perlu mengekspor database untuk pengarsipan atau untuk pemindahan ke platform lain, Anda dapat mengekspor skema database dan data ke file BACPAC. File BACPAC adalah file ZIP dengan ekstensi BACPAC yang berisi metadata dan data dari database. File BACPAC dapat disimpan di penyimpanan Azure Blob atau di penyimpanan lokal di lokasi lokal dan kemudian diimpor kembali ke Azure SQL Database, Azure SQL Managed Instance, atau SQL Server Instance.
Pertimbangan
Agar ekspor konsisten secara transaksional, Anda harus memastikan bahwa tidak ada aktivitas tulis yang terjadi selama ekspor, atau bahwa Anda mengekspor dari salinan database Anda yang konsisten secara transaksional.
Jika Anda mengekspor ke penyimpanan blob, ukuran maksimum file BACPAC adalah 200 GB. Untuk mengarsipkan file BACPAC yang lebih besar, ekspor ke penyimpanan lokal dengan SqlPackage.
Nama file Azure Storage tidak dapat diakhir dengan
.
dan tidak boleh berisi karakter khusus seperti karakter spasi atau<
,>
,*
,%
,&
,:
,\
, ,/
.?
Panjang nama file harus kurang dari 128 karakter.Jika operasi ekspor melebihi 20 jam, mungkin operasi tersebut dibatalkan. Untuk meningkatkan performa selama ekspor, Anda dapat:
- Meningkatkan ukuran komputasi Anda untuk sementara waktu.
- Menghentikan semua aktivitas baca dan tulis selama ekspor.
- Gunakan indeks berkluster dengan nilai bukan nol pada semua tabel besar. Tanpa indeks berkluster, mungkin ekspor akan gagal jika memakan waktu lebih dari 6-12 jam. Ini karena layanan ekspor perlu menyelesaikan pemindaian tabel untuk mencoba mengekspor seluruh tabel. Cara yang baik untuk menentukan apakah tabel Anda dioptimalkan untuk ekspor adalah dengan menjalankan
DBCC SHOW_STATISTICS
dan memastikan bahwa RANGE_HI_KEY tidak null dan nilainya memiliki distribusi yang baik. Untuk detailnya, lihat DBCC SHOW_STATISTICS.
Untuk database yang lebih besar, ekspor/impor BACPAC mungkin memakan waktu lama, dan mungkin gagal karena berbagai alasan.
Catatan
BACPAC tidak dimaksudkan untuk digunakan guna operasi pencadangan dan pemulihan. Azure secara otomatis membuat cadangan untuk setiap database pengguna. Untuk detailnya, lihat Gambaran umum kelangsungan bisnis dan Pencadangan otomatis di Azure SQL Database atau Pencadangan otomatis di Azure SQL Managed Instance.
Catatan
Impor dan Ekspor menggunakan Private Link dalam pratinjau.
Portal Microsoft Azure
Mengekspor BACPAC database dari Azure SQL Managed Instance menggunakan portal Azure saat ini tidak didukung. Lihat Pertimbangan.
Catatan
Komputer yang memproses permintaan impor/ekspor yang diajukan melalui portal Microsoft 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 SqlPackage pada komputer dengan ruang disk lokal yang cukup. Kami mendorong penggunaan SQLPackage untuk mengimpor/mengekspor database yang lebih besar dari 150 GB untuk menghindari masalah ini.
Untuk mengekspor database menggunakan portal Microsoft Azure, buka halaman database Anda dan pilih Ekspor pada toolbar.
Tentukan nama file BACPAC, pilih akun penyimpanan Azure dan kontainer yang ada untuk ekspor, lalu berikan informasi masuk yang sesuai untuk akses ke database sumber. Login admin SQL Server diperlukan di sini meskipun Anda adalah admin Azure, karena menjadi admin Azure tidak sama dengan memiliki izin admin di Azure SQL Database atau Azure SQL Managed Instance.
Pilih OK.
Untuk memantau kemajuan operasi ekspor, buka halaman untuk server yang berisi database yang sedang diekspor. Di bagian Manajemen data, pilih Impor/Ekspor riwayat.
Utilitas SQLPackage
Kami merekomendasikan penggunaan utilitas SQLPackage untuk skala dan performa di sebagian besar lingkungan produksi. Anda dapat menjalankan beberapa perintah SqlPackage secara paralel untuk subset tabel guna mempercepat operasi impor/ekspor.
Untuk mengekspor database di SQL Database menggunakan utilitas baris perintah SQLPackage, lihat Parameter dan properti ekspor. Utilitas SQLPackage tersedia untuk Windows, macOS, dan Linux.
Contoh ini menunjukkan cara mengekspor database menggunakan SqlPackage dengan Autentikasi Universal Direktori Aktif:
SqlPackage /a:Export /tf:testExport.BACPAC /scs:"Data Source=apptestserver.database.windows.net;Initial Catalog=MyDB;" /ua:True /tid:"apptest.onmicrosoft.com"
Azure Data Studio
Azure Data Studio adalah alat sumber terbuka gratis dan tersedia untuk Windows, Mac, dan Linux. Ekstensi "SQL Server dacpac" menyediakan antarmuka wizard ke operasi SqlPackage termasuk ekspor dan impor. Untuk informasi selengkapnya tentang menginstal dan menggunakan ekstensi, lihat Ekstensi dacpac SQL Server.
SQL Server Management Studio (SSMS)
SQL Server Management Studio menyediakan wizard untuk mengekspor database di Azure SQL Database atau database SQL Managed Instance ke file BACPAC. Lihat Ekspor Aplikasi Tahap Data.
PowerShell
Mengekspor BACPAC database dari Azure SQL Managed Instance menggunakan PowerShell tidak didukung. Lihat Pertimbangan.
Gunakan cmdlet New-AzSqlDatabaseExport untuk mengirimkan permintaan database ekspor ke layanan Azure SQL Database. Bergantung pada ukuran database Anda, operasi ekspor mungkin membutuhkan waktu untuk diselesaikan.
$exportRequest = New-AzSqlDatabaseExport -ResourceGroupName $ResourceGroupName -ServerName $ServerName `
-DatabaseName $DatabaseName -StorageKeytype $StorageKeytype -StorageKey $StorageKey -StorageUri $BacpacUri `
-AdministratorLogin $creds.UserName -AdministratorLoginPassword $creds.Password
Untuk memeriksa status permintaan ekspor, gunakan cmdlet Get-AzSqlDatabaseImportExportStatus. Menjalankan cmdlet ini segera setelah permintaan biasanya menampilkan Status: InProgress. Saat Anda melihat Status: Berhasil ekspor selesai.
$exportStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $exportRequest.OperationStatusLink
[Console]::Write("Exporting")
while ($exportStatus.Status -eq "InProgress")
{
Start-Sleep -s 10
$exportStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $exportRequest.OperationStatusLink
[Console]::Write(".")
}
[Console]::WriteLine("")
$exportStatus
Batalkan permintaan ekspor
Gunakan Operasi Database - Batalkan API atau perintah Powershell Stop-AzSqlDatabaseActivity untuk membatalkan permintaan ekspor. Berikut adalah contoh perintah PowerShell:
Stop-AzSqlDatabaseActivity -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName -OperationId $Operation.OperationId
Catatan
Untuk membatalkan operasi ekspor, Anda harus memiliki salah satu peran berikut:
- Peran Kontributor SQL DB atau
- Peran Azure RBAC kustom dengan
Microsoft.Sql/servers/databases/operations
izin
Batasan
- Mengekspor file BACPAC ke penyimpanan premium Azure menggunakan metode yang dibahas dalam artikel ini tidak didukung.
- Penyimpanan di belakang firewall saat ini tidak didukung.
- Penyimpanan yang tidak diubah saat ini tidak didukung.
- Azure SQL Managed Instance saat ini tidak mendukung ekspor database ke file BACPAC menggunakan portal Azure atau Azure PowerShell. Untuk mengekspor instans terkelola ke dalam file BACPAC, gunakan SQL Server Management Studio (SSMS) atau SQLPackage.
- Saat ini, layanan Impor/Ekspor tidak mendukung autentikasi ID Microsoft Entra saat MFA diperlukan.
- Layanan Import\Export hanya mendukung autentikasi SQL dan ID Microsoft Entra. Import\Export tidak kompatibel dengan pendaftaran aplikasi Microsoft Identity.
Konten terkait
- Untuk mempelajari tentang penyimpanan cadangan jangka panjang dari satu database dan database terkumpul sebagai alternatif untuk mengekspor database untuk tujuan arsip, lihat Penyimpanan cadangan jangka panjang. Anda dapat menggunakan pekerjaan Agen SQL untuk menjadwalkan hanya salin cadangan database sebagai alternatif untuk LTR di luar 35 hari.
- Untuk mempelajari tentang mengimpor BACPAC ke database SQL Server, lihat Mengimpor BACPAC ke database SQL Server.
- Untuk mempelajari tentang mengekspor BACPAC dari database SQL Server, lihat Mengekspor Aplikasi Tahap Data
- Untuk mempelajari tentang menggunakan Layanan Migrasi Data untuk melakukan migrasi database, lihat Migrasi dari SQL Server ke Azure SQL Database offline menggunakan DMS.
- Jika Anda mengekspor dari SQL Server sebagai pendahuluan migrasi ke Azure SQL Database, lihat Memigrasikan database SQL Server ke Azure SQL Database.
- Untuk mempelajari cara mengelola dan berbagi kunci penyimpanan dan tanda tangan akses bersama dengan aman, lihat Rekomendasi keamanan untuk penyimpanan Blob.