SQL Server Replikering från 6.5 till 2000
Innehåll
»»
»
»
»
»
»
»
SQL Server Replikering från 6.5 till 2000
av Tom Pullen
Det här är dem steg som behövs för att framgångsrikt kunna etablera en replikeringsprocess mellan SQL Server 6.5 och SQL Server 2000. De har blivit testade och är kända för att fungera framgångsrikt. Den här artikeln räknar med att du har tidigare erfarenhet av SQL Server replikering.
1) Förbered den publicerande Servern/databasen
2) Välj de mottagande Servrarna
3) Uppdatera sp_articleview i Mastern (6.5)
4) Publicera tabeller
5) Konfigurera säkerheten på 2000 Servern
6) Initiera replikeringen
7) Synkronisera tabellerna
8) Konfigurationsalternativ att se över då replikeringen fungerar
1) Förbered den publicerande Servern/databasen
Det här steget räknar med att din SQL Server 6.5 databas inte redan publiceras av någon annan anledning. Om den gör det, så ska du inte genomföra det här steget. I databasen som ska publiceras så måste du först försäkra dig om att tabellernas syspubliceringar, sysobjekt samt syssubskriptioner, är tomma. Om dem inte är det så får du radera alla rader du ser. Och för att kunna göra det så måste du aktivera ad-hoc uppdateringar för systemtabeller. Det gör du genom att köra:sp_configure ‘allow updates’, 1
Glöm inte att avaktivera kommandot efteråt genom att köra samma kommando, fast byta ut 1 mot 0.
Skapa två anordningar till din distributionsdatabas, en för data och en för loggar. I Enterprise Manager klickar du sen på ”Server”, ”Replication Configuration”, ”Install Publishing”, och sen väljer du de två anordningarna du nyss skapade till din distributionsdatabas.
2) Välj de mottagande Servrarna
Registrera 2000 Servern i SQL Server 6.5:s Enterprise Manager. Det kommer att generera ett Error, men du kan ignorera det. Klicka sedan ”Server”, ”Replication Configuration”, ”Publishing” och tillåt sedan distribution till SQL Server 2000 servern.
3) Uppdatera sp_articleview i Mastern (6.5)
Det här steget krävs för att undvika en bug (Q190208) då du publicerar databaser med ett stort antal kolumner. Kör det här
4) Publicera tabeller
Skapa publiceringar och definiera de objekt som krävs. Det är rekommenderat att du utelämnar alla textkolumner. Det är också rekommenderat att du inte replikerar några Index, då dessa bör appliceras manuellt efter synkroniseringen. Det här gör datasynkroniseringen snabbare, eftersom data kan läggas in i måldatabasen utan att uppdatera Indexen. Index behöver därför scriptas, och dessa script körs efter synkroniseringen.
5) Konfigurera säkerheten på 2000 Servern
Om det inte redan finns, så lägg till SQL Server 6.5 Loginet repl_publisher med ett blankt lösenord, på den mottagande Servern (och finns Loginet redan där, så då till att lösenordet är blankt). Lägg det i db_owner rollen i den mottagande databasen (vilken behöver skapas innan replikeringen initieras). Det innebär att den mottagande Servern måste köra under Mixed Mode Authentication. Försäkra dig också om att det domänkonto som SQL Server kör under på den publicerande Servern, är en lokal administratör på den mottagande Servern.
6) Initiera replikering
Innan du gör det så är det rekommenderat att du stannar alla update/insert/delete aktiviteter i källtabellerna, tills synkroniseringen är klar. Det kan du göra genom att sätta databasen till ”dbo only” läget eller ”single user mode”. På publiceraren väljer du ”Manage”, ”Replication”, ”Publications”. Välj rätt publicering, och klicka på ”Modify”. Välj sedan ”Subscribers”. Där väljer du den mottagande Servern och klicka på ”Subscribe”. Av de tre alternativen som står, väljer du ”No Data Synchronization” (det måste ske manuellt).
7) Synkronisera tabeller
Kolla först distributionslistan i SQL Executive på den publicerande Servern. Om det har misslyckats och du har fått Errormeddelandet: ”Login failed: The User: is not associated with a trusted connection”, så kan du titta i Knowledge Base Article Q216848. Där förklaras det hur du kollar de olika ODBC drivers för att se så att alla versioner är korrekta där de finns. Viktig not. Försäkra dig om att SQL Server 2000 ODBC Drivers INTE har blivit installerat på 6.5 Servern! Om det har det, så innebär en regression till en tidigare version, en ominstallation av NT Server. För att undvika det så bör du inte installera några MDAC versioner senare än 2.1.
När distributinsuppgiften väl är OK, så bör du kolla ifall måltabellen skapades på den mottagande Servern. Om den inte gjorde det, så kan du behöva göra det manuellt (i tester så har båda situationerna påträffats). Skriptet för tabellen kan du finna under arbetskatalogen \repldata\, med suffixet *.sch. Skapa tabellen genom att köra skriptet på den mottagande Servern. Om tabellen har skapats automatiskt av SQL Server, så ägs tabellen av repl_publisher. Om du kan leva med det så kan du lämna det så, annars är det rekommenderat att du kör sp_changeobjectowner, för att göra den dbo ägd.
Nu måste du manuellt synkronisera alla data. I tester har man använd dcp till det, men det finns fler metoder som kan vara lättare och bättre att använda, såsom DTS Bulk Insert eller ”transfer data task”. För tabeller som har textkolumner, vilka inte ska replikeras, så är det bästa sättet att bcp utan dem genom att bcp från en vy som du skapar, vilken väljer ut alla kolumner från tabellen utom textkolumnerna. På så sätt undviks krånglet med formatfiler. När ”bcp ut” och ”bcp in” har utförts, så är replikeringen färdig att köras! Du borde testa några simpla datamodifieringar i källan, för att försäkra dig om att INSERTs, UPDATEs och DELETEs replikeras, och att ändringarna också appliceras på mottagaren.
Du kan använda den lagrade proceduren sp_distcounters för att se så att det fungerar som det ska. Alla icke-noll objekt i “olevererade jobb” kolumnerna indikerar på ett problem (fast när det gäller tunga uppdaterade system så är det vanligt med några siffror).
De normala uppdateringsaktiviteterna kan nu aktiveras igen på publiceraren genom att ta bort ”dbo only” eller ”singel user mode” inställningarna.
0 Kommentarer