Delen via


SQL-databasespiegeling starten en stoppen met de Fabric REST API

Van toepassing op:SQL-database in Microsoft Fabric

U kunt de REST API van Fabric gebruiken om spiegeling van een SQL-database naar de OneLake in Fabric te starten en stoppen. In dit artikel en voorbeeldscript ziet u hoe u PowerShell kunt gebruiken om de REST API van Fabric aan te roepen voor het starten of stoppen van spiegeling.

SQL-databasespiegeling naar OneLake wordt standaard altijd uitgevoerd. Er zijn scenario's waarin spiegeling voor SQL Database in Fabric mogelijk moet worden gestopt. Als u bijvoorbeeld het maken van geclusterde kolomindexen voor een bestaande tabel wilt inschakelen, die niet kunnen worden gemaakt wanneer spiegeling wordt uitgevoerd.

Vereiste voorwaarden

Het spiegelen van een SQL-database naar OneLake in Fabric stoppen

De volgende PowerShell-voorbeelden stoppen met het spiegelen van een SQL-database naar OneLake in Fabric.

In dit voorbeeldscript wordt Connect-AzAccount gebruikt als een alias van az login om om referenties te vragen. Deze referenties worden gebruikt om een toegangstoken te verkrijgen dat moet worden gebruikt voor de REST API-aanroepen. SQLCMD maakt gebruik van de context van het account dat is gegeven aan Connect-AzAccount.

In het volgende script moet u de werkruimte-id en database-id opgeven. Beide zijn te vinden in de URL. https://powerbi.com/groups/<fabric_workspace_id>/sqldatabases/<fabric_sql_database_id>. De eerste tekenreeks in de URL is de Fabric-werkruimte-id en de tweede tekenreeks is de SQL-database-id.

  • Vervang <your workspace id> door de ID van uw Fabric-werkruimte. U kunt de id van een werkruimte gemakkelijk vinden in de URL. Dit is de unieke tekenreeks binnen twee / tekens na /groups/ in uw browservenster.
  • Vervang <your database id> door uw SQL-database in Fabric-database-ID. U kunt de id van het database-item gemakkelijk vinden in de URL. Dit is de unieke tekenreeks binnen twee / tekens na /sqldatabases/ in uw browservenster.

Dit script demonstreert:

  1. Haal een toegangstoken op met behulp van Get-AzAccessToken en converteer het vanuit een beveiligde tekenreeks. Als u PowerShell 7 gebruikt, is ConvertFrom-SecureString- ook een optie.
  2. Api-aanroep samenstellen.
  3. Api-aanroep aanroepen.
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)
}

Beginnen met spiegelen van SQL-database naar OneLake in Fabric

In de volgende PowerShell-voorbeelden wordt het spiegelen van een SQL-database naar OneLake in Fabric gestart.

In dit voorbeeldscript wordt Connect-AzAccount gebruikt als een alias van az login om om referenties te vragen. Deze referenties worden gebruikt om een toegangstoken te verkrijgen dat moet worden gebruikt voor de REST API-aanroepen. SQLCMD maakt gebruik van de context van het account dat is gegeven aan Connect-AzAccount.

Vervang in het volgende script <your workspace id> door uw Fabric-werkruimte-ID. U kunt de id van een werkruimte gemakkelijk vinden in de URL. Dit is de unieke tekenreeks binnen twee / tekens na /groups/ in uw browservenster. Bijvoorbeeld 11aa111-a11a-1111-1abc-aa1111aaaa in https://fabric.microsoft.com/groups/11aa111-a11a-1111-1abc-aa1111aaaa/.

Dit script demonstreert:

  1. Haal een toegangstoken op met behulp van Get-AzAccessToken en converteer het vanuit een beveiligde tekenreeks. Als u PowerShell 7 gebruikt, is ConvertFrom-SecureString- ook een optie.
  2. Api-aanroep samenstellen.
  3. Api-aanroep aanroepen.
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)
}