#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
Вышеуказанное должно быть скопировано в папку резервного копирования по умолчанию
если это работает без проблем, это будет заявленная проблема.