Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:✅Base de dados SQL em Microsoft Fabric
Você pode usar a Fabric REST API para iniciar e parar o espelhamento de um banco de dados SQL para o OneLake no Fabric. Este artigo e o script de exemplo demonstram como usar o PowerShell para chamar a API REST de malha para iniciar ou parar o espelhamento.
O espelhamento do banco de dados SQL para o OneLake está sempre em execução, por padrão. Há cenários em que o espelhamento do banco de dados SQL no Fabric poderá ter de ser interrompido. Por exemplo, para habilitar a criação de índices de colunas clusterizadas em uma tabela existente, que não podem ser criadas quando o espelhamento está em execução.
Pré-requisitos
- Você precisa de uma capacidade existente do Fabric. Caso não o faça, inicie uma avaliação dos serviços do Fabric.
- Você pode usar um espaço de trabalho existente ou criar um novo espaço de trabalho de malha.
- Você deve ser membro das funções Administrador ou Membro do espaço de trabalho para criar um banco de dados SQL.
- Instale a versão golang do SQLCMD. Corra
winget install sqlcmdno Windows para a instalação. Para outros sistemas operacionais, consulte aka.ms/go-sqlcmd. - PowerShell 5.1 ou PowerShell 7.4 e superior
- O módulo Az PowerShell. Execute
Install-Module azno PowerShell para instalar.
Parar o espelhamento do banco de dados SQL no OneLake no Fabric
Os exemplos de PowerShell a seguir interrompem o espelhamento de um banco de dados SQL para OneLake no Fabric.
Este script de exemplo usa Connect-AzAccount, um alias de az login para solicitar credenciais. Ele usa essas credenciais para obter um token de acesso a ser usado para as chamadas da API REST. SQLCMD usa o contexto da conta que foi dada ao Connect-AzAccount.
No script a seguir, você precisa fornecer a ID do espaço de trabalho e a ID do banco de dados. Ambos podem ser encontrados no URL.
https://powerbi.com/groups/<fabric_workspace_id>/sqldatabases/<fabric_sql_database_id>. A primeira cadeia de caracteres na URL é o ID do espaço de trabalho Fabric, e a segunda cadeia de caracteres é o ID do banco de dados SQL.
- Substitua
<your workspace id>pelo ID do espaço de trabalho do Fabric. Você pode encontrar o ID de um espaço de trabalho facilmente no endereço, é a sequência única entre dois caracteres/após o/groups/na janela do navegador. - Substitua
<your database id>pelo seu banco de dados SQL no identificador do banco de dados Fabric. Você pode encontrar o ID do item de banco de dados facilmente na URL, é a cadeia de caracteres exclusiva dentro de dois/caracteres depois dos/sqldatabases/na janela do navegador.
Este script demonstra:
- Recupere um token de acesso utilizando o comando Get-AzAccessToken e, em seguida, converta-o de uma cadeia de caracteres segura. Se estiver a usar o PowerShell 7, ConvertFrom-SecureString também é uma opção.
- Monte a chamada da API.
- Invoque a chamada da 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)
}
Iniciar o espelhamento do banco de dados SQL para o OneLake no Fabric
Os exemplos de PowerShell a seguir iniciam o espelhamento de um banco de dados SQL para o OneLake no Fabric.
Este script de exemplo usa Connect-AzAccount, um alias de az login para solicitar credenciais. Ele usa essas credenciais para obter um token de acesso a ser usado para as chamadas da API REST. SQLCMD usa o contexto da conta que foi dada ao Connect-AzAccount.
No script a seguir, substitua <your workspace id> pelo ID do espaço de trabalho Fabric. Você pode encontrar o ID de um espaço de trabalho facilmente no endereço, é a sequência única entre dois caracteres / após o /groups/ na janela do navegador. Por exemplo, 11aa111-a11a-1111-1abc-aa1111aaaa em https://fabric.microsoft.com/groups/11aa111-a11a-1111-1abc-aa1111aaaa/.
Este script demonstra:
- Recupere um token de acesso utilizando o comando Get-AzAccessToken e, em seguida, converta-o de uma cadeia de caracteres segura. Se estiver a usar o PowerShell 7, ConvertFrom-SecureString também é uma opção.
- Monte a chamada da API.
- Invoque a chamada de 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)
}