Migrace Accessové databáze do SQL serveru

Máme omezení a Accessová databáze není výjimečná. Databáze Access má například omezení velikosti 2 GB a nemůže podporovat více než 255 souběžných uživatelů. Pokud má vaše databáze Access přejít na další úroveň, můžete ji migrovat na SQL Server. SQL Server (bez místních nebo v cloudu v Azure) podporuje větší objemy dat, více souběžných uživatelů a má větší kapacitu než databázový stroj JET/ACE. Tento průvodce vám nabídne hladký průběh jízdy SQL serveru, pomáhá chránit Accessová řešení, která jste vytvořili, a Hopefully motivů k používání Accessu pro budoucí databázová řešení. Průvodce přenesením byl odebrán z Accessu v Accessu 2013, takže teď můžete používat Microsoft SQL Server Migration Assistant (SSMA). Abyste mohli migraci úspěšně migrovat, postupujte podle těchto fází.

Fáze migrace databáze na SQL Server

Než začnete

Následující části poskytují pozadí a další informace, které vám pomůžou začít.

Rozdělené databáze

Všechny databázové objekty Accessu mohou být v jednom databázovém souboru nebo mohou být uloženy ve dvou databázových souborech: front-end databázi a back-end databáze. Tento postup se nazývá Rozdělování databáze a usnadňuje sdílení v síťovém prostředí. Soubor serverové databáze musí obsahovat jenom tabulky a relace. Soubor front-end musí obsahovat pouze všechny objekty, včetně formulářů, sestav, dotazů, maker, modulů VBA a propojených tabulek k back-end databázi. Při migraci Accessové databáze je to podobné rozdělení databáze v systému SQL Server jako nový back-end pro data, která jsou nyní na serveru.

V důsledku toho můžete zachovat front-end databázi Accessu s propojenými tabulkami v tabulkách SQL serveru. Efektivně můžete využít výhod rychlého vývoje aplikací, který poskytuje databáze Access, a také škálovatelnost SQL serveru.

Výhody SQL serveru

Potřebujete ještě přesvědčit migraci na SQL Server? Tady jsou některé další výhody, které by bylo možné představit:

  • Více souběžných uživatelů    SQL Server může zpracovávat mnoho souběžných uživatelů než Access a minimalizuje požadavky na paměť, když se přidají další uživatelé.

  • Vyšší dostupnost    V systému SQL Server můžete databázi, která je právě používána, dynamicky zálohovat (přírůstková nebo kompletní). Není proto třeba nutit uživatele k zavření databáze, aby bylo možné vytvořit zálohu dat.

  • Vysoký výkon a škálovatelnost    Databáze SQL serveru obvykle vykonává lepší výkon než databáze Accessu, obzvláště s velkou databází ve formátu TB. SQL Server navíc zpracovává dotazy mnohem rychleji a efektivně tím, že zpracovává dotazy uživatelů pomocí několika nativních vláken v jednom procesu.

  • Zlepšené zabezpečení    Pokud používáte důvěryhodné připojení, SQL Server se integruje s zabezpečením systému Windows, aby poskytoval jednotný integrovaný přístup k síti a databázi a využívaly oba systémy zabezpečení. Je to mnohem jednodušší spravovat složitá zabezpečovací schémata. SQL Server je ideální úložištěm citlivých informací, jako jsou rodné číslo, data kreditní karty a adresy, které jsou důvěrné.

  • Okamžitá obnovitelnost    Pokud dojde k chybě operačního systému nebo k výpadku napájení, SQL Server může databázi automaticky obnovit do konzistentního stavu v nějakém počtu minut a bez zásahu správce databáze.

  • Použití sítě VPN    Přístup a virtuální privátní sítě (VPN) se neobjeví. Ale pomocí SQL serveru můžou vzdálení uživatelé používat front-end databázi Accessu na stolním počítači a back-end SQL serveru, který je umístěný za branou firewall VPN.

  • SQL Server Azure    Kromě výhod systému SQL Server nabízí dynamickou škálovatelnost bez výpadků, inteligentní optimalizace, globální škálovatelnost a dostupnost, vyloučení hardwarových nákladů a omezenou správu.

Volba nejlepšího SQL serveru Azure

Pokud migrujete na Azure SQL Server, můžete si vybrat ze tří možností, z nichž každá má různé výhody:

  • Jednotlivé databázové/elastické fondy    Tato možnost má vlastní sadu prostředků spravovaných prostřednictvím databázového serveru SQL. Jedna databáze je jako databáze obsažená na serveru SQL Server. Můžete také přidat elastický fond, což je kolekce databází se sdílenou sadou prostředků spravovaných prostřednictvím databázového serveru SQL. Nejčastěji používané funkce SQL serveru jsou k dispozici v rámci předdefinovaných záloh, oprav a obnovení. Ale nemůžete být v nezaručené přesné doby údržby a migrace ze systému SQL Server by mohla být pevná.

  • Spravovaná instance    Tato možnost je kolekce databází systému a uživatelů se sdílenou sadou prostředků. Spravovaná instance je jako instance databáze SQL serveru, která je vysoce kompatibilní s místním serverem SQL. Spravovaná instance má integrované zálohování, opravy a obnovení a může se jednoduše migrovat z SQL serveru. Existuje ale malý počet funkcí systému SQL Server, které nejsou k dispozici, a není zaručena přesná doba údržby.

  • Azure Virtual Machine    Tato možnost umožňuje spustit SQL Server ve virtuálním počítači v cloudu Azure. Máte úplnou kontrolu nad serverem SQL serveru a jednoduchou cestou migrace. Je ale potřeba spravovat zálohy, opravy a obnovení.

Další informace najdete v článku Volba cesty migrace databáze do Azure a Zvolte správnou možnost SQL serveru v Azure.

První kroky

K dispozici je několik problémů, které vám pomůžou zamezit proces migrace před spuštěním SSMA:

  • Přidání indexů a primárních klíčů tabulek    Ujistěte se, že každá tabulka aplikace Access obsahuje index a primární klíč. Systém SQL Server vyžaduje, aby všechny tabulky měly alespoň jeden index a aby tabulka mohla odkazovat na primární klíč, pokud se má aktualizovat.

  • Kontrola vztahů primárních a cizích klíčů    Zkontrolujte, jestli jsou tyto relace založené na polích se konzistentními datovými typy a velikostmi. SQL Server nepodporuje spojené sloupce s různými datovými typy a velikostmi omezení v cizím klíči.

  • Odebrání sloupce přílohy    SSMA nepřenese tabulky, které obsahují sloupec přílohy.

Před spuštěním SSMA udělejte následující kroky.

  1. Zavřete Accessovou databázi.

  2. Zajistěte, aby aktuální uživatelé připojení k databázi zavřeli také databázi.

  3. Pokud je databáze ve formátu souboru. mdb, odeberte individuální uživatelské zabezpečení.

  4. Vytvořte zálohu databáze. Další informace najdete v článku Ochrana dat pomocí procesů zálohování a obnovení.

Tip:    Zvažte instalaci Microsoft SQL Server Express Edition na plochu, která podporuje až 10 GB a je bezplatná a jednodušší způsob, jak procházet a zkontrolovat migraci. Po připojení použijte jako instanci databáze LocalDB.

Tip:    Pokud je to možné, použijte samostatnou verzi aplikace Access. Pokud používáte Office 365, můžete pomocí databázového stroje Accessu 2010 migrovat Accessovou databázi při používání SSMA. Další informace najdete v článku databáze Microsoft Access Database Engine 2010 Redistributable.

Spusťte SSMA

Microsoft poskytuje Microsoft SQL Server Migration Assistant (SSMA), který usnadňuje migraci. SSMA převážně migruje tabulky a výběrové dotazy bez parametrů. Formuláře, sestavy, makra a moduly VBA se nepřevádějí. Průzkumník metadat systému SQL Server zobrazuje objekty databáze Accessu a objekty SQL serveru, které umožňují zkontrolovat aktuální obsah obou databází. Tato dvě připojení se ukládají do souboru migrace, abyste se rozhodli přenést další objekty v budoucnu.

Poznámka:    Proces migrace může trvat určitou dobu v závislosti na velikosti databázových objektů a množství dat, která je nutné přenést.

  1. Pokud chcete migrovat databázi pomocí SSMA, napřed poklikejte na stažený soubor MSI a nainstalujte si software. Ujistěte se, že jste pro váš počítač nainstalovali příslušnou 32 nebo 64.

  2. Po nainstalování SSMA otevřete ho na ploše, nejlépe z počítače se souborem databáze Accessu.

    Můžete ho taky otevřít na počítači, který má přístup k databázi Accessu ze sítě ve sdílené složce.

  3. Podle pokynů v SSMA zadejte základní informace, jako je třeba umístění serveru SQL, databáze a objekty Access, které chcete migrovat, informace o připojení a zda chcete vytvořit propojené tabulky.

  4. Pokud migrujete na SQL Server 2016 nebo novější a chcete aktualizovat propojenou tabulku, přidejte sloupec rowversion výběrem možnosti zkontrolovat nástroje > nastavení projektu > Obecné.

    Pole rowversion pomáhá předcházet konfliktům záznamů. Access používá toto pole rowversion v propojené tabulce SQL serveru k určení, kdy byl záznam naposledy aktualizován. Když do dotazu přidáte pole rowversion, Access ho použije k opětovnému vybrání řádku po operaci aktualizace. Tím se zlepší efektivita díky tomu, aby nedocházelo k chybám konfliktu při psaní a scénáře odstranění záznamů, které se můžou vyskytnout, když Access zjistí různé výsledky z původního odesílání, třeba se může objevit u datových typů s plovoucí desetinnou čárkou. sloupcích. Nepoužívejte ale pole rowversion ve formulářích, sestavách nebo kódu jazyka VBA. Další informace najdete v tématu rowversion.

    Poznámka:    Vyhýbejte se nerowversion s časovými razítky. Ačkoli je klíčové slovo časové razítko v systému SQL Server synonymem pro RowVersion, nemůžete použít rowversion jako způsob, jak časové razítkí zadávat.

  5. Chcete-li nastavit přesné datové typy, vyberte možnost zkontrolovat nástroje > nastavení projektu > mapování typů. Pokud například ukládáte jenom anglický text, můžete místo datového typu nvarchar použít typ varchar .

Převod objektů

SSMA převádí objekty Accessu na objekty SQL serveru, ale nekopíruje objekty hned. SSMA nabízí seznam následujících objektů, které můžete migrovat, abyste se mohli rozhodnout, jestli je chcete přesunout do databáze SQL serveru:

  • Tabulky a sloupce

  • Výběr dotazů bez parametrů

  • Primární a cizí klíče

  • Indexy a výchozí hodnoty

  • Check Constraints (povolit vlastnost sloupce s nulovou délkou, pravidlo ověření sloupce, ověřování tabulky)

Nejvhodnějším postupem je použít sestavu vyhodnocování SSMA, která zobrazuje výsledky převodu, včetně chyb, varování, informativních zpráv, odhadů času pro migraci a jednotlivých kroků pro opravu chyb, které se mají provést, než se skutečně přesunete. kresby.

Když převedete databázové objekty, převedou definice objektů z Accessových metadat, převede je na ekvivalentní syntaxi Transact-SQL (T-SQL)a pak tyto informace načte do projektu. Objekty SQL Server nebo SQL Azure a jejich vlastnosti můžete zobrazit pomocí SQL serveru nebo aplikace SQL Azure metadata Explorer.

Pokud chcete převést, načíst a migrovat objekty na SQL Server, postupujte podle těchto pokynů.

Tip:    Po úspěšné migraci databáze Accessu uložte soubor projektu pro pozdější použití, abyste mohli data migrovat znovu pro účely testování nebo finální migrace.

Propojení tabulek

Zvažte instalaci nejnovější verze ovladačů OLE DB a ODBC pro SQL Server namísto použití nativních ovladačů systému SQL Server, které jsou součástí systému Windows. Novější ovladače jsou rychlejší, ale podporují nové funkce v Azure SQL, které nepoužívají předchozí ovladače. Ovladače můžete nainstalovat na každý počítač, na kterém je použitá převedená databáze. Další informace najdete v tématu Microsoft OLE DB Driver 18 for SQL Server a Microsoft ODBC Driver 17 for SQL Server.

Po migraci tabulek Accessu můžete vytvořit odkaz na tabulky v SQL serveru, které teď hostí data. Přímé propojení z Accessu také nabízí jednodušší způsob, jak zobrazit data místo složitějších nástrojů pro správu SQL serveru.  V závislosti na oprávněních nastavených správcem databáze SQL serverumůžete zadávat dotaz na data a upravovat je.

Poznámka:    Pokud vytvoříte název zdroje dat ODBC při vytváření propojení s databází SQL serveru během procesu propojení, vytvořte stejný název DSN na všech počítačích, které používají novou aplikaci nebo programově použijte připojovací řetězec uložený v souboru DSN.

Další informace najdete v tématu propojení nebo import dat z databáze Azure SQL serveru a Import nebo propojení dat z databáze SQL serveru.

Protokolu   Nezapomeňte použít Správce propojených tabulek v Accessu k pohodlné aktualizaci a propojování tabulek. Další informace najdete v tématu Správa propojených tabulek.

Testování a revize

V následujících částech jsou popsány běžné problémy, se kterými se můžete setkat při migraci, a jak s nimi pracovat.

Dotazy

Převedou se jenom dotazy SELECT. jiné dotazy nejsou, včetně výběrových dotazů, které přebírají parametry. Některé dotazy možná nebudou úplně převedeny a SSMA hlásí chyby dotazu během převodu. Můžete ručně upravovat objekty, které se nepřevádí pomocí syntaxe T-SQL. Chyby syntaxe mohou také v systému SQL Server vyžadovat ruční převádění funkcí specifických pro přístup a datových typů. Další informace najdete v článku porovnání Access SQL s SQL Server TSQL.

Datové typy

Access a SQL Server mají podobné datové typy, ale uvědomte si následující potenciální problémy.

Velké číslo    Datový typ velké číslo slouží k uložení nepeněžní a číselné hodnoty a je kompatibilní s datovým typem bigint systému SQL. Tento datový typ můžete použít k efektivnímu výpočtu dlouhých čísel, ale je potřeba používat formát souboru databáze ACCDB ve verzi 16 (16.0.7812 nebo novější), který je lépe v 64. Další informace najdete v článku použití datového typu velké číslo a volba 64 mezi 64bitovou nebo 32ovou verzí Office.

Ano/Ne    Ve výchozím nastavení se sloupec typu Ano/ne převede na pole typu SQL Server. Chcete-li zabránit zamykání záznamů, Ujistěte se, že je nastavené pole s hodnotou NULL. V SSMA můžete vybrat sloupec bit, který nastaví vlastnost Povolit hodnoty null na hodnotu ne. V TSQL použijte příkazy Create Table nebo ALTER TABLE .

Datum a čas    Existuje několik hledisek data a času:

  • Pokud je úroveň kompatibility databáze 130 (SQL Server 2016) nebo vyšší a propojená tabulka obsahuje jeden nebo více sloupců DateTime nebo datetime2, může tabulka vrátit zprávu #deleted ve výsledcích. Další informace najdete v článku propojení tabulky Accessu s databází SQL Server vrátí #deleted.

  • Použijte datový typ datetime2 , který má větší rozsah dat než DateTime.

  • Při dotazování na data na SQL serveru Vezměte v úvahu čas a datum. Příklady:

    • DateOrdered mezi 1/1/19 a 1/31/19 nesmí obsahovat všechny objednávky.

    • DateOrdered mezi 1/1/19 00:00:00 1/31/19 11:59:59 dop./odp. zahrnuje všechny objednávky.

Příloha   Datový typ Příloha slouží k uložení souboru v databázi Accessu. V systému SQL Server můžete zvážit několik možností. Soubory z Accessové databáze můžete extrahovat a uložit odkazy na soubory v databázi SQL serveru. Nebo můžete pomocí FILESTREAM, tabulek nebo vzdáleného úložiště objektů BLOB (RBS) zachovat přílohy uložené v databázi SQL serveru.

Hypertextový odkaz    Tabulky Accessu mají sloupce hypertextových odkazů, které SQL Server nepodporuje. Ve výchozím nastavení budou tyto sloupce převedeny na sloupce nvarchar (max) na SQL serveru, ale mapování můžete upravit tak, aby byl zvolen menší datový typ. Pokud v řešení Accessu nastavíte vlastnost hypertextový odkaz na hodnotu pravda, můžete ve formulářích a sestavách použít chování hypertextového odkazu.

Vícehodnotové pole    Vícehodnotové pole Access se převede na SQL Server jako pole ntext, které obsahuje množinu hodnot s oddělovači. Protože SQL Server nepodporuje datový typ s více hodnotami, který modeluje relaci M:N, může být zapotřebí další návrh a převod.

Další informace o mapování přístupových typů a dat serveru SQL Server najdete v tématu porovnání datových typů.

Poznámka:    Pole s více hodnotami se nepřevádějí a byla zastavena v Accessu 2010.

Další informace najdete v tématu typy data a času, řetězce a binární typya číselné typy.

Visual Basic

Ačkoli SQL Server nepodporuje jazyk VBA, uvědomte si následující možné problémy:

Funkce jazyka VBA v dotazech    Dotazy Accessu podporují funkce jazyka VBA u dat ve sloupci dotazu. Dotazy, které používají funkce jazyka VBA, ale nemohou být spouštěny v systému SQL Server, proto jsou všechny požadované údaje předány do aplikace Microsoft Access ke zpracování. Ve většině případů by se měly tyto dotazy převést na předávací dotazy.

Funkce definované uživatelem v dotazech    Dotazy Microsoft Accessu podporují použití funkcí definovaných v modulech VBA ke zpracování předaných dat. Dotazy mohou být samostatné dotazy, příkazy SQL ve zdrojích záznamů formuláře nebo sestavy, zdroje dat polí se seznamem a seznamy ve formulářích, sestavách a polích tabulek a výchozích nebo ověřovacích výrazech. SQL Server nemůže spustit tyto funkce definované uživatelem. Je možné, že budete muset ručně změnit návrh těchto funkcí a převést je na uložené procedury na SQL serveru.

Optimalizace výkonu

Nejvýraznějším způsobem, jak optimalizovat výkon pomocí nového, back-end SQL serveru, je rozhodnout, kdy použít místní nebo vzdálené dotazy. Při migraci dat na SQL Server přecházíte ze souborového serveru na model databáze klient-server. Řiďte se těmito obecnými pravidly:

  • Pro nejrychlejší přístup spouštějte na klientovi malé dotazy jen pro čtení.

  • Na serveru běží dlouhé, čtení/zápis, abyste mohli využívat větší výkon.

  • Minimalizujte zatížení sítě pomocí filtrů a agregace a přeneste jenom data, která potřebujete.

Optimalizace výkonu v modelu databáze klientského serveru

Další informace najdete v tématu Vytvoření předávacího dotazu.

Následují další doporučené pokyny.

Logika serveru    Aplikace může také používat zobrazení, uživatelem definované funkce, uložené procedury, počítaná pole a aktivační události k centralizaci a sdílení logiky aplikace, obchodních pravidel a zásad, složitých dotazů, ověření dat a kódu referenční integrity na Server, nikoli klient. Položte žádost, můžete tento dotaz nebo úkol na serveru udělat lépe a rychleji? Nakonec otestujte každý dotaz, abyste zajistili optimální výkon.

Použití zobrazení ve formulářích a sestavách    V Accessu postupujte takto:

  • U formulářů použijte zobrazení SQL pro formulář určený jen pro čtení a indexované zobrazení SQL pro formulář pro čtení a zápis jako zdroj záznamů.

  • U sestav použijte jako zdroj záznamů zobrazení SQL. Pro každou sestavu však vytvořte samostatné zobrazení, abyste mohli snadněji aktualizovat konkrétní sestavu, aniž by došlo k ovlivnění jiných sestav.

Minimalizace načítání dat ve formuláři nebo sestavě    Nezobrazujte data, dokud o ně uživatel neodpoví. Pokud třeba zaškrtnete políčko zdroj záznamů prázdný, budou uživatelé ve formuláři vybírat filtr a potom do něj naplnit filtr. Nebo použijte klauzuli WHERE objektu DoCmd. OtevřítFormulář a DoCmd. OtevřítSestavu a zobrazte přesný záznam (ů), který uživatel potřebuje. Zvažte vypnutí navigace mezi záznamy.

Buďte opatrní při heterogenních dotazech   Vyvarujte se používání dotazu, který kombinuje místní tabulku a propojenou tabulku SQL serveru, někdy označovaný jako hybridní dotaz. Tento typ dotazu pořád vyžaduje Access ke stažení všech dat SQL serveru do místního počítače a pak dotaz spusťte, ale nespustí dotaz na SQL serveru.

Kdy použít místní tabulky    Zvažte použití místních tabulek pro data, která se mění, například seznam států nebo provincií v zemi nebo oblasti. Statické tabulky se často používají k filtrování a mohou být lépe na front-end Accessu.

Další informace najdete v tématu Nástroj pro optimalizaci ladění databázového stroje, použití Průvodce analýzou výkonu k optimalizaci databáze Accessa optimalizaci aplikací Microsoft Office Access propojených s SQL serverem.

Viz také

Průvodce migrací databáze v Azure

blogu migrace dat Microsoftu

Microsoft Access pro migraci, převod ahttps://www.fmsinc.com/consulting/sqlserverupsizing.aspxpřenesení SQL serveru

Způsoby sdílení databáze aplikace Access pro klientské počítače

Poznámka:  Tato stránka byla přeložena automaticky a může obsahovat gramatické chyby nebo nepřesnosti. Naším cílem je to, aby pro vás byl její obsah užitečný. Mohli byste nám prosím dát vědět, jestli vám informace pomohly? Pokud chcete, můžete se podívat na anglickou verzi článku.

Rozšiřte své dovednosti s Office
Projít školení
Získejte nové funkce jako první
Připojte se k účastníkům programu Office Insiders

Byly tyto informace užitečné?

Děkujeme vám za zpětnou vazbu.

Děkujeme vám za váš názor. Vypadá to, že bude užitečné, když vás spojíme s některým z našich agentů z podpory Office.

×