Bagikan melalui


Parameter dan properti Ekspor SqlPackage

Tindakan Ekspor SqlPackage mengekspor database yang terhubung ke file BACPAC (.bacpac). Secara default, data untuk semua tabel akan disertakan dalam file .bacpac. Secara opsional, Anda hanya dapat menentukan subset tabel yang akan diekspor datanya. Tindakan Ekspor adalah bagian dari fungsionalitas portabilitas database SqlPackage.

Catatan

Meskipun MICROSOFT Entra ID adalah nama baru untuk Azure Active Directory (Azure AD), untuk mencegah mengganggu lingkungan yang ada, Azure AD masih tetap berada di beberapa elemen yang dikodekan secara permanen seperti bidang UI, penyedia koneksi, kode kesalahan, dan cmdlet. Dalam artikel ini, dua nama tersebut dapat dipertukarkan.

Catatan

Ekspor SqlPackage memiliki performa terbaik untuk database di bawah 200GB. Untuk database yang lebih besar, Anda mungkin ingin mengoptimalkan operasi menggunakan properti yang tersedia dalam artikel ini dan tips dalam Pemecahan Masalah dengan SqlPackage atau secara alternatif mencapai portabilitas database melalui data dalam file parket.

Sintaks baris perintah

SqlPackage memulai tindakan yang ditentukan menggunakan parameter, properti, dan variabel SQLCMD yang ditentukan pada baris perintah.

SqlPackage /Action:Export {parameters} {properties}

Parameter yang diperlukan

Tindakan Ekspor memerlukan TargetFile parameter untuk menentukan nama dan lokasi file .bacpac yang akan dibuat. Lokasi ini harus dapat ditulis oleh pengguna yang menjalankan perintah dan folder yang berisi harus ada.

Tindakan Ekspor juga mengharuskan sumber database ditentukan, baik melalui kombinasi:

  • SourceServerName dan SourceDatabaseName parameter, atau
  • parameter SourceConnectionString.

Contoh

# example export from Azure SQL Database using SQL authentication and a connection string
SqlPackage /Action:Export /TargetFile:"C:\AdventureWorksLT.bacpac" \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Persist Security Info=False;User ID=sqladmin;Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

# example export using short form parameter names, skips schema validation
SqlPackage /a:Export /ssn:"{yourserver}.database.windows.net,1433" /sdn:"AdventureWorksLT" /su:"sqladmin" \
    /sp:"{your_password}" /tf:"C:\AdventureWorksLT.bacpac" /p:VerifyExtraction=False

# example export using Microsoft Entra managed identity
SqlPackage /Action:Export /TargetFile:"C:\AdventureWorksLT.bacpac" \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Authentication=Active Directory Managed Identity;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

# example export connecting using Microsoft Entra username and password
SqlPackage /Action:Export /TargetFile:"C:\AdventureWorksLT.bacpac" \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Authentication=Active Directory Password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;User ID={yourusername};Password={yourpassword}"

# example export connecting using Microsoft Entra universal authentication
SqlPackage /Action:Export /TargetFile:"C:\AdventureWorksLT.bacpac" /UniversalAuthentication:True \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

Parameter untuk tindakan Ekspor

Parameter Formulir Pendek Nilai Deskripsi
/AccessToken: /Di: {string} Menentukan token akses autentikasi berbasis token yang akan digunakan saat menyambungkan ke database target.
/Tindakan: /J: Ekspor Menentukan tindakan yang akan dilakukan.
/AzureCloudConfig: /Acc: {string} Menentukan titik akhir kustom untuk menyambungkan ke ID Microsoft Entra dalam format: AzureActiveDirectoryAuthority={value}; DatabaseServicePrincipalName={value}" .
/Diagnostik: /D: {True|False} Menentukan apakah pembuatan log diagnostik adalah output ke konsol. Default ke False.
/DiagnosticsFile: /Df: {string} Menentukan file untuk menyimpan log diagnostik.
/MaxParallelism: /Mp: {int} Menentukan tingkat paralelisme untuk operasi bersamaan yang berjalan terhadap database. Nilai default adalah 8.
/OverwriteFiles: /of: {True|False} Menentukan apakah SqlPackage harus menimpa file yang ada. Menentukan false menyebabkan SqlPackage membatalkan tindakan jika file yang ada ditemukan. Nilai default adalah True.
/Properti: /P: {PropertyName}={Value} Menentukan pasangan nilai nama untuk properti khusus tindakan;{ PropertyName}={Value}.
/Tenang: /T: {True|False} Menentukan apakah umpan balik terperinci ditekan. Default ke False.
/Source Koneksi ionString: /Scs: {string} Menentukan string koneksi SQL Server/Azure yang valid ke database sumber. Jika parameter ini ditentukan, parameter ini akan digunakan secara eksklusif dari semua parameter sumber lainnya.
/SourceDatabaseName: /Sdn: {string} Menentukan nama database sumber.
/SourceEncrypt Koneksi ion: /Sec: {Opsional|Wajib|Ketat|Benar|False} Menentukan apakah enkripsi SQL harus digunakan untuk koneksi database sumber. Nilai default adalah True.
/SourceHostNameInCertificate: /shnic: {string} Menentukan nilai yang digunakan untuk memvalidasi sertifikat TLS/SSL SQL Server sumber saat lapisan komunikasi dienkripsi dengan menggunakan TLS.
/SourcePassword: /Sp: {string} Untuk skenario SQL Server Auth, menentukan kata sandi yang akan digunakan untuk mengakses database sumber.
/SourceServerName: /Ssn: {string} Menentukan nama server yang menghosting database sumber.
/SourceTimeout: /St: {int} Menentukan batas waktu untuk membuat koneksi ke database sumber dalam hitungan detik.
/SourceTrustServerCertificate: /stsc: {True|False} Menentukan apakah akan menggunakan TLS untuk mengenkripsi koneksi database sumber dan melewati rantai sertifikat untuk memvalidasi kepercayaan. Nilai defaultnya adalah Salah.
/SourceUser: /Su: {string} Untuk skenario SQL Server Auth, menentukan pengguna SQL Server yang akan digunakan untuk mengakses database sumber.
/TargetFile: /Tf: {string} Menentukan file target (yaitu, file .dacpac) yang akan digunakan sebagai target tindakan, bukan database. Jika parameter ini digunakan, tidak ada parameter target lain yang valid. Parameter ini tidak akan valid untuk tindakan yang hanya mendukung target database.
/TenantId: /tid: {string} Mewakili ID penyewa Atau nama domain Microsoft Entra. Opsi ini diperlukan untuk mendukung pengguna Microsoft Entra tamu atau yang diimpor serta akun Microsoft seperti outlook.com, hotmail.com, atau live.com. Jika parameter ini dihilangkan, ID penyewa default untuk ID Microsoft Entra akan digunakan, dengan asumsi bahwa pengguna yang diautentikasi adalah pengguna asli untuk penyewa ini. Namun, dalam hal ini setiap tamu atau pengguna yang diimpor dan/atau akun Microsoft yang dihosting di ID Microsoft Entra ini tidak didukung dan operasi akan gagal.
Untuk informasi selengkapnya, lihat Autentikasi universal dengan SQL Database dan Azure Synapse Analytics (dukungan SSMS untuk MFA).
/ThreadMaxStackSize: /tmss: {int} Menentukan ukuran maksimum dalam megabyte untuk utas yang menjalankan tindakan SqlPackage. Opsi ini hanya boleh digunakan saat menemukan pengecualian luapan tumpukan yang terjadi saat mengurai pernyataan Transact-SQL yang sangat besar.
/UniversalAuthentication: /Ua: {True|False} Menentukan apakah autentikasi universal harus digunakan. Ketika diatur ke True, protokol autentikasi interaktif diaktifkan mendukung MFA. Opsi ini juga dapat digunakan untuk autentikasi Microsoft Entra tanpa MFA, menggunakan protokol interaktif yang mengharuskan pengguna memasukkan nama pengguna dan kata sandi mereka atau autentikasi terintegrasi (kredensial Windows). Ketika /UniversalAuthentication diatur ke True, tidak ada autentikasi Microsoft Entra yang dapat ditentukan dalam Source Koneksi ionString (/scs). Ketika /UniversalAuthentication diatur ke False, autentikasi Microsoft Entra harus ditentukan dalam Source Koneksi ionString (/scs).
Untuk informasi selengkapnya, lihat Autentikasi universal dengan SQL Database dan Azure Synapse Analytics (dukungan SSMS untuk MFA).

Properti khusus untuk tindakan Ekspor

Properti Nilai Deskripsi
/P: CommandTimeout=(INT32 '60') Menentukan batas waktu perintah dalam detik saat menjalankan kueri terhadap SQL Server.
/P: CompressionOption=({Normal|Maksimum|Cepat|SuperFast|NotCompressed} 'Normal') Menentukan jenis pemadatan.
/P: DatabaseLockTimeout=(INT32 '60') Menentukan batas waktu penguncian database dalam hitungan detik saat menjalankan kueri terhadap SQLServer. Gunakan -1 untuk menunggu tanpa batas waktu.
/P: HashObjectNamesInLogs=(BOOLEAN 'False') Menentukan apakah akan mengganti semua nama objek dalam log dengan nilai hash acak.
/P: IgnoreIndexesStatisticsOnEnclaveEnabledColumns=(BOOLEAN 'False') Menentukan apakah indeks atau statistik pada kolom yang dienkripsi menggunakan enkripsi acak dan kunci enkripsi kolom yang diaktifkan enklave harus diabaikan (tidak disertakan dalam bacpac yang dihasilkan). Secara default (false) indeks atau statistik apa pun pada kolom yang dienkripsi menggunakan enkripsi acak dan kunci enkripsi kolom yang diaktifkan enklave akan memblokir tindakan ekspor.
/P: LongRunningCommandTimeout=(INT32 '0') Menentukan batas waktu perintah yang berjalan lama dalam hitungan detik saat menjalankan kueri terhadap SQL Server. Gunakan 0 untuk menunggu tanpa batas.
/P: Storage=({File|Memori}) Menentukan jenis penyimpanan cadangan untuk model skema yang digunakan selama ekstraksi. 'Memori' adalah default untuk versi .NET Core dari SqlPackage. 'File' hanya tersedia dan default untuk versi .NET Framework dari SqlPackage.
/P: TableData=(STRING) Menunjukkan tabel tempat data akan diekstrak. Tentukan nama tabel dengan atau tanpa tanda kurung di sekitar bagian nama dalam format berikut: schema_name.table_identifier. Properti ini dapat ditentukan beberapa kali untuk menunjukkan beberapa opsi.
/P: TargetEngineVersion=({Default|Terbaru|V11|V12} 'Terbaru') Properti ini tidak digunakan lagi dan penggunaan tidak disarankan. Menentukan versi mesin target untuk Azure SQL Database yang diharapkan.
/P: TempDirectoryForTableData=(STRING) Menentukan direktori sementara alternatif yang digunakan untuk menyangga data tabel sebelum ditulis ke file paket. Ruang yang diperlukan di lokasi ini mungkin besar dan relatif terhadap ukuran penuh database.
/P: VerifyExtraction=(BOOLEAN 'True') Menentukan apakah model skema yang diekstrak harus diverifikasi. Jika diatur ke true, aturan validasi skema dijalankan pada dacpac atau bacpac.
/P: VerifyFullTextDocumentTypesSupported=(BOOLEAN 'False') Menentukan apakah jenis dokumen teks lengkap yang didukung untuk Microsoft Azure SQL Database v12 harus diverifikasi.

Langkah berikutnya