Sdílet prostřednictvím


Obnovení hlavní databáze (Transact-SQL)

Platí pro:SQL Server

Tento článek vysvětluje, jak obnovit databázi master z úplné zálohy databáze.

Varování

V případě zotavení po havárii by instance, do které se obnovuje databáze master, měla být co nejblíže přesné shodě s původní databází. Minimálně by tato instance obnovení měla mít stejnou verzi, edici a úroveň oprav a měla by mít stejný výběr funkcí a stejné externí konfigurace (název hostitele, členství v clusteru atd.) jako původní instance. Jinak může dojít k nedefinovanýmu chování instance SQL Serveru s nekonzistentní podporou funkcí a není zaručeno, že bude možné.

Obnovení databáze master

  1. Spusťte instanci serveru v režimu jednoho uživatele.

    SQL Server můžete spustit pomocí -m nebo -f spouštěcích parametrů. Další informace o spouštěcích parametrech naleznete v tématu Možnosti spuštění služby databázového stroje.

    Na příkazovém řádku spusťte následující příkazy a nezapomeňte nahradit MSSQLXX.instance odpovídajícím názvem složky:

    cd C:\Program Files\Microsoft SQL Server\MSSQLXX.instance\MSSQL\Binn
    sqlservr -c -f -s <instance> -mSQLCMD
    
    • Parametr -mSQLCMD zajišťuje, že se k SQL Serveru může připojit pouze sqlcmd .
    • Jako výchozí název instance použijte -s MSSQLSERVER
    • -c spustí SQL Server jako aplikaci, aby se vynechal Správce řízení služeb, aby se zkrátila doba spuštění.

    Pokud se instance SQL Serveru nemůže spustit kvůli poškozené databázi master, musíte nejprve znovu sestavit systémové databáze. Další informace naleznete v tématu Opětovné sestavení systémových databází.

  2. Připojení k SQL Serveru pomocí sqlcmd z jiného okna příkazového řádku:

    sqlcmd -S <instance> -E -d master
    
  3. Pokud chcete obnovit úplnou zálohu masterdatabáze, použijte následující příkazy RESTORETransact-SQL:

    RESTORE DATABASE master FROM <backup_device> WITH REPLACE;
    

    Tato REPLACE možnost dává SQL Serveru pokyn, aby obnovil zadanou databázi i v případě, že již existuje databáze se stejným názvem. Existující databáze, pokud existuje, se odstraní. V režimu jednoho uživatele doporučujeme zadat RESTORE DATABASE příkaz do nástroje sqlcmd. Další informace naleznete v tématu Použití sqlcmd.

    Důležitý

    Po obnovení master se instance SQL Serveru vypne a ukončí proces sqlcmd. Před restartováním instance serveru odeberte parametr spuštění s jedním uživatelem. Další informace naleznete v tématu SQL Server Configuration Manager: Konfigurace možností spuštění serveru.

  4. Restartujte instanci serveru normálně jako službu bez použití parametrů spuštění.

  5. Pokračujte dalšími kroky obnovení, jako je obnovení jiných databází, připojení databází a oprava neshod uživatelů.

Příklady

Následující příklad obnoví master databázi ve výchozí instanci serveru. Příklad předpokládá, že instance serveru je již spuštěna v režimu jednoho uživatele. Příklad spustí sqlcmd a spustí RESTORE DATABASE příkaz, který obnoví úplnou zálohu master databáze z diskového zařízení: Z:\SQLServerBackups\master.bak.

Pro pojmenovanou instanci musí příkaz sqlcmd zadat -S<computer-name>\<instance-name> možnost.

C:\> sqlcmd
1> RESTORE DATABASE master FROM DISK = 'Z:\SQLServerBackups\master.bak' WITH REPLACE;
2> GO