Dela via


Självstudie: Konfigurera speglade databaser från Microsoft Fabric i SQL Server

Spegling i Fabric är en företagsbaserad, molnbaserad, noll-ETL, SaaS-teknik. I det här avsnittet får du lära dig hur du skapar en speglad SQL Server-databas, som skapar en skrivskyddad, kontinuerligt replikerad kopia av dina SQL Server-data i OneLake.

Viktigt!

Den här funktionen är i förhandsversion.

Förutsättningar

Databasprincip för Fabric

Därefter måste du skapa ett sätt för Fabric-tjänsten att autentisera till din SQL Server-instans.

Du kan göra detta med ett login och en mappad databasanvändare.

Använd en inloggning och en mappad databasanvändare

Fabric använder en dedikerad inloggning för att ansluta till SQL Server-källinstansen.

Följ dessa instruktioner för antingen SQL Server 2025 eller SQL Server 2016-2022 för att skapa en inloggnings- och databasanvändare för databasspegling.

I SQL Server 2025 är de behörigheter som krävs för fabric-inloggningen:

  • Medlemskap i serverrollen ##MS_ServerStateReader##
  • Följande behörigheter i användardatabasen:
    • SELECT
    • ÄNDRA EVENTUELL EXTERN SPEGLING
  1. Anslut till SQL Server-instansen med ett T-SQL-frågeverktyg som SQL Server Management Studio (SSMS) eller mssql-tillägget med Visual Studio Code.

  2. Anslut till master databasen. Skapa en serverinloggning och tilldela lämpliga behörigheter.

    Viktigt!

    För SQL Server-instanser i en AlwaysOn-tillgänglighetsgrupp måste inloggningen skapas i alla SQL Server-instanser. Huvudnamnet fabric_login måste ha samma SID i varje replikinstans.

    • Skapa en SQL-autentiserad inloggning med namnet fabric_login. Du kan välja valfritt namn för den här inloggningen. Ange ditt eget starka lösenord. Kör följande T-SQL-skript i master databasen:
    --Run in the master database
    USE [master];
    CREATE LOGIN [fabric_login] WITH PASSWORD = '<strong password>';
    
    ALTER SERVER ROLE [##MS_ServerStateReader##] ADD MEMBER [fabric_login];
    
    • Eller logga in som Microsoft Entra-administratör och skapa en autentiserad inloggning med Microsoft Entra-ID från ett befintligt konto (rekommenderas). Kör följande T-SQL-skript i master databasen:
    --Run in the master database
    USE [master];
    CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER;
    
    ALTER SERVER ROLE [##MS_ServerStateReader##] ADD MEMBER [bob@contoso.com];
    
  3. Anslut till användardatabasen som du planerar att spegla till Microsoft Fabric. Skapa en databasanvändare som är ansluten till inloggningen och bevilja minsta möjliga behörighet:

    • För en SQL-autentiserad inloggning:
    --Run in the user database
    CREATE USER [fabric_user] FOR LOGIN [fabric_login];
    
    GRANT SELECT, ALTER ANY EXTERNAL MIRROR
       TO [fabric_user];
    
    • Eller för en Microsoft Entra-autentiserad inloggning (rekommenderas):
    --Run in the user database
    CREATE USER [bob@contoso.com] FOR LOGIN [bob@contoso.com];
    
    GRANT SELECT, ALTER ANY EXTERNAL MIRROR
       TO [bob@contoso.com];
    

Ansluta till din SQL Server

Instruktionerna och kraven för att konfigurera en infrastrukturspeglingsdatabas från SQL Server skiljer sig åt i SQL Server 2025. I SQL Server 2025 är en Azure Arc-aktiverad server en del av den nödvändiga konfigurationen för kommunikationen till Fabric. Innan SQL Server 2025 krävs inte Azure Arc och replikeringen baseras på CDC (Change Data Capture).

Ansluta servern till Azure Arc och aktivera hantera identitet

För att konfigurera Fabric Mirroring måste du konfigurera Azure Arc för din SQL Server 2025-instans.

  1. Anslut servern till Azure Arc. Följ stegen i Snabbstart – Ansluta hybriddatorn med Azure Arc-aktiverade servrar.

    För SQL Server-instanser som körs i en AlwaysOn-tillgänglighetsgrupp eller redundansklusterinstanskonfiguration måste alla noder vara anslutna till Azure Arc.

  2. Tre registernycklar krävs på Windows Server som är värd för källinstansen av SQL Server för Fabric Mirroring. Registernycklarna innehåller information om den systemtilldelade hanterade identiteten (SAMI) för Windows Server. Följande PowerShell-skript lägger till tre registernycklar, nödvändiga filsystembehörigheter och hanterade identiteter.

    Anmärkning

    Det här avsnittet innehåller ett skript för att ändra Windows-registret. Se till att du följer dessa steg noggrant. Säkerhetskopiera registret innan du ändrar det för extra skydd. Sedan kan du återställa registret om ett problem uppstår. Mer information om hur du säkerhetskopierar och återställer registret finns i Hur du säkerhetskopierar och återställer registret i Windows.

    De tre registernycklarna läggs till på följande plats:

    • För en standardinstans: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQLServer\FederatedAuthentication
    • För en namngiven instans: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.Instancename\MSSQLServer\FederatedAuthentication

    Skriptet lägger till följande nycklar:

    • ArcServerManagedIdentityClientId
    • ArcServerSystemAssignedManagedIdentityClientId
    • ArcServerSystemAssignedManagedIdentityTenantID

    Kör följande PowerShell-skript för att konfigurera den systemtilldelade hanterade identiteten (SAMI) och nödvändiga registernycklar på Den Windows Server som är värd för SQL Server-källinstansen.

     $apiVersion = "2020-06-01"
     $resource = "https://storage.azure.com/"
     $ep = $env:IDENTITY_ENDPOINT
     if (!$ep) {
         throw "Azure Arc service is not installed, Microsoft Fabric Mirroring cannot be enabled."
     }
     $endpoint = "{0}?resource={1}&api-version={2}" -f $ep,$resource,$apiVersion
     $secretFile = ""
     try {
         Invoke-WebRequest -Method GET -Uri $endpoint -Headers @{Metadata='True'} -UseBasicParsing > $null
     } catch {
         if ($_.Exception.Response.Headers) {
             $wwwAuthHeader = $_.Exception.Response.Headers["WWW-Authenticate"]
             if ($wwwAuthHeader -match "Basic realm=.+") {
                 $secretFile = ($wwwAuthHeader -split "Basic realm=")[1]
             }
         }
     }
    
     if (!$secretFile) {
         throw "Secret file path not found."
     }
    
     $secret = cat -Raw $secretFile
    
     try {
         $response = Invoke-WebRequest -Method GET -Uri $endpoint -Headers @{Metadata='True'; Authorization="Basic $secret"} -UseBasicParsing
     } catch {
         throw "Can not establish communication with IMDS service. You need to have Azure Arc service installed"
     }
    
     if ($response) {
         $parts = (ConvertFrom-Json -InputObject $response.Content).access_token -split "\."
         $padLength = 4 - ($parts[1].Length % 4)
         if ($padLength -ne 4) { $parts[1] += "=" * $padLength }
         $payload = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($parts[1])) | ConvertFrom-Json
         $regPath = "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL"
         $instance = ""
         $regKey = Get-Item -Path $regPath
         $regKey.GetValueNames() | Where-Object { $regKey.GetValue($_) -match 'MSSQL17' } | ForEach-Object {
             $instance = $_
             $service = if ($instance -eq "MSSQLSERVER") { "MSSQLSERVER" } else { "MSSQL$" + $instance }
             $reginst = $regKey.GetValue($_)
             $regFed = "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$($reginst)\MSSQLServer\FederatedAuthentication"
             if (-not (Test-Path -Path $regFed)) {
                 New-Item -Path $regFed -Force > $null
             }
             Write-Host "Registering Azure Arc MSI service for SQL Server instance: " $instance `n
             Set-ItemProperty -Path $regFed -Name "ArcServerManagedIdentityClientId" -Value ""
             Set-ItemProperty -Path $regFed -Name "ArcServerSystemAssignedManagedIdentityClientId" -Value $($payload.appid)
             Set-ItemProperty -Path $regFed -Name "ArcServerSystemAssignedManagedIdentityTenantId" -Value $($payload.tid)
             $svcPath = "HKLM:\SYSTEM\CurrentControlSet\Services\$($service)"
             if (Test-Path -Path $svcPath) {
                 $keyPath = Split-Path $secretFile
                 $svcKey = Get-Item -Path $svcPath
                 $sqlAccount = $svcKey.GetValue("ObjectName")
                 if ($sqlAccount -ne "LocalSystem") {
                     Write-Host "Permissioning folder" $keyPath "for SQL Server account" $sqlAccount `n
                     icacls $keyPath /grant "$($sqlAccount):(OI)(CI)R"
                     $group = "Hybrid agent extension applications"
                     $isMember = Get-LocalGroupMember -Group $group | Where-Object { $_.Name -eq $sqlAccount }
                     if (-not $isMember) {
                         Write-Host "Also adding SQL running account to local group: $group" `n
                         Add-LocalGroupMember -Group $group -Member $sqlAccount
                     } else {
                         Write-Host ""
                     }
                 }
             }
         }
         Write-Host "Registration complete for:" `n "Client ID: " $($payload.appid) `n "Tenant ID: " $($payload.tid) `n
     }
    

    Viktigt!

    För SQL Server-instanser som körs i en AlwaysOn-tillgänglighetsgrupp eller redundansklusterinstanskonfiguration kör du PowerShell-skriptet lokalt på varje nod.

  3. Anslut till din lokala SQL Server 2025-instans. När du ansluter väljer du Betrodd servercertifikat.

  4. Visa hanterade identiteter:

    --Run in the master database
    USE [master];
    SELECT *
    FROM sys.dm_server_managed_identities;
    

    Detta bör returnera 1 rad med rätt client_id och tenant_id. Identity_type ska vara "Systemtilldelad".

Lägga till behörigheter för hanterade identiteter i Microsoft Fabric

Den hanterade identiteten för SQL Server skapas och beviljas behörigheter av Microsoft Fabric automatiskt.

För SQL Server-instanser som körs i en Always On-tillgänglighetsgrupp eller konfiguration av redundansklusterinstans, måste dock den systemtilldelade hanterade identiteten (SAMI) för varje sekundär nod tilldelas deltagarbehörighet till Fabric-arbetsytan. En hanterad identitet skapas av PowerShell-skriptet som tillhandahålls för varje sekundär nod, och som måste beviljas Fabric-behörigheter manuellt.

  1. I Fabricportalen beviljar du Fabric-behörigheter till varje sekundär nods hanterade identitet.
    1. På arbetsytan Fabric väljer du Hantera åtkomst.

      Skärmbild från Fabric-portalen med knappen Hantera åtkomst.

    2. Välj Lägg till personer eller grupper.

    3. I dialogrutan Lägg till personer letar du reda på servernamnen för varje nod i tillgänglighetsgruppen eller redundansklustret.

    4. Bevilja varje medlemskap rollen Bidragsgivare.

      Skärmbild av dialogrutan Lägg till personer, där du lägger till varje nod i rollen Fabric Contributor.

Konfigurera den lokala datagatewayen

Kontrollera dina nätverkskrav för Fabric för att få åtkomst till din SQL Server. Du måste installera en lokal datagateway för att spegla data. Kontrollera att den lokala gatewaydatorns nätverk kan ansluta till SQL Server-instansen. Mer information finns i How to: Secure data Microsoft Fabric mirrored databases From SQL Server (Skydda data, Microsoft Fabric-speglade databaser från SQL Server).

  1. Ladda ned data gateway för lokalt bruk från Microsofts officiella nedladdningscenter.
  2. Starta installationen. Följ anvisningarna i Installera en lokal datagateway.
    • Ange din e-postadress för Ditt Microsoft-konto.
    • Namn: MyOPDG eller något namn du önskar.
    • Ange en säker återställningsnyckel.

Skapa en speglad SQL Server

  1. Öppna Fabric-portalen.
  2. Använd en befintlig arbetsyta eller skapa en ny arbetsyta.
  3. Gå till panelen Skapa . Välj ikonen Skapa.
  4. Rulla för att välja Speglad SQL Server-databas.
  5. Ange namnet på din SQL Server-databas som ska speglas och välj sedan Skapa.

Anslut Fabric till din SQL Server-instans

För att aktivera spegling måste du ansluta till SQL Server-instansen från Fabric för att initiera anslutningen från Fabric. Följande steg vägleder dig genom processen att skapa anslutningen till DIN SQL Server:

  1. Under Nya källor väljer du SQL Server-databas. Eller välj en befintlig SQL Server-anslutning från OneLake-hubben.

  2. Om du har valt Ny anslutning anger du anslutningsinformationen till SQL Server-instansen.

    • Server: Den fullständigt kvalificerade sökvägen för servernamnet som Fabric använder för att nå din SQL Server-instans, samma som du skulle använda för SSMS.

    Tips/Råd

    SQL Server-instanser i en AlwaysOn-tillgänglighetsgrupp använder alltid på-lyssnaren för server. Om SQL Server körs i en konfiguration av en redundansklusterinstans använder du det virtuella nätverksnamnet för server.

    • Databas: Ange namnet på din SQL Server.
      • Anslutning: Skapa ny anslutning.
      • Anslutningsnamn: Ett automatiskt namn anges. Du kan ändra det.
      • Datagateway: Välj den lokala datagateway som du har konfigurerat enligt ditt scenario.
      • Typ av autentisering: Välj autentiseringsmetod och ange det huvudnamn som du konfigurerade i Använda en inloggnings- och mappad databasanvändare.
      • Markera kryssrutan Använd krypterad anslutning .
  3. Välj Anslut.

Viktigt!

All detaljerad säkerhet som upprättas i källdatabasen måste konfigureras om i den speglade databasen i Microsoft Fabric. Mer information finns i How to: Secure data Microsoft Fabric mirrored databases From SQL Server (Skydda data, Microsoft Fabric-speglade databaser från SQL Server).

Starta speglingsprocessen

  1. På skärmen Konfigurera spegling kan du som standard spegla alla data i databasen.

    • Spegla alla data innebär att alla nya tabeller som skapas när speglingen har startats speglas.

    • Du kan också välja endast vissa objekt som ska speglas. Inaktivera alternativet Spegla alla data och välj sedan enskilda tabeller från databasen.

    I denna handledning väljer vi alternativet Spegla alla data.

  2. Välj Skapa speglad databas. Speglingsprocessen börjar.

  3. Vänta i 2–5 minuter. Välj sedan Övervaka replikering för att se statusen.

  4. Efter några minuter bör statusen ändras till Körs, vilket innebär att tabellerna synkroniseras.

    Om du inte ser tabellerna och motsvarande replikeringsstatus väntar du några sekunder och uppdaterar sedan panelen.

  5. När de har slutfört den första kopieringen av tabellerna visas ett datum i kolumnen Senaste uppdatering .

  6. Nu när dina data är aktiverade finns det flera analysscenarier tillgängliga i hela Fabric.

Övervaka tygspegling

När speglingen har konfigurerats dirigeras du till sidan Speglingsstatus . Här kan du övervaka det aktuella replikeringstillståndet.

Mer information om replikeringstillstånden finns i Övervaka speglad databasreplikering i Monitor Fabric.

Skärmbild från Fabric-portalen som visar replikeringsstatus i övervakningen för den nya speglade SQL Server-databasen.

Verifiera data i OneLake

När Fabric Mirroring är igång kan du nu fråga från din SQL Server-databas i Microsoft Fabric. Mer information finns i Utforska data i din speglade databas med Microsoft Fabric.

Skärmbild av att köra frågor på data i en speglad SQL Server-databas med slutpunkt för SQL-analys.

Prestandaoptimering

Nu när speglingen är igång får du lära dig hur du optimerar prestandan för källdatabasen och den speglade databasen från SQL Server i Microsoft Fabric.