Sdílet prostřednictvím


Převod databází MySQL (MySQLToSQL)

Po připojení k MySQL se připojte k SQL Serveru nebo Azure SQL a nastavte možnosti mapování projektů a dat, můžete převést databázové objekty MySQL na SQL Server nebo objekty Azure SQL Database pomocí nástroje SQL Server Migration Assistant (SSMA) pro MySQL.

Proces převodu

Převod databázových objektů přebírá definice objektů z MySQL, převede je na podobné objekty SQL Serveru nebo Azure SQL a pak tyto informace načte do metadat SSMA. Nenačítá informace do instance SQL Serveru. Objekty a jejich vlastnosti pak můžete zobrazit pomocí SQL Serveru nebo Průzkumníka metadat SQL Azure.

Během převodu SSMA vytiskne výstupní zprávy do podokna Výstup a chybové zprávy do podokna Seznam chyb. Pomocí informací o výstupu a chybě určete, jestli je nutné upravit databáze MySQL nebo proces převodu, abyste získali požadované výsledky převodu.

Nastavení možností převodu

Před převodem objektů zkontrolujte možnosti převodu projektu v dialogovém okně Nastavení projektu. Pomocí tohoto dialogového okna můžete nastavit, jak SSMA převádí tabulky a indexy. Další informace naleznete v tématu Nastavení projektu (převod).

Výsledky převodu

Následující tabulka ukazuje, které objekty MySQL jsou převedeny a výsledné objekty SQL Serveru:

Objekty MySQL Výsledné objekty SQL Serveru
Tabulky se závislými objekty, jako jsou indexy SSMA vytváří tabulky se závislými objekty. Tabulka je převedena se všemi indexy a omezeními. Indexy se převedou na samostatné objekty SQL Serveru.

mapování prostorového datového typu lze provádět pouze na úrovni uzlu tabulky.

Pokud potřebujete více informací o nastavení převodu tabulky, podívejte se na Nastavení převodu
Funkce Pokud lze funkci přímo převést na Transact-SQL, SSMA vytvoří funkci. V některých případech musí být funkce převedena na uloženou proceduru. To lze provést pomocí konverze funkcí v nastavení projektu. V tomto případě SSMA vytvoří uloženou proceduru a funkci, která volá uloženou proceduru.

Zvolené možnosti:

- Převést podle nastavení projektu
- Převést na funkci

- Převést na uloženou proceduru

Další informace o nastavení převodu funkcí najdete v tématu Nastavení převodu
Postupy Pokud lze proceduru přímo převést na Transact-SQL, SSMA vytvoří uloženou proceduru. V některých případech musí být uložená procedura volána v autonomní transakci. V tomto případě SSMA vytvoří dvě uložené procedury: jednu, která implementuje proceduru, a druhou, která se používá pro volání implementace uložené procedury.
Převod databáze Databáze jako objekty MySQL nejsou přímo převedeny pomocí SSMA for MySQL. Databáze MySQL se zpracovávají spíše jako název schématu a během převodu se ztratí všechny fyzické parametry. SSMA for MySQL používá mapování databází MySQL na schémata SQL Serveru ke spárování objektů z databáze MySQL s odpovídající databází a schématem SQL Serveru.
Převod aktivační události SSMA vytváří triggery na základě následujících pravidel:

Před spuštěním jsou triggery typu BEFORE převedeny na T-SQL triggery typu INSTEAD OF.

– Triggery AFTER se převedou na triggery AFTER T-SQL s iteracemi na řádky nebo bez ní.
Zobrazit převod SSMA vytvoří zobrazení se závislými objekty.
Převod výkazů - Každý objekt příkazu SQL může obsahovat jeden příkaz MySQL (například DDL, DML a jiné typy příkazů) nebo BEGIN ... END blok.

- Při konverzi bloku MultiStatement: konverze bloku BEGIN ... END může příkaz SQL také obsahovat blok BEGIN ... END podobný tomu v definici procedury, funkce nebo spouště. Tyto bloky by se měly převést stejným způsobem jako u jednoho objektu příkazů MySQL.

Převod databázových objektů MySQL

Chcete-li převést databázové objekty MySQL, nejprve vyberte objekty, které chcete převést, a poté nechte SSMA provést převod. Chcete-li zobrazit výstupní zprávy během převodu, v nabídce Zobrazit vyberte Výstupní.

Převod objektů MySQL na SQL Server nebo syntaxi Azure SQL

  1. V Průzkumníku metadat MySQL rozbalte server MySQL a potom rozbalte Databáze.

  2. Vyberte objekty, které chcete převést:

    • Chcete-li převést všechna schémata, zaškrtněte políčko vedle Databáze.

    • Pokud chcete databázi převést nebo vynechat, zaškrtněte políčko vedle názvu databáze.

    • Chcete-li převést nebo vynechat kategorii objektů, rozbalte schéma a potom zaškrtněte nebo zrušte zaškrtnutí políčka vedle kategorie.

    • Chcete-li převést nebo vynechat jednotlivé objekty, rozbalte složku kategorie a potom zaškrtněte nebo zrušte zaškrtnutí políčka vedle objektu.

  3. Chcete-li převést všechny vybrané objekty, klikněte pravým tlačítkem na Databáze a vyberte Převést schéma.

    Jednotlivé objekty nebo kategorie objektů můžete také převést tak, že kliknete pravým tlačítkem myši na objekt nebo jeho nadřazenou složku a pak vyberete Převést schéma.

Zobrazení problémů s převodem

Některé objekty MySQL nemusí být převedeny. Míru úspěšnosti konverze můžete určit zobrazením souhrnné zprávy o konverzi.

Zobrazit souhrnnou sestavu

  1. V Průzkumníku metadat MySQL vyberte Databáze.

  2. V pravém podokně vyberte kartu Sestava.

    Tato zpráva zobrazuje souhrnné hodnocení pro všechny databázové objekty, které byly posouzeny nebo převedeny. Můžete také zobrazit souhrn pro jednotlivé objekty:

    • Pokud chcete zobrazit sestavu pro jednotlivé schéma, vyberte databázi v Průzkumníku metadat MySQL.

    • Pokud chcete zobrazit sestavu pro jednotlivé objekty, vyberte objekt v Průzkumníku metadat MySQL. Objekty s problémy s převodem mají červenou ikonu chyby.

U objektů, které selhaly převod, můžete zobrazit syntaxi, která způsobila selhání převodu.

Zobrazení individuálních problémů s převodem

  1. V Průzkumníku metadat MySQL rozbalte Databáze.

  2. Rozbalte databázi, která zobrazuje červenou ikonu chyby.

  3. V databázi rozbalte složku s červenou ikonou chyby.

  4. Vyberte objekt, který má červenou ikonu chyby.

  5. V pravém podokně vyberte kartu Sestava.

  6. V horní části záložky Sestava je rozevírací seznam. Pokud se v seznamu zobrazí Statistika, změňte výběr na Zdroj.

    SSMA zobrazí zdrojový kód a několik tlačítek bezprostředně nad kódem.

  7. Vyberte tlačítko Další problém. Jedná se o červenou ikonu chyby se šipkou vpravo.

    SSMA zvýrazní první problematický zdrojový kód, který najde v aktuálním objektu.

U každé položky, která se nedá převést, musíte určit, co chcete s tímto objektem udělat:

  • Objekt v databázi MySQL můžete upravit tak, aby odebral nebo upravil problematický kód. Pokud chcete načíst aktualizovaný kód do SSMA, musíte aktualizovat metadata. Další informace najdete v tématu Připojení k MySQL

  • Objekt můžete vyloučit z migrace. V SQL Serveru nebo Průzkumníku metadat SQL Azure a Průzkumníku metadat MySQL zrušte zaškrtnutí políčka vedle položky před načtením objektů do SQL Serveru nebo Azure SQL a migrací dat z MySQL.