Команда T-SQL Backup Database для указания пути к файлу с пробелами?

#tsql #file #backup

#tsql #файл #резервное копирование

Вопрос:

Как мне написать команду T-SQL backup database, чтобы указать файл, содержащий пробелы? Вот что у меня есть:

 BACKUP DATABASE AMDMetrics TO DISK = 'C:Documents and SettingsdaultrdMy DocumentsDatabaseBackupsAMD_METRICS.DAT'
  

И это ошибка, которую я получаю:

Сообщение 3201, уровень 16, состояние 1, строка 1 Не удается открыть устройство резервного копирования ‘C:Documents и настройкиdaultrdМои документы DatabaseBackupsAMD_METRICS.DAT’. Ошибка операционной системы 3 (система не может найти указанный путь.). Сообщение 3013, уровень 16, состояние 1, строка 1 РЕЗЕРВНАЯ БАЗА ДАННЫХ завершается аварийно.

Комментарии:

1. Вы создали DatabaseBackups папку под My Documents и убедились, что путь указан правильно?

2. Джо, ты можешь взглянуть на мои комментарии ниже и дать совет?

Ответ №1:

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

 BACKUP DATABASE AMDMetrics 
    TO DISK = '\YourMachineNameSharedFolderNameAMD_METRICS.DAT'
  

Комментарии:

1. Вы не поверите, но я не могу предоставить общий доступ ни к одной из своих локальных папок! Я не могу в это поверить! У них все заблокировано. Так, может быть, для меня нет решения?!

2. Первая представляет собой системную хранимую процедуру, используемую для вызова команд оболочки (обычно для запуска внешних программ). И последняя является собственной консольной клиентской программой ftp для Windows. Вы могли бы (попытаться) использовать ее для загрузки уже сохраненного файла резервной копии на какой-либо доступный ftp-сервер (затем, конечно, загрузить его на свой компьютер).

Ответ №2:

У меня это работает, вы уверены, что каталог указан правильно?

 backup database master to disk = 'c:Test Memaster.bak'


Processed 41728 pages for database 'master', file 'master' on file 1.
Processed 5 pages for database 'master', file 'mastlog' on file 1.
BACKUP DATABASE successfully processed 41733 pages 
in 22.911 seconds (14.230 MB/sec).
  

скопируйте и вставьте это в проводник и посмотрите, сможете ли вы туда добраться C:Documents and SettingsdaultrdMy DocumentsDatabaseBackups

Это, конечно, должен быть один и тот же компьютер, в противном случае вам нужно сопоставить диск с местоположением или использовать UNC-пути

Комментарии:

1. Я ввел это там, и да, я могу добраться туда.

2. сервер базы данных находится на вашем локальном компьютере? Если нет, то он не сможет увидеть, и тогда вам нужен путь UNC

3. нет, сервер базы данных не является моим локальным компьютером. Проблема в том, что у меня нет прав на копирование на серверном компьютере.

Ответ №3:

Я также работал над этой проблемой.

Возможно, что Служба, под управлением которой запущен SQL Server (сетевая служба по умолчанию), не имеет прав доступа к указанной папке.

 BACKUP DATABASE master TO DISK = 'master1.bak' WITH INIT
  

Вышеуказанное должно быть скопировано в папку резервного копирования по умолчанию
если это работает без проблем, это будет заявленная проблема.