Partager via


Démarrer et arrêter la mise en miroir de bases de données SQL avec l’API REST Fabric

S’applique à :Base de données SQL dans Microsoft Fabric

Vous pouvez utiliser l’API REST Fabric pour démarrer et arrêter la mise en miroir d’une base de données SQL vers OneLake dans Fabric. Cet article et cet exemple de script montrent comment utiliser PowerShell pour appeler le démarrage ou l’arrêt de la mise en miroir de l’API REST Fabric.

La mise en miroir de bases de données SQL sur OneLake est toujours en cours d’exécution, par défaut. Il existe des scénarios où la mise en miroir pour la base de données SQL dans Fabric peut avoir besoin d’être arrêtée. Par exemple, pour activer la création d’index de colonne en cluster sur une table existante, qui ne peut pas être créée lors de l’exécution de la mise en miroir.

Prerequisites

Arrêter la mise en miroir de la base de données SQL vers OneLake dans Fabric

Les exemples PowerShell suivants arrêtent la mise en miroir d’une base de données SQL sur OneLake dans Fabric.

Cet exemple de script utilise Connect-AzAccount, un alias d’az login pour demander des informations d’identification. Il utilise ces informations d’identification pour obtenir un jeton d’accès à utiliser pour les appels d’API REST. SQLCMD utilise le contexte du compte qui a été donné à Connect-AzAccount.

Dans le script suivant, vous devez fournir l’ID d’espace de travail et l’ID de base de données. Les deux sont disponibles dans l’URL. https://powerbi.com/groups/<fabric_workspace_id>/sqldatabases/<fabric_sql_database_id>. La première chaîne de l’URL est l’ID de l’espace de travail Fabric, et la deuxième chaîne est l’ID de base de données SQL.

  • Remplacez <your workspace id> par votre ID d’espace de travail Fabric. Vous pouvez trouver l’ID d’un espace de travail facilement dans l’URL. En effet, il s’agit de la chaîne unique comprise entre deux caractères / après /groups/ dans votre fenêtre de navigateur.
  • Remplacez <your database id> par votre base de données SQL dans l’ID de base de données Fabric. Vous trouverez facilement l’ID de l’élément de base de données dans l’URL, il s’agit de la chaîne unique à l’intérieur de deux / caractères après /sqldatabases/ la fenêtre de votre navigateur.

Ce script illustre les points suivants :

  1. Récupérez un jeton d’accès à l’aide de Get-AzAccessToken et convertissez-le depuis une chaîne sécurisée. Si vous utilisez PowerShell 7, ConvertFrom-SecureString est également une option.
  2. Assemblez l’appel d’API.
  3. Appelez l’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)
}

Commencer la mise en miroir de la base de données SQL vers OneLake dans Fabric

Les exemples PowerShell suivants commencent à mettre en miroir une base de données SQL vers OneLake dans Fabric.

Cet exemple de script utilise Connect-AzAccount, un alias d’az login pour demander des informations d’identification. Il utilise ces informations d’identification pour obtenir un jeton d’accès à utiliser pour les appels d’API REST. SQLCMD utilise le contexte du compte qui a été donné à Connect-AzAccount.

Dans le script suivant, remplacez <your workspace id> par votre ID d’espace de travail Fabric. Vous pouvez trouver l’ID d’un espace de travail facilement dans l’URL. En effet, il s’agit de la chaîne unique comprise entre deux caractères / après /groups/ dans votre fenêtre de navigateur. Par exemple, 11aa111-a11a-1111-1abc-aa1111aaaa dans https://fabric.microsoft.com/groups/11aa111-a11a-1111-1abc-aa1111aaaa/.

Ce script illustre les points suivants :

  1. Récupérez un jeton d’accès à l’aide de Get-AzAccessToken et convertissez-le depuis une chaîne sécurisée. Si vous utilisez PowerShell 7, ConvertFrom-SecureString est également une option.
  2. Assemblez l’appel d’API.
  3. Appelez l’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)
}