Por que o arquivo de backup não é criado ao executar o sqlcmd a partir da máquina remota?

1

Eu tentei executar o sqlcmd a partir de um host remoto para fazer um backup simples de um banco de dados sql 2008. O comando é algo assim:

sqlcmd -s xxx.xxx.xxx.xx -U username -P some_password -Q "Backup database [db] to \  
disk = 'c:\test_backup.bak' with format"

Recebo uma mensagem bem-sucedida, mas o arquivo não é criado.

Quando eu executo isso no gerenciador de sql na mesma máquina, ele funciona. Eu pensei que eram problemas de permissão, mas estou usando o mesmo nome de usuário em ambos os casos.

Alguma opinião?

    
por Ed Gl 27.12.2010 / 19:29

3 respostas

1

Siga este guia .

Você precisa criar um script SQL que faça backup do banco de dados especificado nele no local desejado e, em seguida, chamar esse script sql de SQLCMD.

Por exemplo, se você chamar o script de backup backup.sql:

sqlcmd -S .\SQLEXPRESS -i backup.sql -o output.txt

Exemplo de backup.sql:

DECLARE @Path NVARCHAR(1000), @FileName NVARCHAR(255), @FullPath NVARCHAR(1255)
SET @Path = '\db1\E$\SQLServer08\Backups\'
SET @FileName = 'Express_' + REPLACE(CONVERT(VARCHAR(10), GETDATE(), 101), '/', '') + '.bak'
SET @FullPath = @Path + @FileName

BACKUP DATABASE Express
TO DISK = @FullPath
WITH INIT
    
por 30.01.2011 / 09:43
0

Se o servidor estiver executando o Windows 2008 ou superior, poderá ter problemas ao gravar o arquivo na raiz da unidade. Eu já vi isso antes. Crie uma pasta no C: \ e faça o backup do arquivo na pasta.

    
por 27.12.2010 / 22:53
0

Op, você está esperando que o arquivo de backup apareça no host remoto onde você está executando o sqlcmd?

Nesse caso, você precisa especificar um caminho UNC em vez de um caminho local (para o host que está executando o sqlcmd). O SQL Server não reconhece o caminho local do host remoto ...

    
por 28.12.2010 / 00:32