Självstudie: Konfigurera replikering mellan en server och mobila klienter (sammanslagning)

Gäller för:SQL Server

Sammanslagningsreplikering är en bra lösning på problemet med att flytta data mellan en central server och mobila klienter som bara ibland är anslutna. Med hjälp av replikeringsguiderna kan du enkelt konfigurera och administrera en topologi för sammanslagningsreplikering.

Den här handledningen visar hur du kan konfigurera en replikeringstopologi för mobila klienter. Mer information om sammanslagningsreplikering finns i översikten över sammanslagningsreplikering.

Vad du kommer att lära dig

I den här handledningen lär du dig att använda merge-replikering för att publicera data från en central databas till en eller flera mobila användare, så att varje användare får en delmängd av data som är unikt filtrerad.

I den här handledningen kommer du att lära dig hur du:

  • Konfigurera en utgivare för sammanslagningsreplikering.
  • Lägg till en mobil prenumerant för sammanslagningspublikation.
  • Synkronisera prenumerationen med kopplingspublikationen.

Förutsättningar

Den här handledningen är avsedd för användare som är bekanta med grundläggande databasåtgärder, men som har begränsad erfarenhet av replikering. Innan du påbörjar den här självstudien måste du slutföra Självstudie: Förbereda SQL Server för replikering.

För att slutföra den här självstudien behöver du SQL Server, SQL Server Management Studio (SSMS) och en AdventureWorks-databas:

  • Installera på utgivarservern (källa):

    • Alla versioner av SQL Server, förutom SQL Server Express eller SQL Server Compact. Dessa utgåvor kan inte vara en replikeringsutgivare.
    • Exempeldatabasen AdventureWorks2025 . För att förbättra säkerheten installeras inte exempeldatabaserna som standard.
  • På prenumerantservern (målet) installerar du valfri utgåva av SQL Server, förutom SQL Server Express eller SQL Server Compact. Publikationen som skapas i den här självstudien stöder varken SQL Server Express eller SQL Server Compact.

  • Installera SQL Server Management Studio.

  • Installera SQL Server 2017 Developer Edition.

  • Ladda ned AdventureWorks-exempeldatabasen. Anvisningar om hur du återställer en databas i SSMS finns i Återställa en databas.

Anmärkning

Replikering stöds inte på SQL Server-instanser som är mer än två versioner ifrån varandra.

I SQL Server Management Studio måste du ansluta till utgivaren och prenumeranten med hjälp av en inloggning som är medlem i den fasta serverrollen sysadmin . Mer information om den här rollen finns i Roller på servernivå.

Beräknad tid för att slutföra den här självstudien: 60 minuter

Konfigurera en utgivare för sammanslagningsreplikering

I det här avsnittet skapar du en sammanslagningspublikation med hjälp av SQL Server Management Studio för att publicera en delmängd av tabellerna Employee, SalesOrderHeader och SalesOrderDetail i exempeldatabasen AdventureWorks2025 . Dessa tabeller filtreras med parameteriserade radfilter så att varje prenumeration innehåller en unik partition av data. Du lägger också till SQL Server-inloggningen som används av sammanslagningsagenten i publikationens åtkomstlista (PAL).

Skapa sammanslagningspublikation och definiera artiklar

  1. Anslut till utgivaren i SQL Server Management Studio och expandera sedan servernoden.

  2. Starta SQL Server-agenten genom att högerklicka på den i Object Explorer och välja Starta. Om det här steget inte startar agenten måste du göra det manuellt från SQL Server Configuration Manager.

  3. Expandera mappen Replikering , högerklicka på Lokala publikationer och välj Ny publikation. Guiden Ny publikation har startats:

    Val för att starta guiden Ny publikation

  4. På sidan Publikationsdatabas väljer du AdventureWorks2025och väljer sedan Nästa.

  5. På sidan Publikationstyp väljer du Slå samman publikation och väljer sedan Nästa.

  6. På sidan Prenumeranttyper kontrollerar du att endast SQL Server 2008 (10.0.x) eller senare har valts och väljer sedan Nästa:

    Sidorna

  7. På sidan Artiklar expanderar du noden Tabeller . Välj följande tre tabeller: Employee, SalesOrderHeader och SalesOrderDetail. Välj Nästa.

    Tabellval på sidan

    Anmärkning

    Tabellen Employee innehåller en kolumn (OrganizationNode) som har datatypen hierarchyid . Den här datatypen stöds endast för replikering i SQL Server 2017.

    Om du använder en version tidigare än SQL Server 2017 visas ett meddelande längst ned på skärmen för att meddela dig om potentiell dataförlust för användning av den här kolumnen i dubbelriktad replikering. I den här självstudien kan du ignorera det här meddelandet. Den här datatypen bör dock inte replikeras i en produktionsmiljö om du inte använder den version som stöds.

    Mer information om hur du replikerar datatypen hierarchyid finns i Använda hierarchyid-kolumner i replikering.

  8. På sidan Filtrera tabellrader väljer du Lägg till och sedan Lägg till filter.

  9. I dialogrutan Lägg till filter väljer du Anställd (HumanResources) i Välj den tabell som ska filtreras. Välj kolumnen LoginID , välj högerpilen för att lägga till kolumnen i WHERE-satsen i filterfrågan och ändra WHERE-satsen enligt följande:

     WHERE [LoginID] = HOST_NAME()  
    

    Välj En rad i den här tabellen går bara till en prenumeration och väljer OK.

    Val för att lägga till ett filter

  10. På sidan Filtrera tabellrader väljer du Anställd (Personal), lägger till och väljer sedan Lägg till koppling för att utöka det valda filtret.

    a. I dialogrutan Lägg till koppling väljer du Sales.SalesOrderHeader under Ansluten tabell. Välj Skriv kopplingsinstrukmentet manuellt och slutför kopplingsinstrukmentet på följande sätt:

    ON [Employee].[BusinessEntityID] =  [SalesOrderHeader].[SalesPersonID] 
    

    b) I Ange kopplingsalternativ väljer du Unik nyckel och sedan OK.

    Val för att lägga till en koppling till filtret

  11. På sidan Filtrera tabellrader väljer du SalesOrderHeader, väljer Lägg till och väljer sedan Lägg till koppling för att utöka det valda filtret.

    a. I dialogrutan Lägg till koppling väljer du Sales.SalesOrderDetail under Ansluten tabell.
    b) Välj Använd Builder för att skapa instruktionen.
    c. Bekräfta att kopplingssatsen är följande i rutan Förhandsversion :

    ON [SalesOrderHeader].[SalesOrderID] = [SalesOrderDetail].[SalesOrderID] 
    

    d. I Ange kopplingsalternativ väljer du Unik nyckel och sedan OK. Välj Nästa.

    Val för att lägga till ytterligare en koppling för försäljningsorder

  12. Välj Skapa en ögonblicksbild omedelbart, avmarkera Schemalägg ögonblicksbildsagenten så att den körs vid följande tidpunkter och välj Nästa:

    Val för att skapa en ögonblicksbild omedelbart

  13. På sidan Agentsäkerhet väljer du Säkerhetsinställningar. Ange <Publisher_Machine_Name>\repl_snapshot i rutan Processkonto , ange lösenordet för det här kontot och välj sedan OK. Välj Nästa.

    Val för att ställa in säkerhet för ögonblicksbildsagent

  14. På sidan Slutför guiden anger du AdvWorksSalesOrdersMerge i rutan Publikationsnamn och väljer Slutför:

    Sidan

  15. När publikationen har skapats väljer du Stäng. Under noden Replikering i Object Explorer högerklickar du på Lokala publikationer och väljer Uppdatera för att visa din nya sammanslagningsreplikering.

Visa status för generering av ögonblicksbilder

  1. Anslut till utgivaren i SQL Server Management Studio, expandera servernoden och expandera sedan mappen Replikering .

  2. Högerklicka på AdvWorksSalesOrdersMerge i mappen Lokala publikationer och välj sedan Visa status för ögonblicksbildagent:

    Val för att visa status för ögonblicksbildsagent

  3. Aktuell status för jobbet Snapshot Agent för publikationen visas. Kontrollera att ögonblicksbildjobbet har slutförts innan du fortsätter till nästa lektion.

Lägg till inloggningen för Merge Agent i PAL

  1. Anslut till utgivaren i SQL Server Management Studio, expandera servernoden och expandera sedan mappen Replikering .

  2. Högerklicka på AdvWorksSalesOrdersMerge i mappen Lokala publikationer och välj sedan Egenskaper.

    a. Välj sidan Publikationsåtkomstlista och välj Lägg till.

    b) I dialogrutan Lägg till publikationsåtkomst väljer du <Publisher_Machine_Name>\repl_merge och väljer OK. Välj OK igen.

    Val för att lägga till inloggningen för sammanslagningsagenten

Mer information finns i:

Skapa en prenumeration på sammanslagningspublikationen

I det här avsnittet lägger du till en prenumeration i den sammanslagningspublikation som du skapade tidigare. I den här handledningen används fjärrprenumeranten (NODE2\SQL2016). Sedan anger du behörigheter för prenumerationsdatabasen och manuellt genererar den filtrerade ögonblicksbilden av data för den nya prenumerationen.

Lägga till en prenumerant för sammanslagningspublikation

  1. Anslut till prenumeranten i SQL Server Management Studio och expandera servernoden. Expandera mappen Replikering , högerklicka på mappen Lokala prenumerationer och välj sedan Nya prenumerationer. Guiden för ny prenumeration startar:

    Val för att starta guiden Ny prenumeration

  2. På sidan Publikation väljer du Hitta SQL Server Publisher i utgivarlistan .

    I dialogrutan Anslut till server anger du namnet på utgivarinstansen i rutan Servernamn och väljer Anslut.

    Val för att lägga till en utgivare

  3. Välj AdvWorksSalesOrdersMerge och välj Nästa.

  4. På sidan Sammanfoga agentplats väljer du Kör varje agent vid sin prenumerant och väljer sedan Nästa:

    Alternativet

  5. På sidan Prenumeranter väljer du instansnamnet för prenumerantservern. Under Prenumerationsdatabas väljer du Ny databas i listan.

    I dialogrutan Ny databas anger du SalesOrdersReplica i rutan Databasnamn . Välj OK, och välj Nästa.

    Val för att lägga till en databas i prenumeranten

  6. På sidan Slå samman agentsäkerhet väljer du ellipsknappen (...). Ange <Subscriber_Machine_Name>\repl_merge i rutan Processkonto och ange lösenordet för det här kontot. Välj OK, välj Nästa och sedan Nästa igen.

    Säkerhetsval för Mergeagent

  7. På sidan Synkroniseringsschema anger du Agentschema tillKör på begäran endast. Välj Nästa.

  8. På sidan Initiera prenumerationer väljer du Vid första synkronisering från listan Initiera när . Välj Nästa för att gå vidare till sidan Prenumerationstyp och välj lämplig prenumerationstyp. I den här självstudien används Klient. När du har valt prenumerationstyp väljer du Nästa igen.

    Val för att initiera prenumerationer vid första synkroniseringen

  9. På sidan HOST_NAME Värden anger du värdet adventure-works\pamela0 i rutan HOST_NAME Värde. Välj sedan Slutför.

    Sidan

  10. Välj Slutför igen. När prenumerationen har skapats väljer du Stäng.

Ange serverbehörigheter hos prenumeranten

  1. Anslut till prenumeranten i SQL Server Management Studio. Expandera Säkerhet, högerklicka på Inloggningar och välj sedan Ny inloggning.

    På sidan Allmänt väljer du Sök och anger < sedan Subscriber_ Machine_Name>\repl_merge i rutan Ange objektnamn. Välj Kontrollera namn och välj sedan OK.

    Val för att ange inloggningen

  2. På sidan Användarmappning väljer du databasen SalesOrdersReplica och väljer rollen db_owner . På sidan Skyddsbara objekt ger du explicit behörighet att ändra spårning. Välj OK.

Skapa den filtrerade ögonblicksbilden av data för prenumerationen

  1. Anslut till utgivaren i SQL Server Management Studio, expandera servernoden och expandera sedan mappen Replikering .

  2. Högerklicka på publikationen AdvWorksSalesOrdersMerge i mappen Lokala publikationer och välj sedan Egenskaper.

    a. Välj sidan Datapartitioner och välj Lägg till.
    b) I dialogrutan Lägg till datapartition anger du adventure-works\pamela0 i rutan HOST_NAME Value och väljer sedan OK.
    c. Välj den nyligen tillagda partitionen, välj Generera de valda ögonblicksbilderna nu och välj sedan OK.

    Val för att lägga till en partition

Mer information finns i:

Synkronisera prenumerationen med kopplingspublikationen

I det här avsnittet startar du Sammanslagningsagenten för att initiera prenumerationen med hjälp av SQL Server Management Studio. Du använder också den här proceduren för att synkronisera med utgivaren.

Starta synkroniseringen och initiera prenumerationen

  1. Anslut till prenumeranten i SQL Server Management Studio.

  2. Kontrollera att SQL Server-agenten körs. Om det inte är det högerklickar du på SQL Server-agenten i Object Explorer och väljer Starta. Om det här steget inte startar agenten måste du göra det manuellt med hjälp av SQL Server Configuration Manager.

  3. Öppna Replication-noden. Högerklicka på prenumerationen i databasen SalesOrdersReplica i mappen Lokala prenumerationer och välj sedan Visa synkroniseringsstatus.

    Välj Start för att initiera prenumerationen.

    Synkroniseringsstatus med knappen