Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
si applica a:✅database SQL in Microsoft Fabric
È possibile usare l'API REST di Fabric per avviare e arrestare il mirroring da un database SQL a OneLake in Fabric. Questo articolo e uno script di esempio illustrano come usare PowerShell per chiamare l'API REST di Fabric per avviare o interrompere il mirroring.
Il mirroring del database SQL in OneLake è sempre in esecuzione, per impostazione predefinita. Esistono scenari in cui potrebbe essere necessario arrestare il mirroring per il database SQL in Fabric. Ad esempio, per abilitare la creazione di indici di colonne cluster su una tabella esistente, i quali non possono essere creati durante l'esecuzione del mirroring.
Prerequisiti
- È necessaria una capacità di Fabric esistente. Se non lo fai, avvia una versione di prova di Fabric.
- È possibile usare un'area di lavoro esistente o creare una nuova area di lavoro infrastruttura.
- Per creare un database SQL, è necessario essere membri dei ruoli Amministratore o Membro per l'area di lavoro .
- Installare la versione golang di SQLCMD. Eseguire
winget install sqlcmdin Windows per l'installazione. Per altri sistemi operativi, vedere aka.ms/go-sqlcmd. - PowerShell 5.1 o PowerShell 7.4 e versioni successive
- Modulo Az PowerShell. Eseguire
Install-Module azin PowerShell per l'installazione.
Interrompere il processo di mirroring del database SQL verso OneLake in Fabric
Gli esempi di PowerShell seguenti arrestano il mirroring di un database SQL in OneLake in Fabric.
Questo script di esempio usa Connect-AzAccount, un alias di az login per richiedere le credenziali. Usa queste credenziali per ottenere un token di accesso da usare per le chiamate API REST. SQLCMD usa il contesto dell'account assegnato a Connect-AzAccount.
Nello script seguente è necessario specificare l'ID e l'ID database dell'area di lavoro. Entrambi sono disponibili nell'URL.
https://powerbi.com/groups/<fabric_workspace_id>/sqldatabases/<fabric_sql_database_id>. La prima stringa dell'URL è l'ID dell'area di lavoro Fabric e la seconda è l'ID del database SQL.
- Sostituire
<your workspace id>con l'ID dell'area di lavoro Fabric. È possibile trovare facilmente l'ID di un'area di lavoro nell'URL, ovvero la stringa univoca all'interno di due/caratteri dopo/groups/nella finestra del browser. - Sostituire
<your database id>con il database SQL nell'ID del database Fabric. È possibile trovare facilmente l'ID dell'elemento di database nell'URL, ovvero la stringa univoca all'interno di due/caratteri dopo/sqldatabases/nella finestra del browser.
Questo script illustra:
- Recupera un token di accesso usando Get-AzAccessToken e converti il token da una stringa protetta. Se si usa PowerShell 7, ConvertFrom-SecureString è anche un'opzione.
- Assemblare la chiamata API.
- Richiamare la chiamata 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)
}
Avviare la replicazione del database SQL su OneLake in Fabric
Gli esempi di PowerShell seguenti avviano il mirroring di un database SQL in OneLake in Fabric.
Questo script di esempio usa Connect-AzAccount, un alias di az login per richiedere le credenziali. Usa queste credenziali per ottenere un token di accesso da usare per le chiamate API REST. SQLCMD usa il contesto dell'account assegnato a Connect-AzAccount.
Nel seguente script, sostituire <your workspace id> con l'ID dell'area di lavoro Fabric. È possibile trovare facilmente l'ID di un'area di lavoro nell'URL, ovvero la stringa univoca all'interno di due / caratteri dopo /groups/ nella finestra del browser. Ad esempio, 11aa111-a11a-1111-1abc-aa1111aaaa in https://fabric.microsoft.com/groups/11aa111-a11a-1111-1abc-aa1111aaaa/.
Questo script illustra:
- Recupera un token di accesso usando Get-AzAccessToken e converti il token da una stringa protetta. Se si usa PowerShell 7, ConvertFrom-SecureString è anche un'opzione.
- Assemblare la chiamata API.
- Richiamare la chiamata 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)
}