sql >> Databáze >  >> RDS >> Database

Migrace databází SQL pomocí příkazového řádku

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.


  1. Datový model platformy půjček peer-to-peer

  2. Nastavte znakovou sadu a řazení sloupce v MariaDB

  3. 6 Funkce pro získání dne, měsíce a roku z data na serveru SQL

  4. Formát řetězce URL pro připojení k databázi Oracle pomocí JDBC