2014-02-18 4 views
0

Мой файл .bak - это другой локальный сервер.Как восстановить базу данных из файла .bak?

Я пробовал слишком много разных сценариев, но не смог добиться успеха.

Я попытался синтаксис

RESTORE FILELISTONLY FROM DISK='D:\ERPNewtesting-12022014.bak' 

Получить LogicalName из выше запроса и использовать в запросе ниже

RESTORE DATABASE Test FROM DISK='ERPNewtesting-12022014.bak' 
WITH 
    MOVE 'ERPAgrotechBeta' TO 'D:\Pragnesh\Test.mdf', 
    MOVE 'ERPAgrotechBeta_log' TO 'D:\Pragnesh\Test_log.ldf', 
    REPLACE, 
STATS=10 

После выполнения выше запроса ниже ошибки генерации.

Msg 3201, уровень 16, состояние 2, строка 3
Не удается открыть устройство резервного копирования «C: \ Program Files (x86) \ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ Backup \ ERPNewtesting-12022014.bak ». Ошибка операционной системы 2 (система не может найти указанный файл.).
Msg 3013, уровень 16, состояние 1, строка 3
БАЗА ДАННЫХ RESTORE заканчивается анормально.

Пожалуйста, помогите мне таким образом

+0

.bak файл находится на локальной машине –

+1

А как насчет прочтения сообщения? 'Ошибка операционной системы 2 (система не может найти указанный файл.)' – usr

+0

это сообщение об ошибке, которое возвращается с сервера sql –

ответ

1

Вы только указав «относительный» путь к файлу .bak здесь:

RESTORE DATABASE Test FROM DISK='ERPNewtesting-12022014.bak' 

и вполне очевидно, что из сообщения об ошибке, то файл там, где это указывает.

Не удается открыть устройство резервного копирования "C: \ Program Files (x86) \ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ Backup \ ERPNewtesting-12022014.bak. Ошибка операционной системы 2 (система не может найти указанный файл.)

Вам необходимо указать полный, полный путь к .bak файл здесь:

RESTORE DATABASE Test FROM DISK='D:\ERPNewtesting-12022014.bak' 
           ***** 

Если вы бы на самом деле попробуйте указать полный путь здесь, чтобы SQL Server мог найти источник для восстановления - я всегда уверен, что это сработает ......

+0

Фактически ошибка не для файла .bak. Ошибка для логического файла, например .mdf и .ldf, не может найти на локальном компьютере, потому что .bak-файл другой локальный сервер, поэтому, когда мы вызываем MOVE 'ERPAgrotechBeta' TO 'D: \ Pragnesh \ Test.mdf, чтобы найти исходный файл .mdf, и он не может найти. –

+1

@PragneshKhalas: если вы ** ПРОЧИТАЙТЕ ** ошибку - это очень ** CLEAR **, что файл '.bak' ** не найден ** !! –

+0

Да, но .bak-файл существует в D: \ ERPNewtesting-12022014.bak, и я попытался восстановить этот .bak-файл в одной из тестовой базы данных, которая находится на локальном сервере. –

3

Похоже, что вы создали резервную копию базы данных на одном сервере и хотите восстановить ее на другом сервере. Это верно?

Ваш файл резервной копии D:\ERPNewtesting-12022014.bak находится на сервере A, не так ли? Он должен быть доступен для учетной записи, на которой запущена служба SQL Server на сервере B. Приходят на ум несколько быстрых опций:

  1. Создайте общий ресурс на сервере A, переместите файл резервной копии в соответствующую общую папку.
  2. Переместите файл резервной копии на существующий UNC-путь.
  3. Переместить файл резервной копии на сервере B.

Затем продолжить восстановление.Если вы выбрали вариант 1 или 2, то это будет что-то вроде этого:

RESTORE DATABASE Test 
FROM DISK='\\SomeServer\Shared Folder\ERPNewtesting-12022014.bak' 
WITH 
    MOVE 'ERPAgrotechBeta' TO 'D:\Pragnesh\Test.mdf', 
    MOVE 'ERPAgrotechBeta_log' TO 'D:\Pragnesh\Test_log.ldf', 
REPLACE, 
STATS=10 

Если вы выбрали вариант 3, это будет выглядеть примерно так:

RESTORE DATABASE Test 
FROM DISK='D:\Path on Server B\ERPNewtesting-12022014.bak' 
WITH 
    MOVE 'ERPAgrotechBeta' TO 'D:\Pragnesh\Test.mdf', 
    MOVE 'ERPAgrotechBeta_log' TO 'D:\Pragnesh\Test_log.ldf', 
REPLACE, 
STATS=10 
+0

Да «Похоже, вы создали резервную копию db на одном сервере и хотите восстановить его на другом сервере». Но мой резервный файл находится на локальном сервере, который я хочу его восстановить. –

+0

@PragneshKhalas: Хорошо, поэтому ваш файл резервной копии находится на локальном сервере. Понял. Вы хотите восстановить файл резервной копии на тот же локальный сервер? – DMason

+0

да вы сталкиваетесь с этим вопросом? Если да, то, пожалуйста, помогите мне –

0

Ее в основном за счет выпуска прав: -

Следуйте ниже 2 шага, и он будет решать: -

  1. Пусть резервное копирование тейк сервера по умолчанию директории ectory и скопируйте файл в нужную папку. Я это сделал.

  2. Предоставьте одинаковые права доступа к вашей желаемой папке в качестве каталога резервного копирования.

ИЛИ

U может добавить учетную запись службы в локальную группу администрирования машины, где архивация

0

FYI: От студии управления SqlServer есть возможность восстановить базу данных из пользовательского интерфейса. Он позволяет вам найти исходный файл bak. Открытое окно просмотра находится на сервере сервера базы данных . НЕ машина, на которой запущена студия управления.

Смежные вопросы