Назад | Перейти на главную страницу

Как сделать резервную копию базы данных MSSQL с другого хоста с помощью osql?

Мы выполняли нашу базу данных sql с использованием osql следующим образом:

osql -s IP-9873743\SQLEXPRESS -E -Q "BACKUP DATABASE DBNAME TO 
Disk ='e:\sysbkup\sqlbackup\DBNAME.bak' WITH NOFORMAT, 
INIT, NAME = N' DBNAME-Full Database Backup', 
SKIP, NOREWIND, NOUNLOAD, STATS = 10"

Мы хотим сделать то же самое с другого хоста, но когда мы добавляем параметр -H для хоста в команду, мы получаем «Ошибка входа в систему». С помощью MS SQL Server Management Studio мы можем нормально войти на другой сервер с проверкой подлинности Windows, поскольку моя машина и другой хост используют одни и те же имена пользователей с одним и тем же паролем.

Когда я запускаю оператор резервного копирования из консоли MGMT Studio, резервная копия сохраняется на диск другого хоста, а не переносится на клиентский компьютер. Есть идеи, как я смогу сделать резервную копию базы данных MSSQL с другого хоста, отличного от самого механизма mssql?

Вы должны указать имя сервера в параметре -s, а не -H, хотя это все равно будет резервное копирование на сервер, на котором работает служба SQL.

По моему опыту, SQL Server суетливо относится к работе с сетевыми дисками, но вы можете попробовать указать путь UNC (\\<server>\<share>\<backup_file>) в то место, куда вы хотите передать резервную копию в сети. Я считаю, что пользователю, на котором запущен экземпляр SQL Server, потребуется доступ для записи на целевую машину. Я не думаю, что он будет использовать вашу учетную запись, несмотря на вход в систему через встроенную систему безопасности Windows, поэтому вам нужно будет сначала организовать это.