Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Van toepassing op:✅SQL-database in Microsoft Fabric
In deze zelfstudie leert u hoe u met SqlPackage kunt werken in uw SQL-database in Fabric.
SqlPackage is een CLI die databaseportabiliteit en database-implementaties biedt.
- De draagbaarheid (import/export) van een database die wordt beheerd in Azure of in Fabric zorgt ervoor dat uw gegevens overdraagbaar zijn naar andere platforms als u later wilt migreren. - Portability omvat verplaatsing van en naar SQL Server, Azure SQL Database, Azure SQL Managed Instance en SQL-database in Fabric via zelfstandige databasekopieën (
.bacpacof.dacpacbestanden).
SqlPackage kan ook eenvoudige database-implementaties van incrementele wijzigingen in databaseobjecten mogelijk maken (nieuwe kolommen in tabellen, wijzigingen in bestaande opgeslagen procedures, enzovoort).
- SqlPackage kan een
.dacpacbestand met de definities van objecten in een database extraheren en een.dacpacbestand publiceren om die objectstatus toe te passen op een nieuwe of bestaande database. - De publicatiebewerking kan ook worden geïntegreerd met SQL-projecten, waardoor offline en dynamischere ontwikkelingscycli voor SQL-databases mogelijk zijn.
Vereisten
- U hebt een bestaande infrastructuurcapaciteit nodig. Als u dat niet doet, start u een Fabric-proefversie.
- Maak een nieuwe werkruimte of gebruik een bestaande Fabric-werkruimte.
- Maak of gebruik een bestaande SQL-database in Fabric. Als u er nog geen hebt, maakt u een nieuwe SQL-database in Fabric.
- Installeer de .NET 8 SDK.
Instellingen
SqlPackage is beschikbaar voor Windows, macOS en Linux als een dotnet-hulpprogramma. U kunt deze installeren met behulp van de volgende opdracht:
dotnet tool install --global Microsoft.SqlPackage
Als globaal dotnet-hulpprogramma is SqlPackage beschikbaar in uw terminal, net als sqlpackage in elke map.
Een database importeren met SqlPackage
A .bacpac is een draagbare kopie van een database, handig voor sommige migratie- en testscenario's. U kunt deze .bacpac in een lege SQL-database met SqlPackage-import.
Notitie
Een .bacpac is geen back-up of een vervanger van capaciteiten voor back-up/herstel. Zie Automatische back-ups in SQL Database in Microsoft Fabric en Herstellen vanuit een back-up in SQL Database in Microsoft Fabric in Microsoft Fabric voor meer informatie over back-ups voor SQL Database in Fabric.
Als u een
.bacpacuit een omgeving van Azure of SQL Server gebruikt, moet u mogelijk de brondatabase wijzigen zodat het voldoet aan de SQL-database op het T-SQL-oppervlaktegebied van Fabric. Zie extraheren en publiceren van draagbaarheid voor een alternatieve methode waarmee SqlPackage-eigenschappen bepaalde niet-ondersteunde objecten kunnen overslaan.Maak uw nieuwe SQL-database in Fabric zoals gebruikelijk via de Fabric-interface.
Kopieer de verbindingsreeks uit instellingen.
Gebruik de opdracht importeren vanuit terminal in de map sqlpackage. Geef uw eigenaar
<servername>en<database_name>.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"- Vervang uw verbindingsreeks in het dialoogvenster sql-databaseinstellingen.
- Vervang de
sourcefilewaarde door de.bacpacnaam (DatabaseName) enlocationop uw lokale computer.
Volg het importeren met een kopieertaak in Data Factory in Microsoft Fabric. Zie Quickstart: Een kopieertaak maken om aan de slag te gaan.
Een database exporteren met SqlPackage
Het exporteren van een .bacpac is de omgekeerde bewerking, waar u targetfile een .bacpac en uw sourceconnectionstring kunt vinden in het dialoogvenster sql-databaseinstellingen, zoals in het vorige voorbeeld. Geef uw eigenaar <servername> en <database_name>. Voorbeeld:
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"
Zie SqlPackage-export voor meer informatie over exporteren.
Extraheren en publiceren
Een .dacpac is een databaseschemamodelbestand met definities voor de tabellen, opgeslagen procedures en andere objecten in de brondatabase. Dit bestand kan worden gemaakt op basis van een bestaande database met SqlPackage of vanuit een SQL-databaseproject.
SqlPackage kan een .dacpac nieuwe (lege) database implementeren of een bestaande database incrementeel bijwerken zodat deze overeenkomt met de gewenste .dacpac status.
-
Extraheren maakt een
.dacpacof SQL-bestanden uit een bestaande database. -
Hiermee wordt een
.dacpacimplementatie naar een database geïmplementeerd.
De SqlPackage publiceren en syntaxis extraheren is vergelijkbaar met de import-/exportopdrachten.
Waarschuwing
Het gebruik van SqlPackage voor het implementeren van een SQL-project of .dacpac in SQL Database in Fabric wordt aanbevolen. Het implementeren van een .dacpac vanuit Visual Studio is mogelijk mislukt.
Als u een .dacpac wilt implementeren die is gemaakt op basis van Azure SQL Database, SQL Server of een SQL-project dat is gericht op een ander platform dan SQL Database in Fabric, voegt u de eigenschap /p:AllowIncompatiblePlatform=true toe aan de opdracht SqlPackage Publish.
Portabiliteit extraheren en publiceren
Hoewel de sqlPackage-opdrachten voor importeren/exporteren gericht zijn op gegevensportabiliteit met de .bacpac indeling, zijn de opdrachten voor extraheren en publiceren geschikt voor gegevensoverdracht met de .dacpac indeling. Eigenschappen extraheren en publiceren kunnen worden gebruikt om het gedrag van de extract- en publicatiebewerkingen te beheren en om meer flexibiliteit te bieden voor conversies tussen platforms.
Gebruik de eigenschap om een .dacpac gegevens te extraheren en op te nemen. Met de extractiebewerking wordt een .dacpac bewerking gemaakt die zowel het schema als de gegevens uit de brondatabase bevat. De eigenschap /p:ExtractReferencedServerScopedElements=false sluit elementen met serverbereik uit, die niet worden ondersteund in SQL Database in Fabric. Met de volgende opdracht wordt een .dacpac met gegevens uit een bestaande SQL-database in Fabric geëxtraheerd:
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
Voor het publiceren van een .dacpac die is geëxtraheerd met de gegevens, zijn er geen extra eigenschappen vereist. Er kunnen echter verschillende eigenschappen worden gebruikt om het gedrag van de publicatiebewerking te bepalen:
-
/p:AllowIncompatiblePlatform=truestaat de implementatie toe van een.dacpacplatform dat is geëxtraheerd vanaf een ander platform (bijvoorbeeld Azure SQL Database, SQL Server). -
/p:ExcludeObjectTypes=Logins;Userssluit objecttypen uit die compatibiliteitsproblemen kunnen ondervinden bij het publiceren naar SQL Database in Fabric. Zie SqlPackage publish voor een volledige lijst met objecttypen die kunnen worden uitgesloten.
Net als bij de SqlPackage-importopdracht moet u, voordat u een .dacpac SQL-database in Fabric publiceert, eerst de database in Fabric maken. U kunt de database maken via de Fabric-portal of een andere Fabric-interface. Met de volgende opdracht wordt de geëxtraheerde .dacpac naar een lege SQL-database in Fabric gepubliceerd:
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