sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server 2000/2005 identitetskolumn + replikering

Det finns alternativet "INTE FÖR REPLIKATION " som kan tillämpas på identitetskolumner (och utlösare och andra begränsningar).

I ditt exempel skulle server1 seed 1-10 men bara acceptera replikerade 11-20.

Ett par sätt att sätta dina frön:

Antingen:ställ in dina seed/ökningar med INTE FÖR REPLIKATION så här

  • Frö 1, ökning 2
  • Frö 2, ökning 2
  • Frö -1, öka -2
  • Frö -2, öka -2
  • Frö 1000000001, ökning 2
  • Frö 1000000002, ökning 2
  • Frö -1000000002, inkrement -2
  • Frö -1000000001, inkrement -2

Detta ger dig 500 000 000 per server för 8 servrar

Eller:Lägg till en andra kolumn som heter ServerID för att ge sammansatta nycklar, använd INTE FÖR REPLIKATION för ID-kolumnen

Detta skalar upp till, säg, 256 servrar för tinyint med 2^32 rader per server

Hur som helst fungerar...




  1. Felmeddelande Unterminated string literal

  2. Felsökning av MySQL-replikering:Del ett

  3. Hur man skapar kapslade tabeller med användardefinierad datatyp i Oracle Database

  4. Om möjligt hur kan man bädda in PostgreSQL?