Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse 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)
}