terça-feira, 17 de novembro de 2009

Mover os arquivos do banco de dados Msdb

Para mover o banco de dados MSDB, é necessário iniciar o SQL Server com a opção -c, a opção -m e o sinalizador de rastreamento 3608.

O sinalizador de rastreamento 3608 evita que o SQL Server recupere na inicialização qualquer banco de dados, exceto o banco de dados Master.

Após adicionar a opção -c, a opção -m e o sinalizador de rastreamento 3608, execute as seguintes etapas:


. Interrompa e reinicie o SQL Server.
. Certifique-se de que o serviço SQL Server Agent não está sendo executado no momento.
. Desanexe o banco de dados msdb como segue:
use master
go
sp_detach_db 'msdb'
go

. Mova os arquivos Msdbdata.mdf e Msdblog.ldf do local atual (D:\Mssql8\Data) para o novo local (E:\Mssql8\Data).
. Remova -c -m -T3608 da caixa de parâmetros de inicialização no Enterprise Manager.
. Interrompa e reinicie o SQL Server.

Observação: Se tentar anexar novamente o banco de dados msdb iniciando o SQL Server junto com a opção -c, a opção -m e o sinalizador de rastreamento 3608, talvez você a seguinte mensagem de erro seja exibida:
Servidor: Msg 615, Nível 21, Estado 1, Linha 1
Não foi possível encontrar a tabela de banco de dados ID 3, nome 'Model'.

.Anexe novamente o banco de dados msdb conforme a seguir:
use master
go
sp_attach_db 'msdb','E:\Mssql8\Data\msdbdata.mdf','E:\Mssql8\Data\msdblog.ldf'
go

Observação: Se usar este procedimento e mover o banco de dados Model, estará tentando desanexar o banco de dados msdb enquanto desanexa o banco de dados Model.
Ao fazer isto, será necessário anexar novamente o banco de dados Model primeiro e anexar novamente o banco de dados msdb.
Se anexar novamente o banco de dados msdb primeiro, a seguinte mensagem de erro será exibida ao tentar anexar novamente o banco de dados Model:
Msg 0, Nível 11, Estado 0, Linha 0
Erro grave no comando atual. Os resultados, se houver, devem ser descartados.

Neste caso, é necessário desanexar o banco de dados msdb, anexar novamente o banco de dados Model e anexar novamente o banco de dados msdb.

Após mover o banco de dados msdb, talvez a seguinte mensagem de erro seja exibida:
Erro 229: Permissão EXECUTE negada no objeto'ObjectName', banco de dados 'mestre', proprietário 'dbo'.

Esse problema ocorre porque a corrente de propriedade foi quebrada.
Os proprietários do banco de dados msdb e do banco de dados mestre não são os mesmos.
Neste caso, o proprietário do banco de dados msdb foi alterado. Como solução alternativa, execute as seguintes declarações Transact-SQL.
É possível fazer isso usando a linha de comando Osql.exe ou a linha de comando Sqlcmd.exe:

USE MSDB
Go
EXEC sp_changedbowner 'sa'
Go

Nenhum comentário:

Postar um comentário