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.
Şunlar için geçerlidir:✅Microsoft Fabric'te SQL veritabanı
Bu öğreticide, Doku'daki SQL veritabanınızda SqlPackage ile çalışmayı öğreneceksiniz.
SqlPackage, veritabanı taşınabilirliği ve veritabanı dağıtımları sağlayan bir CLI'dir.
- Azure'da veya Fabric'te yönetilen bir veritabanının taşınabilirliği (içeri/dışarı aktarma), daha sonra geçirmek istediğinizde verilerinizin diğer platformlara taşınabilir olmasını sağlar. - Taşınabilirlik, bağımsız veritabanı kopyaları (
.bacpacveya.dacpacdosyaları) aracılığıyla SQL Server, Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve Fabric'teki SQL veritabanına yapılan hareketleri içerir.
SqlPackage, veritabanı nesnelerine artımlı değişikliklerin (tablolardaki yeni sütunlar, mevcut saklı yordamlarda yapılan değişiklikler vb.) kolay veritabanı dağıtımlarını da etkinleştirebilir.
- SqlPackage, veritabanındaki
.dacpacnesnelerin tanımlarını içeren bir dosyayı ayıklayabilir ve bu nesne durumunu yeni veya var olan bir.dacpacveritabanına uygulamak için bir dosya yayımlayabilir. - Yayımlama işlemi, SQL veritabanları için çevrimdışı ve daha dinamik geliştirme döngüleri sağlayan SQL projeleriyle de tümleştirilir.
Önkoşullar
- Mevcut bir Doku kapasitesine ihtiyacınız vardır. Aksi takdirde bir Fabric deneme sürümü başlatın.
- Yeni bir çalışma alanı oluşturun veya var olan bir Doku çalışma alanını kullanın.
- Doku'da var olan bir SQL veritabanı oluşturun veya kullanın. Henüz bir veritabanınız yoksa, Doku'da yeni bir SQL veritabanı oluşturun.
- .NET 8 SDK'sını yükleyin.
Ayarlama
SqlPackage, Windows, macOS ve Linux için dotnet aracı olarak kullanılabilir. Aşağıdaki komutu kullanarak yükleyebilirsiniz:
dotnet tool install --global Microsoft.SqlPackage
Genel bir dotnet aracı olarak SqlPackage, terminalinizde herhangi bir klasörde olduğu gibi sqlpackage kullanılabilir.
SqlPackage ile veritabanını içeri aktarma
, .bacpac veritabanının taşınabilir bir kopyasıdır ve bazı geçiş ve test senaryoları için kullanışlıdır. SqlPackage içeri aktarma ile bunu .bacpac boş bir SQL veritabanına aktarabilirsiniz.
Not
A .bacpac , yedekleme veya yedekleme/geri yükleme özelliklerinin yerine geçemez. SQL veritabanı yedeklemeleri hakkında daha fazla bilgi için, Microsoft Fabric'te SQL veritabanında otomatik yedeklemelere ve Microsoft Fabric'teki SQL veritabanı yedeğinden geri yüklemeye bakın.
Azure veya SQL Server ortamından bir
.bacpackullanıyorsanız, Doku T-SQL yüzey alanındaki SQL veritabanını karşılamak için kaynak veritabanını değiştirmeniz gerekebilir. SqlPackage özelliklerinin desteklenmeyen bazı nesneleri atlamalarına olanak tanıyan alternatif bir yöntem için bkz. ayıklama ve yayımlama taşınabilirliği .Doku arabirimi aracılığıyla her zamanki gibi Doku'da yeni SQL veritabanınızı oluşturun.
Ayarlardan bağlantı dizesi kopyalayın.
sqlpackage klasöründeki terminalden içeri aktarma komutunu kullanın. Sahibinizi
<servername>ve<database_name>sağlayın.sqlpackage /action:import /sourcefile:"C:\DatabaseName.bacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"- SQL veritabanı ayarları iletişim kutusundan bağlantı dizesi değiştirin.
-
sourcefiledeğerini yerel makinenizde adı (.bacpac) veDatabaseNameadıylalocationdeğiştirin.
Microsoft Fabric'teki Data Factory'de kopyalama işiyle içeri aktarma işlemini izleyin. Başlamak için Hızlı Başlangıç: Kopyalama İşi Oluşturma'ya bakın.
SqlPackage ile veritabanını dışarı aktarma
A'yı .bacpac dışarı aktarmak ters işlemdirtargetfile; burada sizin .bacpac ve öğesiniz sourceconnectionstring önceki örnekte olduğu gibi SQL veritabanı ayarları iletişim kutusunda bulunabilir. Sahibinizi <servername> ve <database_name>sağlayın. Örneğin:
sqlpackage /action:export /targetfile:"C:\DatabaseName.bacpac" /sourceconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"
Dışarı aktarma hakkında daha fazla bilgi için bkz . SqlPackage dışarı aktarma.
Ayıklama ve yayımlama
A .dacpac , kaynak veritabanındaki tablolara, saklı yordamlara ve diğer nesnelere yönelik tanımları içeren bir veritabanı şema modeli dosyasıdır. Bu dosya, SqlPackage ile var olan bir veritabanından veya bir SQL veritabanı projesinden oluşturulabilir.
SqlPackage, yeni (boş) bir veritabanına bir dağıtabilir .dacpac veya mevcut bir veritabanını istenen .dacpac durumla eşleşecek şekilde artımlı olarak güncelleştirebilir.
-
Ayıkla , mevcut bir
.dacpacveritabanından veya sql dosyaları oluşturur. -
Yayımlama bir
.dacpacveritabanına dağıtır.
SqlPackage yayımlama ve ayıklama söz dizimi, içeri/dışarı aktarma komutlarına benzer.
Uyarı
SqlPackage kullanarak bir SQL projesi veya .dacpac Doku'daki SQL veritabanına dağıtmanız önerilir. Visual Studio'dan .dacpac dağıtımı başarısızlıkla sonuçlanabilir.
Azure SQL Veritabanı, SQL Server veya Fabric'deki SQL veritabanı dışında bir platformu hedefleyen bir SQL Projesi'nden oluşturulan bir .dacpac dağıtmak için, SqlPackage yayımlama komutuna /p:AllowIncompatiblePlatform=true özelliğini ekleyin.
Taşınabilirliği ayıklama ve yayımlama
SqlPackage içeri/dışarı aktarma komutları .bacpac veri taşınabilirliğine odaklanmış olsa da, ayıklama ve yayımlama komutları .dacpac biçimiyle veri taşınabilirliğine sahiptir. Ayıklama ve yayımlama özellikleri, ayıklama ve yayımlama işlemlerinin davranışını denetlemek ve platformlar arasındaki dönüştürmeler için daha fazla esneklik sağlamak için kullanılabilir.
Bir veriyi .dacpac ve dahil etmek için /p:ExtractAllTableData=true özelliğini kullanın. Ayıklama işlemi, hem şemayı hem de kaynak veritabanındaki verileri içeren bir .dacpac oluşturur. Özellik /p:ExtractReferencedServerScopedElements=false, Fabric içindeki SQL veritabanında desteklenmeyen sunucu kapsamlı öğeleri dışlar. Aşağıdaki komut, Fabric'deki mevcut bir SQL veritabanından veri içeren bir .dacpac çıkarır.
sqlpackage /action:extract /sourceconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive" /targetfile:"C:\extracted.dacpac" /p:ExtractAllTableData=true /p:ExtractReferencedServerScopedElements=false
Verilerle ayıklanan bir.dacpac yayımlamak için ek özellik gerekmez. Ancak, yayımlama işleminin davranışını denetlemek için birkaç özellik kullanılabilir:
-
/p:AllowIncompatiblePlatform=truefarklı bir platformdan (örneğin, Azure SQL Veritabanı, SQL Server) ayıklanan bir.dacpacdağıtımına izin verir. -
/p:ExcludeObjectTypes=Logins;Users, Doku'da SQL veritabanına yayımlarken uyumluluk sorunlarıyla karşılaşabilecek nesne türlerini dışlar. Dışlanabilir nesne türlerinin tam listesi için bkz. SqlPackage yayımlama.
SqlPackage içeri aktarma komutuna benzer şekilde, Fabric platformunda bir SQL .dacpac veritabanı yayımlamadan önce veritabanını Fabric'de oluşturmanız gerekir. Veritabanını Doku portalı veya diğer Doku arabirimi aracılığıyla oluşturabilirsiniz. Aşağıdaki komut, ayıklanan .dacpac dosyasını Doku'daki boş bir SQL veritabanında yayımlar:
sqlpackage /action:publish /sourcefile:"C:\extracted.dacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive" /p:AllowIncompatiblePlatform=true /p:ExcludeObjectTypes=Logins;Users