Co když máte desítky databází SQL a ruční zálohování/obnova každé databáze je pro váš projekt příliš časově náročné? Žádný problém! Můžeme naskriptovat metodu, která exportuje a importuje všechny databáze najednou bez nutnosti ručního zásahu. Pokud potřebujete pomoc s přenosem přihlášení SQL a uložených procedur a zobrazení, podívejte se na náš článek o migraci MSSQL pomocí SSMS.
Zálohování databází na zdrojovém serveru
1. Otevřete SSMS (Microsoft SQL Server Management Studio) na zdrojovém serveru, přihlaste se k instanci SQL a otevřete okno Nový dotaz. Spusťte následující dotaz:
SELECT name FROM master.sys.databases
Tento příkaz vypíše seznam všech databází MSSQL na vašem serveru. Chcete-li tento seznam zkopírovat, klikněte kamkoli do výsledků a pomocí klávesové zkratky CTRL+A (Command + A pro uživatele Mac) vyberte všechny databáze. Po zvýraznění všech databází klikněte pravým tlačítkem a vyberte kopírovat.
2. Otevřete Poznámkový blok, vložte své výsledky a odstraňte všechny databáze (v nově zkopírovaném textu Poznámkového bloku), které si nepřejete migrovat, a také smažte následující položky:
- mistr
- tempdb
- model
- msdb
Tyto záznamy jsou databázemi systému a jejich kopírování není nutné. Ujistěte se, že jste odstranili vše kromě explicitně databází, které potřebujete migrovat. Nyní byste měli mít seznam všech požadovaných databází oddělených řádkem. tj.
- AdventureWorks2012
- AdventureWorks2014
- AdventureWorks2016
3. Uložte tento výsledek do počítače jako C:\databases.txt .
4. Vytvořte nové okno programu Poznámkový blok, zkopírujte/vložte následující do dokumentu a uložte jej jako C:\db-backup.bat
mkdir %systemdrive%\dbbackups
for /F "tokens=*" %%a in (databases.txt) do ( sqlcmd.exe -Slocalhost -Q"BACKUP DATABASE %%a TO DISK ='%systemdrive%\dbbackups\%%a.bak' WITH STATS" )
5. Nyní, když jste soubor uložili jako C:\db-backup.bat, přejděte na Start a zadejte cmd a klikněte pravým tlačítkem na Příkazový řádek vyberte Spustit jako správce .Zadejte následující příkaz:
cd C:\
A stiskněte enter. Poté napište db-backup.bat a znovu stiskněte enter.
V tomto okamžiku se vaše databáze začaly exportovat a uvidíte procentuální průběh každého exportu databáze (na obrázku níže).
Poznamenejte si všechny neúspěšné databáze, protože po dokončení můžete dávkový soubor znovu spustit a použít pouze databáze, které mohly selhat. Pokud se zálohování databází nedaří, poznamenejte si chybovou zprávu zobrazenou na příkazovém řádku, vyřešte chybu úpravou existujícího souboru C:\databases.txt tak, aby obsahoval pouze neúspěšné databáze, a znovu spusťte db-backup.bat dokud nebudou všechny databáze úspěšně exportovány.
Obnova databází na cílový server
Nyní máte složku C:\dbbackups\ který obsahuje soubory .bak pro každou databázi, kterou chcete migrovat. Budete muset zkopírovat složku a váš C:\databases.txt soubor na cílový server. Existuje mnoho způsobů, jak přesunout data na cílový server; můžete použít USB, Robocopy nebo FTP. Složka na jednotce C cílového serveru by se měla jmenovat C:\dbbackups . Je důležité přesně pojmenovat soubor, protože náš skript zde bude hledat soubory .bak. Ujistěte se, že cílový server má také váš soubor C:\databases.txt, protože náš skript zde bude hledat názvy databází.
1. Otevřete Poznámkový blok a zkopírujte/vložte následující do dokumentu a uložte jej jako C:\db-restore.bat
for /F "tokens=*" %%a in (C:\databases.txt) do (
sqlcmd.exe -E -Slocalhost -Q"RESTORE DATABASE %%a FROM DISK='%systemdrive%\dbbackups\%%a.bak' WITH RECOVERY"
)
2. Uložte soubor jako C:\db-restore .netopýr
3. Přejděte do nabídky Start a zadejte cmd .
4. Klikněte pravým tlačítkem na Příkazový řádek a vyberte Spustit jako správce . Zadejte následující příkaz:
cd C:\
a stiskněte Enter. Nyní zadejte db-restore.bat a stiskněte Enter.
Vaše databáze se nyní začaly importovat. Uvidíte procento obnovení každé databáze a zprávu „OBNOVENÍ DATABÁZE úspěšně zpracováno ” pro každou databázi, která byla úspěšně zpracována.
Poznamenejte si všechny neúspěšné databáze, protože po dokončení můžete dávkový soubor znovu spustit a použít pouze databáze, které selhaly. Pokud se zálohování databází nedaří, poznamenejte si chybovou zprávu zobrazenou na příkazovém řádku, řešte chybu (v případě potřeby můžete změnit dávkový soubor), upravte C:\databases.txt tak, aby zahrnoval pouze neúspěšné databáze a znovu -spusťte db-restore.bat, dokud nebudou všechny databáze úspěšně exportovány.
Gratulujeme, nyní jste zazálohovali a obnovili všechny své databáze na nový server. Pokud máte nějaké problémy s přihlášením při testování připojení SQL na cílovém serveru, prostudujte si Migrace přihlášení Microsoft SQL (odkaz ukotvení) části tohoto článku a postupujte podle pokynů v něm uvedených. Chcete-li migrovat pohledy nebo uložené procedury, přečtěte si část Migrace pohledů a uložených procedur sekce. Každý SQL server bude mít své 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.