Článek přečtěte do 7 min.

V posledních dnech jsou stále častější služby multicloudu a migrace z jednoho hyperscaleru na druhý. Zákazníci chtějí dosahovat nejlepších výsledků jak technicky, tak ekonomicky. Nedávno jsme podpořili zákazníky, kteří chtěli migrovat své služby z Microsoft Azure na Oracle Cloud Infrastructure (OCI). Jen málo jejich úloh bylo založeno na Azure SQL Database, což je plně spravovaný databázový stroj typu platform-as-a-service (PaaS), který zvládá většinu funkcí správy databází, jako je upgradování, opravy, zálohování a monitorování, bez zapojení uživatelů.

Migrační služby a řešení z jednoho hyperscaleru do druhého většinou znamenají přesné mapování služeb.

Hyperscalery mohou mít mnoho rozdílů, zejména ve způsobech, jak nabízejí a dodávají služby zákazníkům.

Konkrétně pro Azure SQL Database je model nasazení docela důležitý a musí být vyhodnocen.

Podrobněji máte k dispozici následující možnosti:

  • Na bázi virtuálního jádra (vCore): Tento model nasazení poskytuje volbu mezi zřízenými nebo bezserverovými výpočetními vrstvami:
    • Poskytovaná výpočetní vrstva: Vyberete si přesné množství výpočetních zdrojů, které jsou vždy poskytovány pro vaši pracovní zátěž.
    • Výpočetní vrstva bez serveru: Určujete automatické škálování výpočetních prostředků v konfigurovatelném výpočetním rozsahu. Bezserverová výpočetní vrstva automaticky pozastavuje databáze během neaktivních období, kdy se účtuje pouze úložiště, a automaticky obnovuje databáze, když se aktivita vrátí. Jednotková cena vCore za jednotku času je nižší v zřízené výpočetní vrstvě než ve výpočetní vrstvě bez serveru.
  • Na základě databázové transakční jednotky (DTU): Tento model nasazení poskytuje sdružené výpočetní a úložné prostředky vyvážené pro běžné pracovní zátěže.

Grafy porovnávající modely DTU a vCore

V tomto blogovém příspěvku zkoumáme, jak migrovat Azure SQL Database nasazenou s modely vCore nebo DTU. Pojďme analyzovat dva modely, protože je to kritické při hodnocení přístupu k migraci na OCI.

vCore model

Virtuální jádro (vCore) představuje logický CPU a nabízí možnost vybrat si mezi generacemi hardwaru a fyzickými vlastnostmi hardwaru, jako je počet jader, paměť a velikost úložiště. Model vCore vám poskytuje flexibilitu, kontrolu, transparentnost individuální spotřeby zdrojů a přímočarý způsob, jak převést místní požadavky na zátěž do cloudu. Tento model vám umožňuje vybrat si výpočetní, paměťové a úložné prostředky na základě vašich potřeb pracovního zatížení.

V modelu vCore pro SQL Database si můžete vybrat mezi úrovněmi služeb General Purpose, Business Critical a Hyperscale. Chcete-li se dozvědět více, podívejte se na úrovně služeb vCore.

V modelu vCore závisí cena na výběru a použití následujících faktorů:

  • Úroveň služeb
  • Konfigurace hardwaru
  • Výpočetní prostředky (počet virtuálních jader a množství paměti)
  • Rezervované úložiště databáze
  • Skutečné úložiště záloh

model DTU

Model DTU používá databázovou transakční jednotku (DTU) k výpočtu a seskupování výpočetních nákladů. Databázová transakční jednotka (DTU) představuje smíšenou míru CPU, paměti, čtení a zápisu. Model DTU nabízí sadu předkonfigurovaných svazků výpočetních zdrojů a včetně úložiště pro různé úrovně výkonu aplikací. Pokud dáváte přednost jednoduchosti předem nakonfigurovaného balíčku a pevných plateb každý měsíc, může být pro vaše potřeby vhodnější model DTU.

V modelu nákupu DTU si můžete vybrat mezi základními, standardními a prémiovými úrovněmi služeb pro Azure SQL Database. Chcete-li se dozvědět více, prohlédněte si úrovně služeb DTU. Skladování je zahrnuto v ceně DTU. Další úložiště můžete přidat v úrovních Standard a Premium.

Odhad zdrojů

Při vyhodnocování migrace pro existující úlohy Azure SQL Database je důležitý způsob, jakým je zakoupíte, pro dimenzování prostředků tak, aby byly namapovány do OCI. Zatímco model nákupu vCore lze snadno převést na zdroje OCI, jako jsou vCore na OCPU, úložiště a paměť, DTU tomu tak není. Model DTU představuje smíšenou míru různých zdrojů, jako je CPU, paměť, čtení a zápis, což komplikuje dimenzování zdrojů.

Každá vrstva má jiné požadavky na to, kolik DTU vyžaduje virtuální jádro, jak ukazuje následující převod:

  • Každých 100 DTU v základních nebo standardních vrstvách vyžaduje alespoň 1 vCore.
  • Každých 125 DTU na úrovni Premium vyžaduje alespoň 1 vCore.

Toto pravidlo je přibližné. Nezohledňuje konkrétní hardware použitý pro databázi DTU. Správný způsob, jak odhadnout velikost databáze, je spustit následující mapovací dotaz na každou databázi DTU, abyste získali správná čísla:

WITH dtu_vcore_map AS
(
SELECT rg.slo_name,
       CAST(DATABASEPROPERTYEX(DB_NAME(), 'Edition') AS nvarchar(40)) COLLATE DATABASE_DEFAULT AS dtu_service_tier,
       CASE WHEN slo.slo_name LIKE '%SQLG4%' THEN 'Gen4' --Gen4 is retired.
            WHEN slo.slo_name LIKE '%SQLGZ%' THEN 'Gen4' --Gen4 is retired.
            WHEN slo.slo_name LIKE '%SQLG5%' THEN 'standard_series'
            WHEN slo.slo_name LIKE '%SQLG6%' THEN 'standard_series'
            WHEN slo.slo_name LIKE '%SQLG7%' THEN 'standard_series'
            WHEN slo.slo_name LIKE '%GPGEN8%' THEN 'standard_series'
       END COLLATE DATABASE_DEFAULT AS dtu_hardware_gen,
       s.scheduler_count * CAST(rg.instance_cap_cpu/100. AS decimal(3,2)) AS dtu_logical_cpus,
       CAST((jo.process_memory_limit_mb / s.scheduler_count) / 1024. AS decimal(4,2)) AS dtu_memory_per_core_gb
FROM sys.dm_user_db_resource_governance AS rg
CROSS JOIN (SELECT COUNT(1) AS scheduler_count FROM sys.dm_os_schedulers WHERE status COLLATE DATABASE_DEFAULT = 'VISIBLE ONLINE') AS s
CROSS JOIN sys.dm_os_job_object AS jo
CROSS APPLY (
            SELECT UPPER(rg.slo_name) COLLATE DATABASE_DEFAULT AS slo_name
            ) slo
WHERE rg.dtu_limit > 0
      AND
      DB_NAME() COLLATE DATABASE_DEFAULT <> 'master'
      AND
      rg.database_id = DB_ID()
)
SELECT dtu_logical_cpus,
       dtu_memory_per_core_gb,
       dtu_service_tier,
       CASE WHEN dtu_service_tier = 'Basic' THEN 'General Purpose'
            WHEN dtu_service_tier = 'Standard' THEN 'General Purpose or Hyperscale'
            WHEN dtu_service_tier = 'Premium' THEN 'Business Critical or Hyperscale'
       END AS vcore_service_tier,
       CASE WHEN dtu_hardware_gen = 'Gen4' THEN dtu_logical_cpus * 1.7
            WHEN dtu_hardware_gen = 'standard_series' THEN dtu_logical_cpus
       END AS standard_series_vcores,
       5.05 AS standard_series_memory_per_core_gb,
       CASE WHEN dtu_hardware_gen = 'Gen4' THEN dtu_logical_cpus
            WHEN dtu_hardware_gen = 'standard_series' THEN dtu_logical_cpus * 0.8
       END AS Fsv2_vcores,
       1.89 AS Fsv2_memory_per_core_gb,
       CASE WHEN dtu_hardware_gen = 'Gen4' THEN dtu_logical_cpus * 1.4
            WHEN dtu_hardware_gen = 'standard_series' THEN dtu_logical_cpus * 0.9
       END AS M_vcores,
       29.4 AS M_memory_per_core_gb
FROM dtu_vcore_map;

Zvažte, že následující databáze Azure SQL zakoupené s modelem DTU musí mít velikost:

  • Standardní S0: 10 DTU
  • Standardní S2: 50 DTU

Mapovací dotaz by měl vrátit následující ukázkové výsledky (některé sloupce jsou pro zjednodušení skryté):

 dtu_logical_cpus  dtu_memory_per_core_gb  standard_series_vcores  standard_series_memory_per_core_gb
          0,50                    1:30                 0,500                              5.05
          1,00                    2,65                 1 000                              5.05

Abychom namapovali tyto dvě databáze na OCI, musíme počítat se sloupci standard_series. To znamená, že mapování databáze s 10 DTU vyžaduje 0,5 vCore a 5,05 GB RAM na jádro a mapování databáze s 50 DTU vyžaduje 1 virtuální jádro a 5,05 GB RAM na jádro. Převod těchto čísel na OCI je jednoduchý, vezmeme-li v úvahu, že 1 OCPU se rovná 2 vCore.

Proces migrace

Výběr cílové databáze

Nyní, když známe zdroje potřebné k hostování cílových databází, můžeme identifikovat požadovanou službu OCI. Zdrojová Azure SQL Database běží jako plná služba PaaS na vysoce dostupných infrastrukturách, takže vyhodnoťte cílovou databázovou platformu přesně a podle vašich požadavků.

Následující schéma může pomoci při výběru:

Vývojový diagram pro výběr cílové databáze

Další informace najdete v tématu Nasazení vysoce dostupné databáze Microsoft SQL Server na OCI pomocí skupin dostupnosti Always On .

Migrační přístup využívající export a import bacpac

Když je cílovou databází Microsoft SQL Server na OCI, nejjednodušší možností je vytvořit soubor záložního balíčku (bacpac) zdrojové Azure SQL Database. Můžete ji vytvořit přímo na Azure Portal tak, že vyberete související databázi a exportujete ji:

Obrazovka vytvoření exportu databáze

Po vytvoření je třeba soubor bacpac přesunout do virtuálního počítače (VM) MS SQL Server hostovaného na OCI a poté jej importovat pomocí průvodce aplikací na úrovni Import dat. Podrobné kroky naleznete v tématu Import souboru BACPAC za účelem vytvoření nové databáze uživatelů.

Přístup k migraci pomocí Oracle GoldenGate

Když je cílová databáze Oracle Autonomous Database, Oracle MySql Database nebo Database with PostgreSql, doporučená metoda pro migraci zdrojové Azure SQL Database do databáze OCI pomocí Oracle GoldenGate. Podrobnosti naleznete na stránce produktu Oracle GoldenGate.

Prostřednictvím konzoly Oracle Cloud Console vytvořte připojení k Azure SQL Database, které chcete použít s Oracle GoldenGate.

  1. Na stránce Přehled OCI GoldenGate vyberte Připojení.Vytvoření připojení GoldenGate.Můžete také vybrat Vytvořit připojení v části Začínáme a přejít na krok 3.
  2. Na stránce Připojení vyberte Vytvořit připojení .
  3. Na panelu Vytvořit připojení vyplňte pole Obecné informace:
    • Zadejte název připojení.
    • (Volitelné) Zadejte popis, který vám pomůže odlišit toto připojení od ostatních.
    • Vyberte oddíl, ve kterém chcete vytvořit připojení.
    • Jako Typ vyberte Azure SQL Database.
    • (Volitelné) Chcete-li spravovat klíče nebo přidávat značky, vyberte Zobrazit pokročilé možnosti .
    • V části Zabezpečení vyberte jednu z následujících možností:
      • Chcete-li ponechat veškerou správu šifrovacích klíčů na Oracle, vyberte Použít šifrovací klíč spravovaný Oracle.
      • Vyberte možnost Použít šifrovací klíč spravovaný zákazníkem a vyberte konkrétní šifrovací klíč uložený ve vašem trezoru OCI k zašifrování přihlašovacích údajů pro připojení.
    • V části Štítky přidejte štítky pro uspořádání zdrojů.
  4. Vyberte Další.
  5. Vyplňte pole Podrobnosti připojení.
    • Zadejte název schématu databáze.
    • Zadejte hostitele databáze a čísla portů.
    • Do pole Uživatelské jméno databáze zadejte uživatelské jméno Azure SQL Database.
    • Pro heslo uživatele databáze zadejte heslo pro Azure SQL Database.
    • Pro podrobnosti o SSL vyberte protokol zabezpečení a režim SSL:
      • Prostý
      • TLS a poté vyberte, zda chcete ověřit certifikát serveru
    • Pro Síťové připojení vyberte metodu směrování provozu.
      • Oracle network pro veřejně dostupné zdroje.
      • Zákazníkem přiřazená podsíť pro směrování provozu přes vaši VCN pro přístup k soukromým zdrojům a poté vyberte svou podsíť.
  6. Klikněte na Vytvořit .

Po vytvoření se připojení zobrazí v seznamu připojení a nasazení Oracle GoldenGate jej může použít. V případě potřeby vytvořte nasazení GoldenGate:

Obrazovka nasazení GoldenGate

Ujistěte se, že připojení vytvořené jako zdroj přiřadíte k nasazení Golden Gate. Chcete-li dokončit proces migrace, přečtěte si oficiální dokumentaci Oracle Golden Gate.

Závěr

OCI má mnoho platných alternativ, které můžete použít jako cílovou databázi při migraci služby Azure SQL Database PaaS. Nejdůležitějšími kroky jsou dimenzování zdrojů potřebných pro zdrojovou databázi, výběr cílové databázové služby a následný přístup k migraci.

Zdroj: Oracle