Сведения о вопросе

SOON

21:58, 12th August, 2020

Теги

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

Просмотров: 600   Ответов: 10

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



  Сведения об ответе

appple

17:30, 1st August, 2020

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

  1. Карта сети drive/path, хостинг-файл, под SAME пользователь как MS-SQL сервер.
  2. Используйте расширенную хранимую процедуру xp_cmdshell для сопоставления сетевого диска изнутри MS SQL (таким образом, команда shell будет иметь те же привилегии, что и учетная запись пользователя, выполняющая 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


  Сведения об ответе

pumpa

20:51, 12th August, 2020

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


  Сведения об ответе

PIRLO

14:25, 16th August, 2020

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


  Сведения об ответе

DINO

07:16, 25th August, 2020

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


  Сведения об ответе

Chhiki

08:17, 8th August, 2020

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

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

дополнительная информация здесь: восстановление БД с сетевого диска

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


  Сведения об ответе

davran

20:20, 23rd August, 2020

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


  Сведения об ответе

ЯЯ__4

15:49, 5th August, 2020

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


  Сведения об ответе

VCe znayu

17:44, 10th August, 2020

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

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


  Сведения об ответе

lesha

13:52, 15th August, 2020

Создайте общий диск на машине, которая имеет резервные копии, скажем, server1 имеет резервные копии в папке "Backups". Предоставьте полный контроль учетной записи, работающей на сервере SQL. На сервере, который вы хотите восстановить, чтобы запустить SSMS, перейдите к восстановлению базы данных и выберите "From Device". В диалоговом окне "найти файл резервной копии-"Server""" удалите все, что находится в поле "Selected Path" и в поле "File Name" укажите полный путь так "\server\backups\db.bak". По крайней мере, это сработало для меня при переходе с 05 на 08. Это не самый предпочтительный метод, так как любой сбой сети может вызвать проблему с восстановлением.


  Сведения об ответе

prince

01:38, 28th August, 2020

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

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

--После этого диск Z: будет виден в среде Server Management studio, или просто

RESTORE DATABASE DB FROM DISK = 'Z:\DB.BAK'
WITH REPLACE


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться