У меня есть SQL Server (2000, 2005 и 2008), и я хотел бы использовать агент SQL (или даже простую резервную копию базы данных «xxx» на disk = «yyy») для резервного копирования на удаленные диски.
Т.е. у меня есть подключенный диск в машине SQL, например: «M:», который сопоставляется с \\ otherbox \ someshare
По умолчанию SQL Server не позволяет создавать резервные копии на таких дисках, но я думаю, что есть способ включить это. Может ли кто-нибудь указать мне на документы?
Заранее спасибо.
sql-server
backup
mappeddrive
Мартин Маркончини
источник
источник
Ответы:
Используйте путь UNC при указании места назначения - у агента SQL нет понятия «сопоставленных» «дисков».
Кроме того, агент SQL обычно работает как «Локальная служба» или «Локальная система» и поэтому не имеет прав на удаленные общие ресурсы на других компьютерах.
У вас есть несколько вариантов:
Запустите агент SQL как учетную запись роли в домене. Предоставьте этой учетной записи разрешение на запись в каталог / папку, где вы хотите хранить резервные копии.
Запустите агент SQL как «Сетевая служба». Он будет проходить проверку подлинности на сервере общего доступа с учетной записью компьютера домена, на котором запущена служба. Предоставьте этой учетной записи разрешение на запись в каталог / папку, где вы хотите сохранить резервную копию.
Если у вас нет домена, создайте учетную запись с тем же именем пользователя и паролем как на компьютере, на котором размещен агент SQL, так и на компьютере, на котором размещены файлы резервных копий. Измените агент SQL, чтобы он выполнял роль этой учетной записи «роли», и предоставьте этой учетной записи разрешение на запись в каталог / общую папку, где вы хотите сохранить резервную копию. («Домен бедняка» ...)
источник
Я полностью согласен с обоими ответами о пути UNC.
Я также хотел бы добавить, что даже с подключенными дисками у вас есть простой обходной путь. Вы можете выполнить резервное копирование на любой из обычных дисков вашего сервера. И тогда вы можете добавить
Команда SQL для задания или сценарий SQL, который вы запускаете.
С xp_cmdshell вы можете сделать еще больше - например, запустить инструмент командной строки внешнего архива, например 7z, чтобы сжать файл, прежде чем скопировать его на подключенный диск (когда удаленное соединение слишком медленное ...)
PS: забыл упомянуть, что xp_cmdshell можно включить и отключить с помощью инструмента настройки поверхности и выполнения sp_configure (и по умолчанию он отключен)
источник
Вашему агенту необходим доступ к сетевым ресурсам. Они не должны быть нанесены на карту заранее.
Вы делаете это так:
Я считаю, что если пользователь, который владеет заданием, является администратором SQL, он запускается под агентом, в противном случае он работает как пользователь, не являющийся системным администратором.
источник
Если SQL Server не запускается под учетной записью домена, вы можете сопоставить сетевой диск для учетной записи sqlserver (не вашей учетной записи), как описано в этом ответе stackoverflow
Сначала вам нужно включить xp_cmdshell
Затем вы можете подключить диск, используя:
Наконец, вы можете сделать резервную копию на этом подключенном диске:
источник
Имейте в виду, что SQL Server очень нетерпим к сетевым задержкам. Если они происходят, и они имеют тенденцию, резервное копирование не удастся. Я не рекомендую эту практику вообще для производственных сред.
Лучше сделать резервную копию локально, а затем скопировать.
источник
Самый простой способ - создать диск .vhd на общем сетевом ресурсе с помощью управления дисками и назначить ему букву диска. SQL может получить доступ к этому диску без каких-либо изменений.
Просто добавьте скрипт diskpart.exe в планировщик при загрузке, чтобы автоматически подключиться при перезагрузке.
пример select vdisk file = "\ {ip address / server} {networkhare} {filenamep.vhd}" attach vdisk // запоминает последнюю букву диска, назначенную.
источник