Delen via


Niet-SQL Server-abonnees

Van toepassing op:SQL Server

De volgende niet-SQL Server-abonnees kunnen zich abonneren op momentopnamen en transactionele publicaties met behulp van pushabonnementen. Abonnementen worden ondersteund voor de twee meest recente versies van elke database die worden vermeld met behulp van de meest recente versie van de vermelde OLE DB-provider.

Heterogene replicatie naar niet-SQL Server-abonnees is afgeschaft. Oracle Publishing is verouderd verklaard. Als u gegevens wilt verplaatsen, maakt u oplossingen met behulp van wijzigingsgegevens vastleggen en SSIS.

Waarschuwing

Deze functie wordt verwijderd in een toekomstige versie van SQL Server. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie.

gegevensbank Besturingssysteem Provider
Oracle Alle platforms die Oracle ondersteunt Oracle OLE DB-provider (geleverd door Oracle)
IBM Db2 MVS, AS400, Unix, Linux, Windows met uitzondering van 9.x OLE DB-provider van Microsoft Host Integration Server (HIS)

Oracle-versiegegevens:
SQL Server ondersteunt de volgende heterogene scenario's voor transactionele en momentopnamereplicatie:

  • Gegevens publiceren van SQL Server naar niet-SQL Server-abonnees.

  • Het publiceren van gegevens naar en van Oracle heeft de volgende beperkingen:

Replication 2016 of eerder 2017 of hoger
Replicatie van Oracle Alleen ondersteuning voor Oracle 10g of eerder Alleen ondersteuning voor Oracle 10g of eerder
Replicatie naar Oracle Tot en met Oracle 12c Niet ondersteund

Heterogene replicatie naar niet-SQL Server-abonnees is afgeschaft. Oracle Publishing is afgeschaft. Als u gegevens wilt verplaatsen, maakt u oplossingen met behulp van wijzigingsgegevens vastleggen en SSIS.

Zie Oracle-abonnees en IBM Db2-abonnees voor meer informatie over het maken van abonnementen op Oracle en IBM Db2.

Overwegingen voor niet-SQL Server-abonnees

Houd rekening met de volgende overwegingen bij het repliceren naar niet-SQL Server-abonnees:

Algemene overwegingen

  • Replicatie ondersteunt het publiceren van tabellen en geïndexeerde weergaven als tabellen voor niet-SQL Server-abonnees (geïndexeerde weergaven kunnen niet worden gerepliceerd als geïndexeerde weergaven).

  • Wanneer u een publicatie maakt in de wizard Nieuwe publicatie en deze vervolgens inschakelt voor niet-SQL Server-abonnees met behulp van het dialoogvenster Publicatie-eigenschappen, wordt de eigenaar van alle objecten in de abonnementsdatabase niet opgegeven voor niet-SQL Server-abonnees, terwijl deze voor Microsoft SQL Server-abonnees is ingesteld op de eigenaar van het bijbehorende object in de publicatiedatabase.

  • Als een publicatie SQL Server-abonnees en niet-SQL Server-abonnees heeft, moet de publicatie zijn ingeschakeld voor niet-SQL Server-abonnees voordat abonnementen voor SQL Server-abonnees worden gemaakt.

  • Scripts die door de Snapshot Agent worden gegenereerd voor niet-SQL Server-abonnees, gebruiken standaard niet-geciteerde identificatoren in de CREATE TABLE syntaxis. Daarom wordt een gepubliceerde tabel met de naam 'test' gerepliceerd als 'TEST'. Als u hetzelfde geval wilt gebruiken als de tabel in de publicatiedatabase, gebruikt u de parameter -QuotedIdentifier voor de distributieagent. De parameter -QuotedIdentifier moet ook worden gebruikt als gepubliceerde objectnamen (zoals tabellen, kolommen en beperkingen) spaties of woorden bevatten die gereserveerde woorden zijn in de versie van de database bij de niet-SQL Server-abonnee. Zie Replicatiedistributieagent voor meer informatie over deze parameter.

  • Het account waaronder de distributieagent wordt uitgevoerd, moet leestoegang hebben tot de installatiemap van de OLE DB-provider.

  • Voor niet-SQL Server-abonnees gebruikt de distributieagent standaard een waarde van [(standaardbestemming)] voor de abonnementsdatabase (de parameter -SubscriberDB voor de distributieagent):

  • Als de SQL Server Distributor wordt uitgevoerd op een 64-bits platform, moet u de 64-bits versie van de juiste OLE DB-provider gebruiken.

  • Met replicatie worden gegevens verplaatst in Unicode-indeling, ongeacht de sorterings-/codepagina's die worden gebruikt bij de publisher en de abonnee. Het wordt aanbevolen om een compatibele sorterings-/codepagina te kiezen bij het repliceren tussen uitgevers en abonnees.

  • Als een artikel wordt toegevoegd aan of verwijderd uit een publicatie, moeten abonnementen op niet-SQL Server-abonnees opnieuw worden geïnitialiseerd.

  • De enige beperkingen die worden ondersteund voor alle niet-SQL Server-abonnees zijn: NULL en NOT NULL. Primaire-sleutelbeperkingen worden gerepliceerd als unieke indexen.

  • De waarde NULL wordt verschillend behandeld door verschillende databases, wat van invloed is op de manier waarop een lege waarde, een lege tekenreeks en een NULL worden weergegeven. Dit is op zijn beurt van invloed op het gedrag van waarden die zijn ingevoegd in kolommen met unieke beperkingen die zijn gedefinieerd. Oracle staat bijvoorbeeld meerdere NULL-waarden toe in een kolom die als uniek wordt beschouwd, terwijl SQL Server slechts één NULL-waarde in een unieke kolom toestaat.

    Een extra factor is hoe NULL-waarden, lege tekenreeksen en lege waarden worden behandeld wanneer de kolom wordt gedefinieerd als NOT NULL. Zie Oracle-abonnees voor informatie over het oplossen van dit probleem voor Oracle-abonnees.

  • Replicatiegerelateerde metagegevens (transactiereekstabel) worden niet verwijderd uit niet-SQL Server-abonnees wanneer het abonnement wordt verwijderd.

Voldoen aan de vereisten van de abonneedatabase

  • Het gepubliceerde schema en de gepubliceerde gegevens moeten voldoen aan de vereisten van de database bij de abonnee. Als een niet-SQL Server-database bijvoorbeeld een kleinere maximale rijgrootte heeft dan SQL Server, moet u ervoor zorgen dat het gepubliceerde schema en de gepubliceerde gegevens deze grootte niet overschrijden.

  • Tabellen die zijn gerepliceerd naar niet-SQL Server-abonnees nemen de tabelnaamconventies van de database bij de abonnee in gebruik.

  • DDL wordt niet ondersteund voor niet-SQL Server-abonnees. Zie Schemawijzigingen aanbrengen in publicatiedatabases voor meer informatie over schemawijzigingen.

Ondersteuning voor replicatiefuncties

  • SQL Server biedt twee typen abonnementen: push en pull. Niet-SQL Server-abonnees moeten pushabonnementen gebruiken, waarin de distributieagent wordt uitgevoerd bij de SQL Server-distributeur.

  • SQL Server biedt twee momentopname-indelingen: systeemeigen bcp-modus en tekenmodus. Voor niet-SQL Server-abonnees zijn momentopnamen van de tekenmodus vereist.

  • Niet-SQL Server abonnees kunnen geen directe of wachtende bijwerkabonnementen gebruiken, noch knooppunten zijn in een peer-to-peer topologie.

  • Niet-SQL Server-abonnees kunnen niet automatisch worden geïnitialiseerd vanuit een back-up.