sql >> Databáze >  >> Database Tools >> SSMS

Migrace databáze SQL pomocí SSMS

Migrace MSSQL mezi servery může být náročná bez správných pokynů, které vás udrží na správné cestě. V tomto článku nastíním různé způsoby migrace databází Microsoft SQL Server mezi servery nebo instancemi. Ať už potřebujete přesunout jednu databázi,  mnoho databází, přihlašovacích údajů nebo uložených procedur a pohledů, postaráme se o vás!

Existuje mnoho okolností, kdy budete muset přesunout databázi nebo obnovit databáze. Nejběžnější důvody jsou:

  • Přesun na zcela nový server.
  • Přechod na jinou instanci SQL.
  • Vytvoření vývojového serveru nebo spuštění produkčního serveru.
  • Obnova databází ze zálohy.

Existují dva hlavní způsoby, jak přesunout databáze SQL. Ručně pomocí Microsoft SQL Server Management Studio (SSMS) nebo pomocí příkazového řádku. Způsob, který zvolíte, závisí na tom, co potřebujete dosáhnout. Pokud přesouváte jednu databázi nebo jen několik, bude nejjednodušším přístupem ruční zálohování a obnova databází pomocí SSMS. Pokud přesouváte hodně databází (předpokládejte více než 10), pak použití metody příkazového řádku urychlí proces. Metoda příkazového řádku vyžaduje více přípravné práce předem, ale pokud přenášíte desítky databází, pak se vyplatí čas strávený konfigurací skriptu namísto migrace každé databáze jednotlivě. Pokud si nejste jisti, jakou metodu použít, vyzkoušejte nejprve manuální přístup, dokud se s procesem nesetkáte. Pro hlubší pochopení metodologie doporučuji přečíst celou cestu.

Užitečné odkazy na terminologii

SSMS – Zkratka pro Microsoft S QL S erver M řízení S studio.

Zdrojový server – Server nebo instance, ze které přesouváte databáze ze nebo vypnuto .

Cílový server – Server nebo instance, na kterou přesouváte databáze na .

Ruční metoda

Přesouvání SQL databází ruční metodou může být velmi snadné. Je to preferovaný proces pro přenos několika nebo menších databází. Abyste mohli postupovat podle této části příručky, musíte mít nainstalované MSSQL a Microsoft SQL Server Management Studio (SSMS).

Zálohování databází na zdrojovém serveru

1. Začněte přihlášením na zdrojový server (server, ze kterého přesouváte databáze nebo ze kterého přesouváte). Budete chtít otevřít Microsoft SQL Server Management Studio výběrem Start> Microsoft SQL Server>  Microsoft SQL Server Management Studio .

2. Přihlaste se k serveru SQL pomocí ověřování Windows nebo ověřování SQL.

3. Rozbalte server (v našem případě SQL01 ), rozbalte Databáze , vyberte první databázi, kterou chcete přesunout (obrázek níže).

4. Klikněte pravým tlačítkem na svou databázi a vyberte Úkoly poté klikněte na Zálohovat .

5. Odtud se nyní nacházíte v Zálohovací databázi obrazovka. Můžete si vybrat typ zálohy, například Plná nebo Diferenciální , ujistěte se, že je vybrána správná databáze, a nastavte cíl pro zálohu SQL. Pro náš příklad můžeme ponechat Zálohování Typ jako Plná .

6. V části Záloha Typ , zaškrtněte políčko „Záloha pouze pro kopírování .“ Pokud používáte DPM nebo jinou formu zálohování serveru, zálohování bez Pouze kopírování příznak způsobí přerušení řetězce zálohování.

7. V části Cíl uvidíte umístění pro cestu nové zálohy. Obvykle Odstraníte tento záznam a poté Přidat nový pro výběr složky, ke které má SQL přístup pro čtení/zápis. Přidání nového Cíl zálohy ukazuje cestu podobnou následující:

C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\

Tato cesta C:\ je místo, kde je uložená záloha databáze. Poznamenejte si toto umístění pro pozdější použití, protože se jedná o výchozí cestu k uloženým zálohám a pro služby SQL budete muset mít správný přístup pro čtení/zápis.

Poznámka:Pokročilým uživatelům může stačit ponechat cíl tak, jak je, za předpokladu, že jsou ve výstupní složce správná oprávnění.

8. Dále připojte název souboru na konec této cesty, například AdventureWorks2012-081418 .bak – Nezapomeňte zakončit název souboru příponou .bak a vyberte OK

10. Jakmile stisknete OK na Vybrat cíl zálohy jste připraveni zálohovat databázi! Vše, co nyní musíte udělat, je stisknout OK a databáze se začne zálohovat. V levém dolním rohu uvidíte indikátor průběhu a po dokončení zálohování se zobrazí okno s nápisem 'Zálohování databáze 'AdventureWorks2012' bylo úspěšně dokončeno. '

Přejděte do výše uvedené cílové cesty (v tomto případě C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\ ) uvidíte svůj nově vytvořený soubor (v tomto případě AdventureWorks2012-081418.bak ) - Gratulujeme! Tento soubor představuje úplný export vaší databáze a je připraven k importu na nový server. Pokud máte více databází, opakujte výše uvedené kroky pro každou databázi, kterou přesouváte. Po zkopírování celého procesu databáze přejděte k dalšímu kroku obnovení databází na cílový server.

Obnovení databází na cílový server

Nyní byste měli mít na zdrojovém serveru soubor .bak všech vašich databází. Tyto databázové soubory je třeba přenést na cílový server. Existuje mnoho způsobů, jak přesunout data na cílový server; můžete použít USB, Robocopy nebo FTP. Po zkopírování databáze ji můžete uložit na cílový server, pro náš příklad jsme ji uložili na jednotku C do složky s názvem C:\dbbackups .

1. Otevřete Microsoft SQL Server Management Studio.

2. Přihlaste se k serveru SQL pomocí ověřování Windows nebo ověřování SQL.

3. Rozbalte server a klikněte pravým tlačítkem na Databáze a vyberte Obnovit databázi.

4. Obnovit databázi obrazovka vypadá velmi podobně jako Zálohování databáze V části Zdroj budete chtít vybrat Zařízení místo Databáze . Výběrem Zařízení umožňuje obnovit přímo ze souboru. Jakmile vyberete Zařízení , klikněte na ikonu procházení […]

5. Vyberte Přidat a poté přejděte do složky, ve které jsou uloženy vaše soubory .bak. (V tomto případě C:\dbbackups ).

6. Vyberte první databázi .bak, kterou chcete obnovit, a klikněte na OK.

7. Klikněte na OK a nyní jste připraveni importovat databázi. Před importem se podívejme do sekce Možnosti na levé straně. V části Možnosti uvidíte další konfigurace pro obnovu databází, jako je Přepsat existující databázi , Zachovat nastavení replikace a Omezit přístup k obnovené databázi . V tomto případě nenahrazujeme existující databázi, takže všechny tyto možnosti ponechám nezaškrtnuté. Pokud chcete nahradit existující databázi (například zálohovaná databáze má novější data než na cílovém serveru nebo nahrazujete vývojovou nebo produkční databázi), jednoduše vyberte Přepsat existující databázi .

Poznámka:Pokročilým uživatelům může stačit ponechat cíl tak, jak je, za předpokladu, že jsou ve výstupní složce správná oprávnění.

8. Klepnutím na tlačítko OK zahájí proces obnovy, jak je uvedeno ve vyskakovacím okně s nápisem 'Databáze 'AdventureWorks2012' úspěšně obnovena.' Provedli jste migraci databáze ze zdrojového na cílový server.

Tento postup opakujte pro každou databázi, kterou migrujete. Poté můžete aktualizovat odkazy na cesty ve svých skriptech/aplikacích tak, aby ukazovaly na nový server a ověřily, že migrace proběhla úspěšně.

Migrace přihlášení k serveru Microsoft SQL Server

Pokud se po importu databází nemůžete připojit pomocí přihlášení SQL, může se zobrazit chyba 'Přihlášení se nezdařilo pro uživatele 'příklad'. (Microsoft SQL Server, chyba:18456). ' Protože databáze je v Tradičním přihlašovacím a uživatelském modelu přihlášení jsou uložena samostatně na zdrojovém serveru a přihlašovací údaje nejsou obsaženy v samotné databázi. Od tohoto okamžiku může být cílový server konfigurován tak, aby používal User Model Contained Database který uchovává přihlášení ve vaší databázi a mimo zdrojový server. Do té doby se budeme muset pohybovat a komunikovat s uživateli v rámci tradičního modelu. Pokračujte níže a pokračujte v migraci uživatelů SQL.

Zálohování a obnova databází přesunula váš vztah k SQL přihlášení k databázím (vaše přihlašovací údaje jsou stále spojeny se správnými databázemi se správnými oprávněními), ale skutečná přihlášení samotná se na nový server nepřenesly. Můžete to ověřit otevřením SSMS (SQL Server Management Studio) na cílovém serveru a přejděte na Server> Zabezpečení> Přihlášení s. Všimnete si, že všechna vlastní přihlášení SQL, která jste vytvořili na předchozím serveru, se sem nepřenesly, ale pokud přejdete na Server> Databáze> Vaše databáze (v tomto případě AdventureWorks2012)> Zabezpečení> Uživatelé uvidíte správné přihlašovací údaje spojené s databází.

Pokud máte jednoho nebo dva uživatele SQL, můžete jednoduše odstranit přidružení uživatele k databázi v Servery> Databáze> AdventureWorks2012> Zabezpečení> Uživatelé , znovu vytvořte uživatele v Server> Zabezpečení> Přihlášení a namapujte jej do správné databáze.

Máte-li mnoho přihlášení, budete muset provést další postup popsaný níže. Chcete-li migrovat všechny uživatele SQL, otevřete Nový dotaz na zdrojovém serveru a spusťte následující skript:

Přihlašovací skript SQL

+

Tento skript vytvoří ve zdrojové databázi dvě uložené procedury, které pomáhají s migrací těchto přihlášení. Otevřete okno Nový dotaz a spusťte následující:
EXEC sp_help_revlogin

Výstupem tohoto dotazu je skript, který vytvoří nová přihlášení pro cílový server. Zkopírujte výstup tohoto dotazu a uložte jej na později. Budete to muset spustit na cílovém serveru.

Jakmile zkopírujete výstup tohoto dotazu, přihlaste se k SSMS na cílovém serveru a otevřete okno Nový dotaz. Vložte obsah z předchozího skriptu (měl by mít řadu řádků, které vypadají podobně jako -- Login:BUILTIN\Administrators
VYTVOŘIT PŘIHLÁŠENÍ [BUILTIN\Administrators] Z WINDOWS S DEFAULT_DATABASE =[master]) a stiskněte Execute.

Nyní jste úspěšně importovali všechna přihlášení SQL a nyní můžete ověřit, že databáze byly migrovány na cílový server pomocí vašich předchozích přihlašovacích údajů.

Migrace pohledů a uložených procedur

Pokud používáte typické zálohy na pásku SQL, budou pohledy a uložené procedury migrovat s databází. Pokud potřebujete migrovat pohledy a uložené procedury nezávisle, postupujte podle pokynů níže.

  1. Otevřete Microsoft SQL Management Studio na zdrojovém serveru.
  2. Přihlaste se ke svému serveru SQL.
  3. Rozbalte server a také Databáze .
  4. Klikněte pravým tlačítkem na název databáze a přejděte na Úkoly> Generovat skripty .
  5. Klikněte na Další .
  6. Změníme Skriptování celé databáze a všech databázových objektů pro Vybrat konkrétní databázové objekty a zkontrolujte pouze Zobrazení a Uložené procedury.
  7. Klikněte na tlačítko Další a všimněte si možnosti Uložit do souboru. Poznamenejte si uvedenou cestu k souboru. V mém případě je to C:\Users\Administrator\Documents\script.sql – Cesta k uloženým pohledům a uloženým procedurám.
  8. Klikněte na Další>> Další>>Dokončit, a vyberte C:\Users\Administrator\Documents\script.sql a zkopírujte jej na cílový server.
  9. Přejděte na cílový server, otevřete SSMS a přihlaste se k serveru SQL.
  10. Přejděte na Soubor> Otevřít> Soubor nebo použijte klávesovou zkratku CTRL+O pro otevření SQL skriptu. Vyberte soubor C:\Users\Administrator\Documents\script.sql otevřít.
  11. Uvidíte skript vygenerovaný ze zdrojového serveru obsahující všechna zobrazení a uložené procedury. Klikněte na Provést nebo použijte klávesovou zkratku F5 a spusťte skript.
Poznámka:Bohužel neexistuje žádný vestavěný způsob, jak to provést pomocí příkazového řádku. Existují nástroje třetích stran a dokonce nástroj od společnosti Microsoft s názvem mssql-scripter pro pokročilejší skriptování.

Nyní jste migrovali pohledy a uložené procedury na cílový server! Tento proces opakujte pro každou databázi, kterou migrujete. V administraci databáze jde o malý návod. Každý SQL server bude mít své vlastní konfigurace a překážky, kterým je třeba čelit, ale doufáme, že vám tento článek poskytl pevný základ pro migraci serveru Microsoft SQL Server.

Hledáte službu SQL s vysokou dostupností, nezávislou na platformě, která je snadno škálovatelná a může růst s vaší firmou? Podívejte se na náš produkt SQL jako služba nabízený na Liquid Web. Promluvte si s jedním z našich úžasných hostitelských poradců a najděte pro vás perfektní řešení!


  1. jak vybrat datový řádek z pole hodnot oddělených čárkami

  2. Přístup odepřen po nastavení hesla uživatele pomocí SHA256 v phpMyAdmin

  3. Jak zobrazit tlačítka 'upravit', 'kopírovat' a 'smazat' v phpMyAdmin?

  4. Použití XAMPP-phpmyadmin při samostatné instalaci MYSQL