Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:✅База данных 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)
}