Bagikan melalui


Memulai dan menghentikan pencerminan database SQL dengan Fabric REST API

Berlaku untuk:Database SQL di Microsoft Fabric

Anda dapat menggunakan Fabric REST API untuk memulai dan menghentikan proses pencerminan dari database SQL ke OneLake di Fabric. Artikel ini dan contoh skrip menunjukkan cara menggunakan PowerShell untuk memanggil Fabric REST API memulai atau berhenti mencerminkan.

Pencerminan database SQL ke OneLake selalu berjalan, secara bawaan. Ada skenario di mana pencerminan untuk database SQL di Fabric mungkin perlu dihentikan. Misalnya, untuk mengaktifkan pembuatan indeks kolom berkluster pada tabel yang ada, yang tidak dapat dibuat saat pencerminan berjalan.

Prasyarat

Hentikan pencerminan database SQL ke OneLake di Fabric

Contoh PowerShell berikut menghentikan pencerminan database SQL ke OneLake di Fabric.

Contoh skrip ini menggunakan Connect-AzAccount, alias az login untuk meminta kredensial. Ini menggunakan kredensial tersebut untuk mendapatkan token akses yang akan digunakan untuk panggilan REST API. SQLCMD menggunakan konteks akun yang diberikan kepada Connect-AzAccount.

Dalam skrip berikut, Anda perlu memberikan ID ruang kerja dan ID database. Keduanya dapat ditemukan di URL. https://powerbi.com/groups/<fabric_workspace_id>/sqldatabases/<fabric_sql_database_id>. String pertama dalam URL adalah ID ruang kerja Fabric, dan string kedua adalah ID database SQL.

  • Ganti <your workspace id> dengan ID ruang kerja Fabric Anda. Anda dapat menemukan ID ruang kerja dengan mudah di URL, yang merupakan rangkaian unik antara dua karakter / setelah /groups/ di jendela penelusur Anda.
  • Ganti <your database id> dengan database SQL Anda di ID database Fabric. Anda dapat menemukan ID item database dengan mudah di URL, ini adalah string unik di dalam dua / karakter setelah /sqldatabases/ di jendela browser Anda.

Skrip ini menunjukkan:

  1. Ambil token akses menggunakan Get-AzAccessToken dan mengonversinya dari string aman. Jika menggunakan PowerShell 7, ConvertFrom-SecureString juga merupakan opsi.
  2. Merakit panggilan API.
  3. Panggil panggilan 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)
}

Mulai mereplikasi database SQL ke OneLake dalam Fabric

Contoh PowerShell berikut memulai proses pencerminan database SQL ke OneLake di Fabric.

Contoh skrip ini menggunakan Connect-AzAccount, alias az login untuk meminta kredensial. Ini menggunakan kredensial tersebut untuk mendapatkan token akses yang akan digunakan untuk panggilan REST API. SQLCMD menggunakan konteks akun yang diberikan kepada Connect-AzAccount.

Dalam skrip berikut, ganti <your workspace id> dengan ID ruang kerja Fabric Anda. Anda dapat menemukan ID ruang kerja dengan mudah di URL, yang merupakan rangkaian unik antara dua karakter / setelah /groups/ di jendela penelusur Anda. Misalnya, 11aa111-a11a-1111-1abc-aa1111aaaa di https://fabric.microsoft.com/groups/11aa111-a11a-1111-1abc-aa1111aaaa/.

Skrip ini menunjukkan:

  1. Ambil token akses menggunakan Get-AzAccessToken dan mengonversinya dari string aman. Jika menggunakan PowerShell 7, ConvertFrom-SecureString juga merupakan opsi.
  2. Merakit panggilan API.
  3. Panggil panggilan 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)
}