Sdílet prostřednictvím


Spuštění a zastavení zrcadlení SQL databáze pomocí Fabric REST API

platí pro:databáze SQL v Microsoft Fabric

Můžete použít Fabric REST API ke spuštění a zastavení zrcadlení z databáze SQL do OneLake ve službě Fabric. Tento článek a ukázkový skript ukazují, jak používat PowerShell k volání Fabric REST API pro spuštění nebo zastavení zrcadlení.

Zrcadlení databáze SQL na OneLake je ve výchozím nastavení vždy spuštěné. Existují situace, kdy může být potřeba zastavit zrcadlení databáze SQL ve Fabric. Pokud chcete například povolit vytváření clusterovaných indexů sloupců v existující tabulce, které nelze vytvořit při spuštění zrcadlení.

Požadavky

Zastavení zrcadlení databáze SQL do OneLake ve Fabricu

Následující skripty PowerShellu zastaví zrcadlení SQL databáze na OneLake v averzi Fabric.

Tento ukázkový skript používá Connect-AzAccount, což je alias pro az login, k výzvě k zadání přihlašovacích údajů. Tyto přihlašovací údaje používá k získání přístupového tokenu, který se použije pro volání rozhraní REST API. SQLCMD používá kontext účtu, který byl předán Connect-AzAccount.

V následujícím skriptu musíte zadat ID pracovního prostoru a ID databáze. Obě se dají najít v adrese URL. https://powerbi.com/groups/<fabric_workspace_id>/sqldatabases/<fabric_sql_database_id>. Prvním řetězcem v adrese URL je ID pracovního prostoru Fabric a druhým řetězcem je ID databáze SQL.

  • Nahraďte <your workspace id> ID pracovního prostoru Fabric. ID pracovního prostoru můžete snadno najít v adrese URL. Jedná se o jedinečný řetězec uvnitř dvou / znaků za /groups/ oknem prohlížeče.
  • Nahraďte <your database id> vaší SQL databází v rámci identifikátoru databáze Fabric. ID položky databáze můžete snadno najít v adrese URL, jedná se o jedinečný řetězec uvnitř dvou / znaků za /sqldatabases/ oknem prohlížeče.

Tento skript ukazuje:

  1. Přístupový token načtěte pomocí Get-AzAccessToken a jej převedete ze zabezpečeného řetězce. Pokud používáte verzi PowerShell 7, ConvertFrom-SecureString je také jednou z možností.
  2. Sestavení volání rozhraní API
  3. Vyvolání volání rozhraní API
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)
}

Zahájit zrcadlení databáze SQL do OneLake ve Fabricu

Následující příklady PowerShellu spustí zrcadlení databáze SQL do OneLake v platformě Fabric.

Tento ukázkový skript používá Connect-AzAccount, což je alias pro az login, k výzvě k zadání přihlašovacích údajů. Tyto přihlašovací údaje používá k získání přístupového tokenu, který se použije pro volání rozhraní REST API. SQLCMD používá kontext účtu, který byl předán Connect-AzAccount.

V tomto skriptu nahraďte <your workspace id> za ID vašeho pracovního prostoru Fabric. ID pracovního prostoru můžete snadno najít v adrese URL. Jedná se o jedinečný řetězec uvnitř dvou / znaků za /groups/ oknem prohlížeče. Například 11aa111-a11a-1111-1abc-aa1111aaaa v https://fabric.microsoft.com/groups/11aa111-a11a-1111-1abc-aa1111aaaa/.

Tento skript ukazuje:

  1. Přístupový token načtěte pomocí Get-AzAccessToken a jej převedete ze zabezpečeného řetězce. Pokud používáte verzi PowerShell 7, ConvertFrom-SecureString je také jednou z možností.
  2. Sestavení volání rozhraní API
  3. Vyvolání volání rozhraní API
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)
}