Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Gjelder for:✅SQL-database i Microsoft Fabric
Du kan bruke Fabric REST API til å starte og stoppe speiling fra en SQL-database til OneLake i Fabric. Denne artikkelen og eksempelskriptet viser hvordan du bruker PowerShell til å kalle Fabric REST API start eller stopp speiling.
SQL-databasespeiling til OneLake kjører alltid som standard. Det finnes scenarioer der speiling for SQL-database i Fabric kanskje må stoppes. Du kan for eksempel aktivere oppretting av grupperte kolonneindekser i en eksisterende tabell, som ikke kan opprettes når speiling kjører.
Forutsetning
- Du trenger en eksisterende stoffkapasitet. Hvis du ikke gjør det, kan du starte en fabric-prøveversjon.
- Du kan bruke et eksisterende arbeidsområde eller opprette et nytt Fabric-arbeidsområde.
- Du må være medlem av administrator- eller medlemsrollene for arbeidsområdet for å kunne opprette en SQL-database.
- Installer golang-versjonen av SQLCMD. Kjør
winget install sqlcmdWindows for å installere. Hvis du vil ha andre operativsystemer, kan du se aka.ms/go-sqlcmd. - PowerShell 5.1 eller PowerShell 7.4 og nyere
- Az PowerShell-modulen. Kjør
Install-Module azi PowerShell for å installere.
Stopp speiling av SQL-database til OneLake i Fabric
Følgende PowerShell-eksempler stopper speiling av en SQL-database til OneLake i Fabric.
Dette eksempelskriptet bruker Connect-AzAccountet alias az login for å be om legitimasjon. Den bruker denne legitimasjonen til å hente et tilgangstoken som skal brukes for REST-API-kall. SQLCMD bruker konteksten for kontoen som ble gitt til Connect-AzAccount.
I skriptet nedenfor må du angi arbeidsområde-ID-en og database-ID-en. Begge finner du i URL-en.
https://powerbi.com/groups/<fabric_workspace_id>/sqldatabases/<fabric_sql_database_id>. Den første strengen i nettadressen er arbeidsområde-ID-en for strukturområdet, og den andre strengen er SQL-database-ID-en.
- Erstatt
<your workspace id>med ID-en for Fabric-arbeidsområdet. Du kan enkelt finne ID-en for et arbeidsområde i nettadressen, det er den unike strengen i to/tegn etter/groups/i nettleservinduet. - Erstatt
<your database id>med SQL-databasen i Strukturdatabase-ID. Du kan enkelt finne ID-en til databaseelementet i URL-en, det er den unike strengen i to/tegn etter/sqldatabases/i nettleservinduet.
Dette skriptet demonstrerer:
- Hent et tilgangstoken ved hjelp av Get-AzAccessToken og konvertere det fra en sikker streng. Hvis du bruker PowerShell 7, er ConvertFrom-SecureString også et alternativ.
- Sett sammen API-kall.
- Påkall API-kall.
Import-Module Az.Accounts
az login
$workspaceid = '<your workspace id>' # Find in the URL
$databaseid = '<your database id>' # Find in the URL
$headers = $null
# 1. Get the access token and add it to the headers
$access_token = (Get-AzAccessToken -AsSecureString -ResourceUrl https://api.fabric.microsoft.com)
$ssPtr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($access_token.Token)
try {
$headers = @{
Authorization = $access_token.Type + ' ' + ([System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ssPtr))
}
$access_token.UserId -match('^[^@]+') | Out-Null
$stopMirroringUri = "https://api.fabric.microsoft.com/v1/workspaces/$workspaceid/sqlDatabases/$databaseid/stopMirroring"
$parameters = @{
Method="Post"
Headers=$headers
Uri = $stopMirroringUri
}
Invoke-RestMethod @parameters -ErrorAction Stop
} finally {
# The following lines ensure that sensitive data is not left in memory.
$headers = [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr)
}
Begynn å speile SQL-databasen til OneLake i Fabric
Følgende PowerShell-eksempler starter speiling av en SQL-database til OneLake i Fabric.
Dette eksempelskriptet bruker Connect-AzAccountet alias az login for å be om legitimasjon. Den bruker denne legitimasjonen til å hente et tilgangstoken som skal brukes for REST-API-kall. SQLCMD bruker konteksten for kontoen som ble gitt til Connect-AzAccount.
Erstatt <your workspace id> med ID-en for fabric-arbeidsområdet i skriptet nedenfor. Du kan enkelt finne ID-en for et arbeidsområde i nettadressen, det er den unike strengen i to / tegn etter /groups/ i nettleservinduet. Eksempel: 11aa111-a11a-1111-1abc-aa1111aaaa i https://fabric.microsoft.com/groups/11aa111-a11a-1111-1abc-aa1111aaaa/.
Dette skriptet demonstrerer:
- Hent et tilgangstoken ved hjelp av Get-AzAccessToken og konvertere det fra en sikker streng. Hvis du bruker PowerShell 7, er ConvertFrom-SecureString også et alternativ.
- Sett sammen API-kall.
- Påkall API-kall.
Import-Module Az.Accounts
az login
$workspaceid = '<your workspace id>' # Find in the URL
$databaseid = '<your database id>' # Find in the URL
$headers = $null
# 1. Get the access token and add it to the headers
$access_token = (Get-AzAccessToken -AsSecureString -ResourceUrl https://api.fabric.microsoft.com)
$ssPtr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($access_token.Token)
try {
$headers = @{
Authorization = $access_token.Type + ' ' + ([System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ssPtr))
}
$access_token.UserId -match('^[^@]+') | Out-Null
$startMirroringUri = "https://api.fabric.microsoft.com/v1/workspaces/$workspaceid/sqlDatabases/$databaseid/startMirroring"
$parameters = @{
Method="Post"
Headers=$headers
Uri = $startMirroringUri
}
Invoke-RestMethod @parameters -ErrorAction Stop
} finally {
# The following lines ensure that sensitive data is not left in memory.
$headers = [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr)
}