У меня есть два экземпляра базы данных Sql Server на двух разных машинах в сети. Давайте назовем эти серверы A и B. Из-за некоторых проблем с инфраструктурой мне пришлось сделать полную резервную копию базы данных на сервере A и скопировать A.bak на общий диск, доступный как для A, так и для B. Я хочу, чтобы восстановить базу данных на Б.
Моя первая проблема - восстановить резервную копию на сервере B, но в хранилище резервной копии не отображается мой общий диск.
Моя следующая проблема заключается в том, что на диске C: сервера B почти не осталось места, и есть несколько дополнительных разделов, которые имеют больше места и могут содержать мой файл резервной копии, но я не уверен, что произойдет с данными после восстановления базы данных на B. данные резервного копирования заполняют все доступное пространство на C :?
Было бы здорово, если бы кто-нибудь объяснил, как выкладываются данные после запуска базы данных восстановления на целевом сервере базы данных?
Спасибо
Если я правильно помню, прошло какое-то время, но SQL не распознает общий сетевой ресурс как место для восстановления, если учетная запись, на которой запущен SQL, не имеет разрешения (т. Е. Является локальной учетной записью пользователя). Скопируйте резервные копии на локальный раздел, на котором больше места.
При восстановлении с использованием графического интерфейса вы можете указать, где будут восстанавливаться файлы данных и журналы. При выборе файла резервной копии перейдите на вкладку «Параметры», и в ней должен быть указан исходный путь, что позволит вам изменить путь назначения. Переместите их в новое место с дополнительным дисковым пространством. В качестве альтернативы вы можете использовать инструкцию восстановления tsql:
restore database yourdbname
from disk 'm:\sqlbackups\yourbackup.bak'
with norecovery,
move 'yourdbname_data' to
'f:\_sql\data\yourdbname_data.mdf',
move 'yourdbname_log' to
'f:\_sql\logs\yourdbname_log.ldf'
yourdbname_data и yourdbname_log - это имена "логических имен" в списке файлов. Если у вас несколько файлов (у вас должно быть как минимум 2), повторите оператор перемещения для каждой строки.
Вы можете выполнить восстановление, используя T / SQL и указав расположение сетевой папки. Это действительно требует, чтобы учетная запись SQL, которая запускает SQL Server, имела права на сетевое расположение. Просто укажите сетевое расположение файла резервной копии.
RESTORE DATABASE MyDatabase from DISK='\\NetworkServer\Share\Folder\file.bak'
Если вам нужно изменить место хранения физических файлов, используйте параметр MOVE.
RESTORE DATABASE MyDatabase from DISK='\\NetworkServer\Share\Folder\file.bak'
WITH MOVE 'LogicalFile' TO 'D:\folder\file.mdf',
MOVE 'LogFile' TO 'E:\folder\file.ldf'
Если вы включили xp_cmdshell в sp_configure, как описано в эта статья MSDN вы можете использовать его для монтирования вашего файлового ресурса:
xp_cmdshell 'net use x: \\server\share /user:<username> <password>'
После этого вы сможете получить доступ к общей папке в Management Studio.