Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL Server 2016:Възстановяване на база данни

Както при архивирането на база данни, в SQL Server 2016 можете да възстановите база данни, като използвате Transact-SQL, PowerShell или чрез GUI на SQL Server Management Studio.

Тук ще демонстрирам как да възстановите база данни с помощта на GUI на системата за управление на SQL Server, след това с помощта на Transact-SQL.

Възстановяване на база данни чрез GUI

В този пример ще възстановим резервно копие на чисто нова база данни, наречена WideWorldImporters .

WideWorldImporters базата данни е примерна база данни, предоставена от екипа на SQL Server на Microsoft, за да демонстрира как функциите на SQL Server могат да се използват в реален сценарий.

Този процес ще създаде нова база данни, наречена WideWorldImporters . Базата данни ще съдържа различни обекти (като таблици, изгледи, съхранени процедури и т.н.). Той също така ще съдържа примерни данни, така че няма нужда да добавяте свои собствени.

Изтеглете файла за архивиране на базата данни

Преди да започнете, изтеглете базата данни (от GitHub).

  • Изтеглете WideWorldImporters-Full.bak файл, ако използвате Evaluation, Developer или Enterprise Edition на SQL Server.
  • Или изтеглете WideWorldImporters-Standard.bak файл, ако използвате SQL Server Standard Edition.
  1. Стартирайте Възстановяване на база данни Диалогов прозорец

    В Object Explorer щракнете с десния бутон върху Бази данни възел и изберете Възстановяване на база данни... от контекстното меню.

  2. Изберете архивния файл

    Под Източник заглавие, изберете Устройство и щракнете върху бутона с елипси ( ... ), за да стартирате Избор на устройства за архивиране диалогов прозорец.

  3. Изберете архивния файл

    Уверете се, че Файл е избран, щракнете върху Добавяне за да прегледате .bak файла на базата данни и да го добавите.

    След като сте добавили архивния файл и той е посочен под Резервни медии: , щракнете върху OK за да излезете от този диалогов прозорец.

  4. Проверете настройките

    Различни полета в Възстановяване на база данни диалоговият прозорец ще бъде попълнен въз основа на архивния файл, който сте избрали.

    Щракнете върху OK за да възстановите базата данни.

    Можете (по избор) да щракнете върху Проверка на архивния носител за да проверите дали няма проблеми с архивния файл, преди да стартирате процеса на възстановяване.

  5. Съобщение за успех

    Ще получите съобщение, което ви информира, че базата данни е била успешно възстановена.

    Щракнете върху OK да завърши.

  6. Проверете базата данни

    Придвижете се до WideWorldImporters база данни и разширете нейните възли, за да прегледате различните й обекти като таблици, изгледи, съхранени процедури и т.н.

    Можете да започнете работа с тази база данни веднага. Например, изпълняване на SELECT * FROM Website.Suppliers; ще върне списък с доставчици, използващи Website.Suppliers изглед.

Възстановяване на база данни с помощта на Transact-SQL

  • Можете да извършите същото възстановяване на база данни, както по-горе, като използвате SQL.

    За да направите това, отворете нов прозорец за заявка и изпълнете RESTORE изявление.

    RESTORE операторът приема различни опции (точно като опцията GUI), но можете също да стартирате просто възстановяване с минимум код.

    Примерен код

    По-долу е даден пример за прост скрипт за възстановяване, който посочва файла на базата данни за възстановяване и целевата база данни.

    Той също така указва къде ще бъдат разположени данните и регистрационните файлове.

    След като изпълните този код, WideWorldImporters база данни ще бъде създадена.

    Първо изтрийте съществуващата база данни, като изпълните следния код:

    USE master;
    DROP DATABASE WideWorldImporters;

    Можете също да изтриете база данни чрез Object Explorer, като щракнете с десния бутон върху името на базата данни и изберете Изтриване от контекстното меню.

    Сега проверете дали базата данни вече не е в списъка в Object Explorer. Може да се наложи да щракнете с десния бутон върху Бази данни и щракнете върху Опресняване преди да изчезне.

    След като потвърдите, че базата данни вече не съществува на вашия сървър, изпълнете следния скрипт, за да я върнете:

    USE master;
    RESTORE DATABASE WideWorldImporters  
    FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\WideWorldImporters-Full.bak'   
    WITH    
        MOVE N'WWI_Primary' 
            TO N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\WideWorldImporters.mdf',    
        MOVE N'WWI_UserData' 
            TO N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\WideWorldImporters_UserData.ndf',    
        MOVE N'WWI_Log' 
            TO N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\WideWorldImporters.ldf',    
        MOVE N'WWI_InMemory_Data_1' 
            TO N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\WideWorldImporters_InMemory_Data_1';

    Показване на съобщение за напредъка

    Можете да използвате STATS опция за получаване на актуализация относно напредъка на процеса на възстановяване.

    Например, STATS=10 ще доведе до 10 процента обработени , 20 процента обработени и т.н., докато базата данни се възстановява.

    Можете да видите пълния синтаксис за RESTORE изявление на уебсайта на Microsoft.

Вече можете да използвате тази база данни, за да изпробвате различни неща. Чувствайте се свободни да експериментирате с него. Запитване на данни, изтриване на данни, пускане на обекти, всичко. В крайна сметка, ако напълно го объркате, винаги можете да възстановите базата данни от архивния файл.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Топ 5 факта за намиране и замяна на SQL текстове в SQL Server с функция REPLACE

  2. Как да предам XML от C# към съхранена процедура в SQL Server 2008?

  3. Какво представлява SQL Server RAISERROR?

  4. Как мога да получа сумата от множество стойности за дата и час?

  5. Часова част от поле DateTime в SQL