Восстановление базы данных из файла .bak на другой машине

Я не много сделал SQL, и я до сих пор довольно новичок в этом, поэтому, пожалуйста, извините, что, вероятно, основной вопрос.

Мне было предложено задуматься о создании задания SQL для резервного копирования наших баз данных, сохранить .baks на другой машине и затем восстановить их на второй сервер. Я занимался некоторыми исследованиями и играю в SSMS, а также создал базу данных для своей персональной машины, настроив общий ресурс и выполнив задание резервного копирования в хранилище. Теперь я пытаюсь создать новую базу данных (на том же сервере, на котором я вернулся), восстановив файл .bak(но предоставляя базу данных, я пытаюсь создать новое имя, а что нет), но я не могу чтобы указать восстановление его из общего ресурса, как это было при резервном копировании/Я не могу найти, как указать другие сетевые местоположения, и просто просматриваю серверный диск C, когда я пытаюсь найти файл.

В настоящее время я просто использую встроенные мастера, чтобы попытаться это сделать (открыть SSMS → Подключиться к серверу → щелкните правой кнопкой мыши DataBases → Восстановить базы данных, а затем выберите "Из устройства" и найдите для поиска файл).

Это не последний процесс, просто я пытаюсь понять, как это работает. Как я уже сказал, идея состоит в том, чтобы в конечном итоге выполнить запланированную работу по резервному копированию БД с сервера1 на .bak, скажем, на мою личную машину, а затем восстановить это на БД на сервере2 (другая сеть, другой город) и, возможно, с серией команд SQL, а не с помощью мастера каждый раз (есть несколько БД, которые, в конечном счете, нуждаются в резервном копировании).

Мои извинения за, возможно, довольно затянутый и запутанный вопрос - по существу, все, что мне нужно знать, может я/как восстановить базу данных в SSMS из .bak на другой машине? Большое спасибо

Ответ 1

Вы можете использовать что-то вроде script. Он восстанавливает базу данных из файловой системы и перезаписывает существующую базу данных с именем "MyDB", перемещая файлы в новые места по вашему выбору в процессе.

RESTORE DATABASE
    MyDB
FROM DISK = '\\MyShare\MyBackup.bak'
WITH 
    MOVE 'DataFile' TO 'D:\myNewDBLocation\DataFile.mdf',
    MOVE 'LogFile' TO 'E:\\myNewDBLocation\LogFile.ldf'
, REPLACE

Вы можете узнать имя llogical файлов (в приведенном выше, те, которые называются DataFile и LogFile, запустив следующее:

RESTORE FILELISTONLY 
FROM DISK = '\\MyShare\MyBackup.bak'

Дополнительная информация о различных параметрах и параметрах:

RESTORE (Transact-SQL)