Восстановление резервной копии базы данных по сети - PullRequest
44 голосов
/ 19 августа 2008

Как восстановить резервную копию базы данных с помощью SQL Server 2005 по сети? Я помню, как делал это раньше, но в том, как ты это делал, было что-то странное.

Ответы [ 10 ]

77 голосов
/ 09 декабря 2013

У вас есть несколько вариантов использования сетевого файла в качестве источника резервного копирования

  1. Сопоставьте сетевой диск / путь, файл хостинга под тем же пользователем как MS-SQL Server.
  2. Использование расширенной хранимой процедуры xp_cmdshell для сопоставления сетевого диска изнутри MS SQL (таким образом, командная оболочка будет иметь те же привилегии, что и учетная запись пользователя с SSMS)
-- allow changes to advanced options 
EXEC sp_configure 'show advanced options', 1
GO
-- Update currently configured values for advanced options.
RECONFIGURE
GO
-- To enable xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
-- Update currently configured values for advanced options.
RECONFIGURE
GO
EXEC xp_cmdshell 'NET USE Z: \\Srv\Path password1 /USER:Domain\UserName'

После этого диск Z: будет виден в студии управления сервером или просто

RESTORE DATABASE DataBaseNameHere FROM DISK = 'Z:\BackNameHere.BAK'
GO
18 голосов
/ 19 августа 2008

База данных часто работает как служба под учетной записью без доступа к сети. Если это так, то вы не сможете восстановить напрямую по сети. Либо резервную копию необходимо скопировать на локальный компьютер, либо службу базы данных необходимо запустить как пользователь с соответствующим доступом к сети.

8 голосов
/ 02 сентября 2008

Вы не можете сделать это через графический интерфейс SSMS, но вы можете сделать это с помощью сценария. RESTORE DATABASE from DISK = '\ unc \ path \ filename' Если вам требуется автоматизировать этот процесс, лучше всего настроить задание SQL Server и запустить его как пользователь с доступом к расположению файла.

6 голосов
/ 20 апреля 2012

Убедитесь, что пользователь, использующий SQL services в "Services.msc", является активным каталогом "Domain User", это решит проблему.

4 голосов
/ 15 февраля 2013

Вы можете использовать SP xp_cmdshell для сопоставления сетевого привода для сервера sql, после чего он появится в окне просмотра файлов.

EXEC xp_cmdshell 'NET USE Z: SERVERLOCATION PASSWORD /USER:DOMAIN\USERNAME'

подробнее здесь: Восстановление БД с сетевого диска

Работал на меня!

0 голосов
/ 01 февраля 2019
EXEC sp_configure 'show advanced options', 1
GO

- обновить текущие настроенные значения для расширенных параметров.

RECONFIGURE
GO
-- To enable xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO

- Обновить текущие настроенные значения для расширенных параметров.

RECONFIGURE
GO

- Это должно быть запущено в командной строке (cmd)

NET USE Z: \\172.100.1.100\Shared Password /USER:administrator /Persistent:no

затем на SQL Server

EXEC xp_cmdshell 'NET USE Z: \\172.100.1.100\Shared Password /USER:administrator /Persistent:no'

- После этого диск Z: будет виден в Студии управления сервером или просто

RESTORE DATABASE DB FROM DISK = 'Z:\DB.BAK'
WITH REPLACE
0 голосов
/ 24 апреля 2015

Создайте общий диск на машине с резервными копиями, скажем, server1 имеет резервные копии в папке «Резервные копии». Предоставьте полный контроль учетной записи, на которой запущен SQL Server. На сервере, который вы хотите восстановить для запуска SSMS, перейдите на страницу восстановления базы данных и выберите «С устройства». В диалоговом окне «Найти файл резервной копии -« Сервер »» удалите что-либо в поле «Выбранный путь» и в поле «Имя файла» укажите полный путь, так что «\ server \ backups \ db.bak». По крайней мере, это работало для меня при переходе с 05 на 08. Не предпочтительный метод, потому что любой сбой в сети может вызвать проблему с восстановлением.

0 голосов
/ 18 января 2013

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

Это может быть полезно, если остановка / запуск службы SQL для изменения ее учетной записи является проблемой.

0 голосов
/ 09 сентября 2008

Кроме того, необходимо убедиться, что служба SQL Server запущена от имени пользователя, имеющего доступ к сети, и разрешений для общего ресурса, в котором находится файл резервной копии. «Локальная система» не будет иметь доступа к сети.

0 голосов
/ 19 августа 2008

Мне приходилось делать это несколько раз, и мне известны только два варианта. Скопируйте файл локально на сервер SQL или на сервере SQL создайте подключенный сетевой диск к общей папке, содержащей файл резервной копии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...