Імпортуйте .bak файл у базу даних на SQL-сервері


230

У мене файл з .bakрозширенням.

Як я можу імпортувати цю дату до бази даних в SQL Server?


Я припускаю, що ви використовуєте MSSQL, ось нитка, що пояснює кілька способів відновлення.
Ендрю Кіт

Ви можете створити порожню базу даних та відновити її до порожньої бази даних, використовуючи .bak
Michel Ayres

Найпростіший спосіб - це 3-я відповідь, правою кнопкою миші баз даних, імпорт, пристрій, вибір .bak-файлу, закінчено.
Мафій

Чи може хтось розширити відповідь на рішення щодо автоматизації? Перейти через інтерфейс користувача та зробити кілька кліків не дуже ефективно.
Л. Голландія

Відповіді:


251

У студії управління SQL Server

  1. Клацніть правою кнопкою миші Бази даних на лівій панелі (Провідник об’єктів)
  2. Натисніть Відновити базу даних ...
  3. Виберіть Пристрій , натисніть ...і додайте свій .bak файл
  4. Натисніть кнопку ОК , потім ще раз ОК

Зроблено.


4
Це працює як шарм. Це відмінні спрощені інструкції, і вони по суті є такими ж інструкціями з офіційного посилання Microsoft, зазначеного в найбільш проголосованій відповіді тут.
Леонардо Лопес

3
Якщо це не вдасться, вам, ймовірно, потрібно буде стерти наявну базу даних.
DigitalDesignDj

3
Це не працює для мене. Я вказую на правильну папку, і вона навіть не бачить файлів. Я вставляю точне ім'я файлу в діалогове вікно, і воно говорить, що файл не існує. Також у діалоговому вікні відображається диск, який не існує на моєму сервері. Чи пам'ятає база даних місце останньої резервної копії і чи прийме її відновлення лише з цього моменту? Мені дуже дивно, що я не можу вибрати файл резервного копіювання для відновлення.
Джеймс

13
Мій файл .BAK знаходився в каталозі "Завантаження", який існував під моїм обліковим записом користувача. Мені довелося перемістити файл .BAK до кореня С: для того, щоб цей інструмент побачив його та дозволив мені відновити з нього. Файли під моїм користувачем чомусь не бачили.
jeremysawesome

6
Це не працює. Клацніть правою кнопкою миші «Бази даних», але немає «Відновити базу даних ...».
користувач34660

53

.bak файли - це резервне копіювання бази даних. Ви можете відновити резервну копію за допомогою наведеного нижче способу:

Як: відновити резервну копію бази даних (SQL Server Management Studio)


8
Це не працює. У статті сказано: "... 2) Розгорніть бази даних. Залежно від бази даних, виберіть базу даних користувача або розгорніть системні бази даних, а потім виберіть системну базу даних. 3) Клацніть правою кнопкою миші базу даних , вкажіть" Завдання ", а потім клацніть" Відновлення." НЕ! Ви не можете клацнути правою кнопкою миші базу даних, яка не існує! Після цього ви намагаєтесь відновити чи імпортувати дану базу даних. Як ви можете клацнути правою кнопкою миші базу даних, яка не завантажена? Заявляється про химерність MSDN та обтяження того, що відновити функціональність у SSMS, але не працює. Чому? На щастя, команди SQL, які інші дають тут працювати.
Ніколас Петерсен

14
Тут є інша стаття для відновлення нової бази даних: msdn.microsoft.com/en-us/library/ms186390(v=sql.90).aspx
Джон Шонінг

35
RESTORE FILELISTONLY 
FROM DISK = 'D:\3.0 Databases\DB.bak' 

RESTORE DATABASE YourDB
FROM DISK = 'D:\3.0 Databases\DB.bak' 

і вам потрібно перемістити відповідні файли mdf, ndf та ldf, використовуючи

 With Move 'primarydatafilename' To 'D:\DB\data.mdf', 
 Move 'secondarydatafile'To 'D:\DB\data1.ndf', 
 Move 'logfilename' To 'D:\DB\log.ldf'

1
Це було дуже корисно для мене, оскільки я хотів відновити .bak-файл на sql контейнер Docker з хостом macOS за допомогою Azure Data Studio. Все, що мені потрібно було - скопіювати .bak в контейнер, відрегулювати шлях і змінити на /, і я зміг успішно відновити.
andrewb

Радий, що це допомогло @andrewb :)
RameshVel

30

Ви можете просто відновити ці файли резервного копіювання баз даних за допомогою власних методів SQL Server або скористатися інструментом відновлення ApexSQL для швидкого практично приєднання файлів та доступу до них як повністю відновлених баз даних.

Відмова: Я працюю інженером з підтримки продуктів у ApexSQL


18

Замість вибору Відновити базу даних ... виберіть Відновити файли та групи файлів ...

Потім введіть ім’я бази даних, виберіть шлях джерела .bak як джерело, поставте прапорець відновлення та натисніть кнопку ОК. Якщо файл .bak дійсний, він буде працювати.

(Імена параметрів відновлення SQL Server не є інтуїтивно зрозумілими для того, що повинно бути дуже простим завданням.)


Це хороша порада, я це зробив, і він повідомив, що відновлення пройшло успішно. Але трохи проблеми все ще залишається ... база даних не вказана в провіднику об'єктів. Я намагаюся "приєднати", і він навіть має правильний .mdf-файл (я вважаю продуктом відновлення). Якщо я спробую вкласти файл, він видає помилку, яка вже використовується. Чи є якісь поради щодо цього етапу?
AlanSE

Не забудьте оновити оновлення наприкінці, щоб побачити нову базу даних. Це може бути найшвидшим рішенням для вставання та бігу.
демонголем

Це варіант, який працював для мене, коли хотів імпортувати ту саму базу даних .bak, як нову базу даних локально
Gurnzbot

7
  1. Підключіться до сервера, на якому потрібно зберігати БД
  2. Клацніть правою кнопкою миші База даних
  3. Клацніть Відновити
  4. Виберіть перемикач пристрою у розділі джерела
  5. Натисніть кнопку Додати.
  6. Перейдіть до шляху, де зберігається ваш .bak файл, виберіть його та натисніть кнопку ОК
  7. Введіть місце призначення вашої БД
  8. Введіть ім'я, за яким потрібно зберігати БД
  9. Натисніть кнопку ОК

Зроблено


4

Просто використовуйте

sp_restoredb "Ваше ім'я бази даних", "Місцезнаходження, яке ви хочете відновити"

Приклад: sp_restoredb 'omDB', 'D: \ abc.bak'


яка різниця між цим і RESTORE DATABASEяк у msdn.microsoft.com/en-us/library/ms178099(v=sql.105).aspx ?
unhammer

1
Відновлення бази даних виконують операцію відновлення лише у тому випадку, якщо структура вашої БД однакова як файл резервного копіювання, але sp_restoredbвиконує відновлення навіть вашої бази даних, що має іншу структуру або повністю порожня (нова).
Омпракаш томар

3
  1. Скопіюйте файл резервного копіювання.
  2. Підключіться до сервера, на якому потрібно зберігати БД
  3. Клацніть правою кнопкою миші База даних
  4. Клацніть Відновити
  5. Виберіть перемикач пристрою у розділі джерела
  6. Натисніть кнопку Додати.
  7. Перейдіть до шляху, де зберігається ваш .bak файл, виберіть його та натисніть кнопку ОК
  8. Введіть місце призначення вашої БД
  9. Введіть ім'я, за яким потрібно зберігати БД
  10. Натисніть кнопку ОК

Вищезазначені рішення пропустили, де зберегти резервний (.bak) файл. Це повинно зробити трюк. Це працювало для мене.


1

Ви можете використовувати пакет вузлів, якщо вам часто потрібно відновлювати бази даних в процесі розробки.

Встановити:

npm install -g sql-bak-restore

Використання:

sql-bak-restore <bakPath> <dbName> <oldDbName> <owner>

Аргументи:

  • Bakpath, відносний або абсолютний шлях до файлу
  • dbName, до якої слід відновити базу даних (!! база даних з цим іменем буде видалена, якщо існує !!)
  • oldDbName, ім'я бази даних (якщо ви не знаєте, вкажіть щось і запустіть, ви побачите доступні бази даних після запуску.)
  • власник, userName, щоб зробити та надати йому привілеї db_owner (пароль "1")

!! Утиліта командного рядка sqlcmd повинна бути у вашій змінній PATH.

https://github.com/vladimirbuskin/sql-bak-restore/


1

У Microsoft SQL Server Management Studio 2019:

введіть тут опис зображення

У вікні Відновлення бази даних:

  1. Виберіть Пристрій

  2. Виберіть Додати та виберіть цільовий файл

  3. ОК для підтвердження

  4. Гаразд, щоб підтвердити відновлення

введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.