Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
SqlPackage İçeri Aktarma eylemi, şema ve tablo verilerini bir BACPAC dosyasından (.bacpac) SQL Server veya Azure SQL Veritabanı'ndaki yeni veya boş bir veritabanına aktarır. var olan bir veritabanına içeri aktarma işlemi sırasında hedef veritabanı kullanıcı tanımlı şema nesnesi içeremez. Alternatif olarak, kimliği doğrulanmış kullanıcının veritabanı oluşturma izinleri olduğunda içeri aktarma eylemi tarafından yeni bir veritabanı oluşturulabilir. İçeri Aktar eylemi, SqlPackage'ın veritabanı taşınabilirlik işlevselliğinin bir parçasıdır.
Uyarı
Microsoft Entra ID, Azure Active Directory (Azure AD) içinyeni ad olsa da, mevcut ortamların kesintiye uğramasını önlemek için Azure AD yine de kullanıcı arabirimi alanları, bağlantı sağlayıcıları, hata kodları ve cmdlet'ler gibi sabit kodlanmış bazı öğelerde kalır. Bu makalede, iki ad birbirinin yerine kullanılabilir.
Uyarı
SqlPackage içeri aktarma, 200 GB'ın altındaki veritabanları için en iyi performansı gösterir. Daha büyük veritabanları için, bu makaledeki özellikleri ve SqlPackage sorunlarını giderme başlığındaki ipuçlarını kullanarak işlemi iyileştirmek veya alternatif olarak parquet dosyalarındaki veriler aracılığıyla veritabanı taşınabilirliği elde etmek isteyebilirsiniz.
Komut satırı söz dizimi
SqlPackage, komut satırında belirtilen parametreleri, özellikleri ve SQLCMD değişkenlerini kullanarak belirtilen eylemleri başlatır.
SqlPackage /Action:Import {parameters} {properties}
Gerekli parametreler
İçeri Aktar eylemi, veritabanı nesnelerini ve verilerini içeren .bacpac dosyasının adını ve konumunu belirtmek için bir SourceFile parametre gerektirir.
İçeri Aktar eylemi, SqlPackage tarafından yeni bir veritabanının oluşturulacağı veya boş bir veritabanının bulunduğu hedef bağlantı gerektirir. Bu, aşağıdakilerin bir bileşimi aracılığıyla belirtilir:
-
TargetServerNameveTargetDatabaseNameparametreleri veya -
TargetConnectionStringparametre.
Örnekler
# example import to Azure SQL Database using SQL authentication and a connection string
SqlPackage /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" \
/TargetConnectionString:"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 import using short form parameter names
SqlPackage /a:Import /tsn:"{yourserver}.database.windows.net,1433" /tdn:"AdventureWorksLT" /tu:"sqladmin" \
/tp:"{your_password}" /sf:"C:\AdventureWorksLT.bacpac"
# example import using Microsoft Entra managed identity
SqlPackage /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" \
/TargetConnectionString:"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 import connecting using Microsoft Entra username and password
SqlPackage /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" \
/TargetConnectionString:"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 import connecting using Microsoft Entra universal authentication
SqlPackage /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" /UniversalAuthentication:True \
/TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
İçeri Aktarma eylemi için parametreler
| Parameter | Kısa Form | Value | Açıklama |
|---|---|---|---|
| /AccessToken: | /at: | {string} | Hedef veritabanına bağlanırken kullanılacak belirteç tabanlı kimlik doğrulama erişim belirtecini belirtir. |
| /Action: | /a: | İthalat | Gerçekleştirilecek eylemi belirtir. |
| /AzureCloudConfig: | /acc: | {string} | Microsoft Entra Id'ye bağlanmak için özel uç noktaları şu biçimde belirtir: AzureActiveDirectoryAuthority={value}; DatabaseServicePrincipalName={value}" . |
| /Teşhis: | /d: | {Doğru|Yanlış} | Tanılama günlüğünün konsola verilip verilmediğini belirtir. Varsayılan olarak False ayarlanmıştır. |
| /DiagnosticsFile: | /df: | {string} | Tanılama günlüklerini depolamak için bir dosya belirtir. |
| /DiagnosticsLevel: | /dl | {None|Off|Critical|Error|Warning|Information|Verbose} | izleme iletilerinin filtrelenmiş tanılama dosyasında hangi düzeylerde yer alacağını belirtir |
| /DiagnosticsPackageFile: | /dpf | {string} | Tanılama paketini depolamak için bir dosya belirtir. |
| /MaxParallelism: | /mp: | {int} | Bir veritabanında çalıştırılan eşzamanlı işlemler için paralellik derecesini belirtir. Varsayılan değer 8'dir. |
| /ModelFilePath: | /mfp: | {string} | Kaynak dosyadaki model.xml geçersiz kılmak için dosya yolunu belirtir. Bu ayarın kullanılması dağıtım hatasına ve/veya istenmeyen veri kaybına neden olabilir. Bu ayar yalnızca yayımlama, içeri aktarma veya betik oluşturma sorunlarını giderirken kullanılmak üzere tasarlanmıştır. |
| /Özellikler: | /p: | {PropertyName}={Value} | eyleme özgü özellikiçin bir ad değer çifti belirtir; {PropertyName}={Value}. |
| /Sessiz: | /q: | {Doğru|Yanlış} | Ayrıntılı geri bildirimin gizlenip gizlenmeyeceğini belirtir. Varsayılan olarak False ayarlanmıştır. |
| /SourceFile: | /sf: | {string} | Yerel depolamadan eylem kaynağı olarak kullanılacak kaynak dosyayı belirtir. Bu parametre kullanılırsa, başka bir kaynak parametre geçerli olmaz. |
| /TargetConnectionString: | /tcs: | {string} | Hedef veritabanına yönelik geçerli bir SQL Server/Azure bağlantı dizesi belirtir. Bu parametre belirtilirse, yalnızca diğer tüm hedef parametrelerden kullanılmalıdır. |
| /TargetDatabaseName: | /tdn: | {string} | SqlPackage Eyleminin hedefi olan veritabanı adı için bir üstteki ayarı belirtir. |
| /HedefŞifreliBağlantı: | /tec: | {Optional|Mandatory|Strict|True|False} | Hedef veritabanı bağlantısı için SQL şifrelemesinin kullanılıp kullanılmayacağı belirtir. Varsayılan değer True'dur. |
| /TargetHostNameInCertificate: | /etnik: | {string} | İletişim katmanı TLS kullanılarak şifrelendiğinde hedef SQL Server TLS/SSL sertifikasını doğrulamak için kullanılan değeri belirtir. |
| /HedefŞifre: | /tp: | {string} | SQL Server Kimlik Doğrulama senaryoları için, hedef veritabanına erişmek için kullanılacak parolayı tanımlar. |
| /TargetServerName: | /tsn: | {string} | Hedef veritabanını barındıran sunucunun adını tanımlar. |
| /HedefZamanAşımı: | /tt: | {int} | Saniyeler içinde hedef veritabanına bağlantı kurmak için zaman aşımını belirtir. Microsoft Entra Id için bu değerin 30 saniyeden büyük veya buna eşit olması önerilir. |
| /TargetTrustServerCertificate: | /ttsc: | {Doğru|Yanlış} | TLS kullanarak hedef veritabanı bağlantısını şifreleyip güvenilirliği doğrulamak için sertifika zincirini atlayıp atlamayacağını belirtir. Varsayılan değer False'tur. |
| /TargetUser: | /tu: | {string} | SQL Server Kimlik Doğrulaması senaryoları için, hedef veritabanına erişmek için kullanılacak SQL Server kullanıcısını tanımlar. |
| /TenantId: | /tid: | {string} | Microsoft Entra kiracı kimliğini veya etki alanı adını temsil eder. Bu seçenek konuk veya içeri aktarılan Microsoft Entra kullanıcılarının yanı sıra outlook.com, hotmail.com veya live.com gibi Microsoft hesaplarını desteklemek için gereklidir. Bu parametre atlanırsa, kimliği doğrulanmış kullanıcının bu AD için yerel bir kullanıcı olduğu varsayılarak Microsoft Entra Kimliği için varsayılan kiracı kimliği kullanılır. Bu durumda, bu Microsoft Entra Kimliğinde barındırılan konuk veya içeri aktarılan kullanıcılar ve/veya Microsoft hesapları desteklenmez, işlem başarısızlıkla sonuçlanır. Daha fazla bilgi için bkz. SQL Veritabanı ve Azure Synapse Analytics ile Evrensel kimlik doğrulaması (MFA için SSMS desteği) . |
| /ThreadMaxStackSize: | /tmss: | {int} | SqlPackage eylemini çalıştıran iş parçacığı için megabayt cinsinden en büyük boyutu belirtir. Bu seçenek, yalnızca çok büyük Transact-SQL deyimlerinin ayrıştırılmasında yığın taşması (stack overflow) özel durumlarıyla karşılaşıldığında kullanılmalıdır. |
| /UniversalAuthentication: | /ua: | {Doğru|Yanlış} | Evrensel kimlik doğrulamasının kullanılıp kullanılmayacağı belirtir. True olarak ayarlandığında, MFA'yı destekleyen etkileşimli kimlik doğrulama protokolü etkinleştirilir. Bu seçenek, kullanıcının kullanıcı adını ve parolasını veya tümleşik kimlik doğrulamasını (Windows kimlik bilgileri) girmesini gerektiren etkileşimli bir protokol kullanılarak MFA olmadan Microsoft Entra kimlik doğrulaması için de kullanılabilir. /UniversalAuthentication True olarak ayarlandığında SourceConnectionString (/scs) içinde Microsoft Entra kimlik doğrulaması belirtilmez. /UniversalAuthentication False olarak ayarlandığında, Microsoft Entra kimlik doğrulaması SourceConnectionString (/scs) içinde belirtilmelidir. Daha fazla bilgi için bkz. SQL Veritabanı ve Azure Synapse Analytics ile Evrensel kimlik doğrulaması (MFA için SSMS desteği) . |
İçeri Aktarma eylemine özgü özellikler
| Mülkiyet | Value | Açıklama |
|---|---|---|
| /p: | CommandTimeout=(INT32 '60') | SQL Server'da sorgu yürütürken komut zaman aşımını saniyeler içinde belirtir. |
| /p: | DatabaseEdition=({ Temel | Standart | Premium | DataWarehouse | Genel Amaç | İş Kritiği | Hiperscale | Varsayılan } 'Varsayılan') | Azure SQL Veritabanı'nın sürümünü tanımlar. Bkz. Azure SQL Veritabanı hizmet katmanları. |
| /p: | DatabaseLockTimeout=(INT32 '60') | SQLServer'da sorgu yürütürken veritabanı kilitleme zaman aşımını saniyeler içinde belirtir. Süresiz olarak beklemek için -1 kullanın. |
| /p: | DatabaseMaximumSize=(INT32 '0') | Azure SQL Veritabanı'nın GB cinsinden en büyük boyutunu tanımlar. |
| /p: | DatabaseServiceObjective=(STRING) | Azure SQL Veritabanı'nın "P0" veya "S1" gibi performans düzeyini tanımlar. |
| /p: | VeritasarımEndekslenmesiniDevreDışıBırak=(BOOLEAN 'True') | True olduğunda (varsayılan), verileri içeri aktarmadan önce dizinleri devre dışı bırakır. False olduğunda dizinler yeniden derlenmez. |
| /p: | DisableParallelismForEnablingIndexes=(MANTIKSAL 'Yanlış') | Sql Server'a veri aktarırken dizinleri yeniden oluştururken paralellik kullanmama. |
| /p: | HashObjectNamesInLogs=(BOOLEAN 'Yanlış') | Günlüklerdeki tüm nesne adlarının rastgele bir karma değerle değiştirilip değiştirilmeyeceğini belirtir. |
| /p: | ImportContributorArguments=(STRING) | Dağıtım katkıda bulunanları için dağıtım katkıda bulunanı bağımsız değişkenlerini belirtir. Bu özellik, değerlerin noktalı virgülle ayrılmış bir listesi olmalıdır. |
| /p: | ImportContributorPaths=(STRING) | Ek içeri aktarma katkıda bulunanlarını yüklemek için yolları belirtir. Bu özellik, değerlerin noktalı virgülle ayrılmış bir listesi olmalıdır. |
| /p: | ImportContributors=(STRING) | "Bacpac içeri aktarıldığında çalışması gereken dağıtım katkıcılarını belirtir." Bu özellik, tam nitelikli yapı katkıcısının adlarının veya kimliklerinin noktalı virgülle ayrılmış bir listesi olmalıdır. |
| /p: | LongRunningCommandTimeout=(INT32 '0') | SQL Server'da sorgu yürütürken uzun süreli komut zaman aşımını saniye cinsinden belirtir. Süresiz olarak beklemek için 0 kullanın. |
| /p: | PreserveIdentityLastValues=(BOOLEAN 'False') | Kimlik sütunları için son değerlerin dağıtım sırasında korunup korunmayacağını belirtir. |
| /p: | RebuildIndexesOfflineForDataPhase=(BOOLEAN 'False') | True olduğunda, verileri SQL Server'a aktardıktan sonra dizinleri çevrimdışı olarak yeniden oluşturur. |
| /p: | Storage=({File|Memory}) | Veritabanı modelini oluştururken öğelerin nasıl depolandığını belirtir. Performans nedenleriyle varsayılan değer InMemory'dir. Büyük veritabanları için Dosya destekli depolama gereklidir. |
Sonraki Adımlar
- SqlPackage hakkında daha fazla bilgi edinin
- SqlPackage ile ilgili sorun giderme
- Azure Blob Depolama Alanı'ndan içeri aktarım