Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:✅SQL-Datenbank in Microsoft Fabric
Sie können die Fabric-REST-API verwenden, um die Spiegelung aus einer SQL-Datenbank auf oneLake in Fabric zu starten und zu beenden. In diesem Artikel und Beispielskript wird veranschaulicht, wie PowerShell zum Aufrufen des Fabric-REST-API-Starts oder Beenden der Spiegelung verwendet wird.
Sql-Datenbankspiegelung auf OneLake wird standardmäßig immer ausgeführt. Es gibt Szenarien, in denen die Spiegelung für SQL-Datenbank in Fabric beendet werden muss. Wenn Sie beispielsweise die Erstellung gruppierter Spaltenindizes für eine vorhandene Tabelle aktivieren möchten, die beim Ausführen der Spiegelung nicht erstellt werden kann.
Voraussetzungen
- Sie benötigen eine vorhandene Fabric-Kapazität. Falls dies nicht der Fall ist, können Sie eine Fabric-Testversion starten.
- Sie können einen vorhandenen Arbeitsbereich verwenden oder einen Neuen Fabric-Arbeitsbereich erstellen.
- Sie müssen Mitglied der Administrator- oder Mitgliedsrollen für den Arbeitsbereich sein, um eine SQL-Datenbank zu erstellen.
- Installieren Sie die Golang-Version von SQLCMD. Führen Sie
winget install sqlcmdunter Windows aus, um die Installation auszuführen. Weitere Betriebssysteme finden Sie unter aka.ms/go-sqlcmd. - PowerShell 5.1 oder PowerShell 7.4 und höher
- Das Az PowerShell-Modul. Führen Sie
Install-Module azin PowerShell aus, um die Installation auszuführen.
Beenden der Spiegelung der SQL-Datenbank in OneLake in Fabric
In den folgenden PowerShell-Beispielen wird die Spiegelung einer SQL-Datenbank auf die OneLake in Fabric beendet.
Dieses Beispielskript verwendet Connect-AzAccount, einen Alias von az login, um zur Eingabe von Anmeldeinformationen aufzufordern. Sie verwendet diese Anmeldeinformationen, um ein Zugriffstoken abzurufen, das für die REST-API-Aufrufe verwendet werden soll. SQLCMD verwendet den Kontext des Kontos, der für Connect-AzAccount angegeben wurde.
Im folgenden Skript müssen Sie die Arbeitsbereichs-ID und datenbank-ID angeben. Beide finden Sie in der URL.
https://powerbi.com/groups/<fabric_workspace_id>/sqldatabases/<fabric_sql_database_id>. Die erste Zeichenfolge in der URL ist die Fabric-Arbeitsbereichs-ID, und die zweite Zeichenfolge ist die SQL-Datenbank-ID.
- Ersetzen Sie
<your workspace id>durch Ihre Fabric-Arbeitsbereichs-ID. Sie können die ID eines Arbeitsbereichs ganz einfach in der URL finden; es ist die eindeutige Zeichenfolge innerhalb von zwei/-Zeichen nach/groups/in Ihrem Browserfenster. - Ersetzen Sie
<your database id>durch Ihre SQL-Datenbank in der Fabric-Datenbank-ID. Sie können die ID des Datenbankelements ganz einfach in der URL finden, es ist die eindeutige Zeichenfolge innerhalb von zwei/Zeichen nach/sqldatabases/dem Browserfenster.
Dieses Skript veranschaulicht Folgendes:
- Rufen Sie mithilfe von Get-AzAccessToken ein Zugriffstoken ab, und konvertieren Sie es aus einer sicheren Zeichenfolge. Bei Verwendung von PowerShell 7 ist ConvertFrom-SecureString ebenfalls eine Option.
- Api-Aufruf zusammenstellen.
- API-Aufruf auslösen.
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)
}
Spiegelung der SQL-Datenbank in OneLake in Fabric starten
In den folgenden PowerShell-Beispielen wird die Spiegelung einer SQL-Datenbank auf OneLake in Fabric gestartet.
Dieses Beispielskript verwendet Connect-AzAccount, einen Alias von az login, um zur Eingabe von Anmeldeinformationen aufzufordern. Sie verwendet diese Anmeldeinformationen, um ein Zugriffstoken abzurufen, das für die REST-API-Aufrufe verwendet werden soll. SQLCMD verwendet den Kontext des Kontos, der für Connect-AzAccount angegeben wurde.
Ersetzen Sie im folgenden Skript <your workspace id> durch Ihre Fabric-Arbeitsbereichs-ID. Sie können die ID eines Arbeitsbereichs ganz einfach in der URL finden; es ist die eindeutige Zeichenfolge innerhalb von zwei /-Zeichen nach /groups/ in Ihrem Browserfenster. Beispiel: 11aa111-a11a-1111-1abc-aa1111aaaa in https://fabric.microsoft.com/groups/11aa111-a11a-1111-1abc-aa1111aaaa/.
Dieses Skript veranschaulicht Folgendes:
- Rufen Sie mithilfe von Get-AzAccessToken ein Zugriffstoken ab, und konvertieren Sie es aus einer sicheren Zeichenfolge. Bei Verwendung von PowerShell 7 ist ConvertFrom-SecureString ebenfalls eine Option.
- Api-Aufruf zusammenstellen.
- API-Aufruf ausführen.
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)
}