sql >> Databáze >  >> RDS >> Oracle

Konfigurace replikace heterogenní databáze – SQL Server na Oracle

Úvod

SQL Server Replication je funkce serveru SQL Server, která nám umožňuje přenášet data z jedné instance do druhé pro takové účely, jako je konsolidace dat do prostředí sestav nebo migrace. Osobně bych nepovažoval SQL Server Replication za technologii s vysokou dostupností, i když to někteří lidé považují za.

Replikace SQL Server používá k popisu způsobu zpracování dat od zdroje k cíli termíny podobné těm v publikačním průmyslu. Klíčové pojmy jsou následující:

  • Publisher – instance SQL Server, která zpřístupňuje data pro replikaci do jiných instancí (zabalených jako publikace).
  • Publikace – jednotka připravená k předání přijímající instanci složená z kolekce článků, které jsou ve skutečnosti databázovými objekty.
  • Distributor – instance SQL Server zodpovědná za ukládání dat spojených s jedním nebo více vydavateli v databázi zvané distribuční databáze . Místní distributor je uložen ve stejné instanci jako vydavatel, zatímco Vzdálený distributor se nachází v jiné instanci.
  • Odběratel – instance, která přijímá replikovanou databázi. Předplatitelské předplatné je žádost o kopii publikace, kterou očekává od vydavatele.
  • Snímek.

V článku se podělím o několik bodů, které jsem se naučil při konfiguraci replikace SQL Server pro podporu heterogenního předplatitele. Vytvořím publikaci a následně předplatné Oracle, které bude záviset na této publikaci. Také předvedu několik bodů spolu s tokem procesu, které jsou velmi důležité pro odstraňování problémů.

Postup konfigurace relace replikace snímku je následující:

  1. Nakonfigurujte distributora
  2. Nakonfigurujte vydavatele (spolu s publikací včetně publikovaných článků)
  3. Nakonfigurujte odběratele

Poskytnu stručné vysvětlení každého kroku.

Konfigurace distributora

Distributor je instance odpovědná za ukládání informací používaných během replikace. Když se pokusíte vytvořit publikaci v instanci poprvé, SQL Server vám navrhne konfiguraci distributora. V tomto článku je naším distributorem místní distributor .

Vytvoření publikace

Identifikujme databázi obsahující objekty, které bychom chtěli replikovat. Toto bude Databáze publikací .

Chcete-li vytvořit publikační databázi, postupujte podle pokynů na snímcích obrazovky níže.

Tento krok vám umožňuje vybrat typ publikace, kterou chcete konfigurovat. Každý typ publikace je popsán ve spodním panelu. Z důvodu jednoduchosti a kompatibility volíme publikaci snímků. Upozorňujeme, že máme v úmyslu replikovat objekty do instance Oracle. V tomto případě Transakční a Publikace snímků jsou podporovány. Existují další dobré případy použití pro peer-to-peer a slučovací replikaci.

V tomto kroku si vybereme články, které chceme publikovat. SQL Server nám umožňuje publikovat čtyři klíčové typy objektů, například:

  1. Tabulky
  2. Uložené procedury
  3. Zobrazení
  4. Uživatelem definované funkce

Jak můžete vidět, chystáme se zveřejnit dvě tabulky:Orders a OrderLines. Abychom mohli demonstrovat flexibilitu replikace SQL Serveru, filtrujeme záznamy, jak je uvedeno níže.
Poznámka: Zajímá nás, aby počet OrderIDs byl větší než 1000.

Chcete-li vyloučit nežádoucí řádky z publikovaných tabulek, klikněte na Přidat… a poté Další .

Níže uvedené snímky obrazovky ukazují, jak filtrovat sloupce pro tabulku OrderLines.

Dále nakonfigurujte vlastnosti Snapshot Agent. Definujeme počáteční snímek a interval, během kterého je generován nový snímek. Data extrahovaná v tomto kroku jsou uložena v adresáři zadaném při počáteční konfiguraci distributora.

Nejprve nastavte plán spuštění agenta snímku. Klikněte na Další .

Pro každého agenta snímku zadejte účet, pod kterým bude spuštěn.

Poté nakonfigurujte nastavení zabezpečení Snapshot Agent. Tabulka Security Settings otevře další okno, kde definujeme, kdo spouští proces Snapshot Agent, a také určujeme přihlašovací údaje k SQL Server, které mají být připojeny k vydavateli. Tyto principy vyžadují určitá oprávnění, která mohou být ve výrobě trochu riskantní. Použití účtu SQL Server Agent Service je řešením, jak se vyhnout komplikacím, ale ve skutečnosti jej společnost Microsoft NEDOPORUČUJE.

Na konci se budete muset rozhodnout, zda chcete konfiguraci uložit jako skript pro pozdější použití, nebo okamžitě vytvořit publikaci.

V dalším kroku (obr. 16) jsou shrnuty všechny možnosti, které jste vybrali. Před kliknutím na Dokončit se doporučuje provést rychlou kontrolu tlačítko.

Spustí se proces vytváření publikace. Můžete kliknout na Zastavit k přerušení procesu.

Po dokončení procesu se vaše publikace zobrazí v podokně Průzkumník objektů v SQL Server Management Studio.

Přidání odběratele

Předplatitel obdrží publikace zpřístupněné Vydavatelem . Kopie publikace, která má být doručena odběrateli, se nazývá Předplatné . Vydavatel může mít mnoho předplatitelů. Každý
předplatitel obdrží články publikované tímto vydavatelem jako jednotku zvanou publikace, pokud jde o vydavatele a považuje se za předplatné pro předplatitele.

Vytvořením předplatného jednoduše řekneme vydavateli:„Chci mít kopie této publikace“. Stejně jako může mít vydavatel mnoho publikací, může být také mnoho předplatitelů jedné
publikace. Vztah vydavatelů a odběratelů je tedy vztahem jeden k mnoha.

Průvodce novým předplatným nám umožňuje rozhodnout, jakou publikaci bychom si chtěli předplatit. Můžeme si vybrat ze seznamu dříve vytvořených publikací, jak je znázorněno na obr. 20.

Dále se rozhodneme, zda chceme spustit Push Subscription namísto Pull Subscription. Pull Subscription je sice lepší pro výkon, když předpokládáte několik předplatitelů, ale nebude
fungovat pro replikaci heterogenní databáze. Předplatitelé bez SQL Serveru musí používat Pull Subscription. Stojí za zmínku, že články publikované v tomto scénáři jsou také omezeny na tabulky a indexovaná zobrazení.

Přidejte předplatitele Oracle pomocí názvu zdroje dat (DSN). Toto DSN již musí být vytvořeno, otestováno a musí být zjištěno, že funguje, pokud jde o možnost připojení k instanci Oracle prostřednictvím sítě Oracle Net. To znamená, že potřebujete klienta Oracle nainstalovaného na hostiteli SQL Server se záznamem do souboru s názvem tnsnames.ora definování cíle spojení. Tento záznam TNS se zase používá ke konfiguraci názvu zdroje dat, který v této fázi požaduje Průvodce novým předplatným.

Záznam, který jsem vytvořil v mém souboru tnsnames.ora, vypadá takto:

ORCL10G =
 (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = IGIRI-LP)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl10g)
    )
 )

Zvýrazněná část je alias, zatímco ostatní podrobnosti definují cíl připojení. Zda tato položka funguje správně a zda jsou mé proměnné prostředí Oracle správně nakonfigurovány, můžeme potvrdit pomocí tnsping nástroj, jak je uvedeno níže.

Po potvrzení se tento záznam TNS použije ke konfiguraci DSN, které hodláme použít. Název naší služby TNS se nazývá ORCL10G zatímco DSN se nazývá ORCLDC . Je to DSN, které používáme v Průvodci novým předplatným.

Všimněte si, že ke konfiguraci DSN jsme použili 64bitovou verzi ODBC a je to systémové DSN, nikoli uživatelské DSN. Konfigurace nezávisí na tom, kdo je přihlášen k počítači.

Vyberte typ předplatitele, který chcete přidat, a zadejte název zdroje dat. Klikněte na OK .

Vyberte jednoho nebo několik předplatitelů a také zadejte databázi pro každé předplatné.

Po přidání DSN můžeme pokračovat v konfiguraci zabezpečení distribučního agenta. Zjistili jsme, že je to podobné jako v případě, kdy jsme nakonfigurovali Snapshot Agent Security v Průvodci novou publikací.

Zde však máme sekci, kde navážeme spojení s Účastníkem spíše než Vydavateli (připomeňme, že se jedná o předplatné push). Tento uživatelský účet musí být vytvořen v instanci Oracle a měl by mít oprávnění k vytváření tabulek a kvót ve svém výchozím tabulkovém prostoru (zde možná budete potřebovat Oracle DBA).

Přidejte parametry k zabezpečení distribučního agenta a klikněte na OK .

Zadejte účet a možnosti připojení pro každého distribučního agenta a klikněte na Další .

Definujte plán synchronizace pro každého agenta. V našem případě jsme zvolili kontinuální synchronizaci. Klikněte na Další .

Vyberte možnost okamžité inicializace předplatného, ​​což znamená opětovné zkopírování VŠECH dat dostupných ve složce Snapshot. Předplatitelům serveru NoSQL se doporučuje znovu inicializovat předplatné, když jsou do publikace přidány nové články. Klikněte na Další .

Vyberte možnosti, které se mají provést po úspěšném dokončení procesu. Klikněte na Další .

Ověřte zadané informace a klikněte na Dokončit .

Spustí se proces vytváření předplatného.

Předplatné, které jsme právě vytvořili, zobrazuje položku v Průzkumníku objektů (na Vydavateli) namapovanou na její nadřazenou publikaci. Všimněte si, že se nezobrazuje v uzlu Local Subscriptions, který vám poskytuje seznam předplatných vytvořených v aktuální instanci, což v tomto případě není.

Monitorování a odstraňování problémů

SQL Server poskytuje Monitor replikace pro kontrolu a sledování podrobností všech relací replikace v instanci. Monitor replikace může informovat správce o spuštění a dokončení Snapshot Agent. Může nám také ukázat, zda jsou předplatná inicializována a zda Distribuční agent běží hladce.

K naší aktuální konfiguraci je přidruženo osm úloh SQL Server Agent. Zobrazení historie těchto úloh také poskytuje podrobnosti o tom, zda je vše v pořádku.

Skutečné chyby Oracle jsou uvedeny v nástroji Sledování replikace a v protokolu chyb serveru SQL Server, když na ně dojde. Díky této úrovni podrobností je řešení SQL Server Replication zajímavé. Znalost Oracle (pro SQL Server DBA) zabere dlouhou cestu k pochopení chyb, které by mohly nastat.

Podívejte se na příklad chyby na obr. 34. K této chybě došlo před správnou konfigurací prostředí Oracle Net a ODBC. Chyby velmi jasně ukazují, kde je problém.

Zobrazení Job Activity Monitor nás také informuje o tom, které zakázky jsou úspěšné a jakou zakázku musíme podrobně řešit pomocí zkoumání historie úloh.

Jakmile jsou všechny předchozí chyby vyřešeny, otevření odběru dvojitým kliknutím nám poskytne podrobný pohled na všechny relace, chyby a výsledek, který očekáváme, až bude vše v pořádku. Všimněte si, že agent hromadně kopíruje data od vydavatele k předplatiteli v dávkách. Můžeme se také dotazovat na tabulky, které byly vytvořeny v instanci Oracle, a porovnávat záznamy. (obr. 37).

Jak můžete vidět, SQL Server před vytvořením tabulky v Oracle a zkopírováním dat připraví tabulku bez zdrojového schématu (prodeje).

Počet záznamů v instanci Oracle se shoduje s počtem ve zdrojové tabulce a bere v úvahu skutečnost, že tabulku OrderLines filtrujeme pro OrderID větší než 1000.

Závěr

Krátce jsme prošli procesem konfigurace replikace heterogenní databáze s instancí Oracle jako předplatitelem. Ačkoli tato možnost je postupně společností Microsoft zavrhována, existují případy použití, které by stále mohly těžit z možností, které poskytuje tato stará funkce serveru SQL. Sekce Reference poskytuje širší čtení na toto téma, které, jak věřím, bude užitečné pro ty, kteří chtějí více procvičovat.

Odkazy

Konfigurace replikace pro skupiny dostupnosti Always On
Předplatitelé mimo Oracle
Replikace heterogenní databáze
Předplatitelé Oracle


  1. můžeme mít cizí klíč, který není primárním klíčem v žádné jiné tabulce?

  2. DELETE VS DROP v SQL

  3. 3 způsoby, jak najít řádky, které obsahují velká písmena v SQLite

  4. Vývoj vícetabulkové databáze Android SQLite