Восстановление резервной копии базы данных по сети

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

10 ОТВЕТОВ
РЕШЕНИЕ

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

19
19.08.2008 16:20:53
Или выполнить EXEC xp_cmdshell 'NET USE...до доступа к сети; увидеть другие ответы ..
JB. With Monica. 17.06.2014 10:01:11
Jasim Khan Afridi 22.05.2017 10:03:48

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

0
19.08.2008 18:18:46

Вы не можете сделать это через графический интерфейс SSMS, но вы можете сделать это с помощью сценария. ВОССТАНОВИТЬ БАЗУ ДАННЫХ из DISK = '\ unc \ path \ filename' Если вам требуется автоматизировать этот процесс, лучше всего настроить задание SQL Server и запустить его как пользователь с доступом к расположению файла.

9
2.09.2008 13:12:21
Это неправда. Вы можете восстановить его по сети, если вы подключили сетевой диск до открытия диалогового окна «Восстановить базу данных ...».
Jim Aho 15.03.2017 08:56:19
Это было не так с инструментами SQL 2005 или SQL 2008
baldy 20.03.2017 08:22:43

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

0
8.09.2008 23:59:55

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

6
26.10.2012 13:05:06

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

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

0
17.01.2013 21:05:49

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

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

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

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

4
21.03.2014 18:55:04

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

  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
83
26.07.2017 12:45:12
Вызов NET USEс текущим пользователем службы SQL Server решает проблему. Этот ответ действительно полезен.
JB. With Monica. 17.06.2014 09:59:32
Это потрясающе. Это было решением нашей проблемы: полный доступ к MSSQL, но нет доступа к файловому серверу. Нужна копия. Как? Это решение.
David Betz 10.08.2015 15:08:06
Вам нужно будет запустить что-то вроде EXEC sp_configure 'xp_cmdshell', 0этого, чтобы отключить xp_cmdshell? (по соображениям безопасности или еще много чего).
Jim Aho 14.03.2017 12:10:15
Довольно круто порождать командную оболочку Windows внутри студии управления. Я думаю, что стоит упомянуть, что командная оболочка будет иметь те же привилегии, что и учетная запись пользователя, работающая под управлением SSMS.
Jim Aho 15.03.2017 08:54:02
@JimAho Я думаю, командная оболочка, запущенная из MS SQL Server, является большой проблемой безопасности. Но они реализовали это, чтобы покрыть недостаток функциональности или другие проблемы архитектуры. Другие SQL-серверы не должны иметь права администратора или порождать командную оболочку для выполнения обычных задач, таких как восстановление резервной копии ...
TPAKTOPA 17.03.2017 11:49:14

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

0
24.04.2015 18:20:20
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
-1
1.02.2019 10:17:42
Не могли бы вы отформатировать свой код, чтобы он был более понятным? meta.stackexchange.com/questions/22186/…
Gazihan Alankus 1.02.2019 09:45:54