Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:✅База данных SQL в Microsoft Fabric
Можно использовать Fabric REST API для запуска и остановки зеркалирования из базы данных SQL в OneLake в Fabric. В этой статье и примере скрипта показано, как использовать PowerShell для вызова REST API Fabric для запуска или остановки зеркального отображения.
Репликация базы данных SQL в OneLake всегда включена по умолчанию. Существуют сценарии, в которых может потребоваться остановить зеркальное отображение базы данных SQL в Fabric. Например, чтобы разрешить создание кластеризованных индексов столбцов в существующей таблице, что невозможно при работающем зеркальном отображении.
Предпосылки
- Вам нужна уже имеющаяся вместимость Fabric. Если вы этого не сделали, запустите пробную версию Fabric.
- Вы можете использовать существующую рабочую область или создать новую рабочую область Fabric.
- Для создания базы данных SQL необходимо быть членом ролей администратора или члена рабочей области .
- Установите версию golang SQLCMD. Запустите
winget install sqlcmdв Windows, чтобы установить. Сведения о других операционных системах см. в aka.ms/go-sqlcmd. - PowerShell 5.1 или PowerShell 7.4 и более поздних версий
- Модуль Az PowerShell. Запустите
Install-Module azв PowerShell, чтобы установить.
Остановка зеркального отображения базы данных SQL в OneLake в Fabric
Следующие примеры PowerShell останавливают процесс зеркалирования базы данных SQL в OneLake на платформе Fabric.
В этом примере скрипта используется Connect-AzAccountпсевдоним az login для запроса учетных данных. Он использует эти учетные данные для получения маркера доступа для вызовов REST API. SQLCMD использует контекст учетной записи, которая была передана Connect-AzAccount.
В следующем сценарии необходимо указать идентификатор рабочей области и идентификатор базы данных. Оба можно найти в URL-адресе.
https://powerbi.com/groups/<fabric_workspace_id>/sqldatabases/<fabric_sql_database_id>. Первая строка в URL-адресе — идентификатор рабочей области Fabric, а вторая строка — идентификатор базы данных SQL.
- Замените
<your workspace id>идентификатором рабочего пространства Fabric. Идентификатор рабочей области можно легко найти в URL-адресе, это уникальная строка внутри двух/символов после/groups/в окне браузера. - Замените
<your database id>на SQL базу данных в идентификаторе базы данных Fabric. Идентификатор элемента базы данных можно легко найти в URL-адресе, это уникальная строка внутри двух/символов после/sqldatabases/в окне браузера.
Этот скрипт демонстрирует следующее:
- Получите маркер доступа с помощью Get-AzAccessToken и преобразуйте его из безопасной строки. При использовании PowerShell 7 ConvertFrom-SecureString также является вариантом.
- Собрать вызов API.
- Вызов 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)
}
Запуск зеркального копирования базы данных SQL в OneLake на Fabric
В следующих примерах PowerShell запускается процесс зеркального отображения базы данных SQL в OneLake, который находится в Fabric.
В этом примере скрипта используется Connect-AzAccountпсевдоним az login для запроса учетных данных. Он использует эти учетные данные для получения маркера доступа для вызовов REST API. SQLCMD использует контекст учетной записи, которая была передана Connect-AzAccount.
В следующем скрипте замените <your workspace id> идентификатор рабочей области Fabric. Идентификатор рабочей области можно легко найти в URL-адресе, это уникальная строка внутри двух / символов после /groups/ в окне браузера. Например, 11aa111-a11a-1111-1abc-aa1111aaaa в https://fabric.microsoft.com/groups/11aa111-a11a-1111-1abc-aa1111aaaa/.
Этот скрипт демонстрирует следующее:
- Получите маркер доступа с помощью Get-AzAccessToken и преобразуйте его из безопасной строки. При использовании PowerShell 7 ConvertFrom-SecureString также является вариантом.
- Сформировать вызов API.
- Выполните вызов 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)
}