Recentemente, restaurei um banco de dados para a mesma instância da qual foi feito o backup (SQL Server 2008 R2 Enterprise) e descobri que não conseguia acessar as propriedades do banco de dados.
Eu tenho feito o seguinte:
- Verificado se o proprietário do banco de dados foi definido corretamente usando
sp_helpdb
. - Alterado o proprietário do banco de dados para
sa
. Não é uma correção. - Mudou o proprietário do banco de dados de volta para o meu
sysadmin
usuário. Não é uma correção. - Emitido
DBCC updateusage
em relação ao banco de dados afetado. Não é uma correção. - Execute
DBCC CheckDB
em uma cópia restaurada para outra instância. Nenhuma corrupção encontrada. A cópia restaurada (do mesmo arquivo de backup) não gerou nenhum erro ao acessar a janela de propriedades do banco de dados.
Alguém pode ajudar?
A mensagem de erro que recebo ao tentar visualizar as propriedades é:
Não é possível mostrar a caixa de diálogo solicitada. (SqlMgmt)
O tamanho da propriedade não está disponível para o banco de dados '[DBNAME]'.
Esta propriedade pode não existir para este objeto ou pode não ser recuperável devido a direitos de acesso insuficientes. (Microsoft.SqlServer.Smo)
Eu sou um sysadmin
nesta instância.
Atualização: Como sugerido, criei um novo usuário, tornei-o sysadmin e alterei o proprietário do banco de dados para ele. Não é uma correção infelizmente. Vou ver se um rastreamento de profiler produz algo útil.
Atualização: Aaron - o banco de dados original foi renomeado e colocado offline, mas ainda está nessa instância. O backup desse banco de dados foi então restaurado usando o nome original. Os nomes de arquivo dos novos arquivos de banco de dados são diferentes do original, pois estão na mesma pasta que o mdf/ldf original. O banco de dados restaurado está conduzindo nossos aplicativos críticos normalmente.
Eu resolvi isso reiniciando o serviço SQL Server, infelizmente/felizmente.
Minha ideia inicial era desanexar/anexar o banco de dados. Não que eu achasse que isso realmente resolveria o problema, acabei de ler isso em um fórum em algum lugar. Isso não teve efeito.
Infelizmente, não fiz o que PJ Mahoney sugeriu em relação a: executar um rastreamento. Espero ver esse problema novamente para descobrir se um rastreamento revela alguma coisa. Obrigado pela sugestão.
Pelo menos responder minha própria pergunta significa que não preciso ver outra sugestão sobre como alterar o proprietário do banco de dados ;P
Obrigado
Eu tive esse mesmo erro ao tentar modificar as propriedades de crescimento do arquivo do arquivo de log de um banco de dados de produção. Tentei usar o SSMS e tive o mesmo erro:
Em vez disso, usei o T-SQL para modificar o arquivo de log do banco de dados.
Após a conclusão do comando, consegui abrir as propriedades do banco de dados no SSMS. Espero que isso funcione para os outros.
Isso pode acontecer em bancos de dados muito ocupados ou mesmo se o banco de dados não estiver ocupado em geral, mas no momento estiver executando uma instrução que está alterando rapidamente o tamanho do arquivo de log. Por exemplo, se você tentar excluir um número muito grande de linhas (milhões) de uma tabela, o mecanismo terá que registrar cada linha para fins de reversão, o que forçará o arquivo de log a crescer rapidamente. Enquanto isso estiver em andamento, se você tentar abrir as propriedades do banco de dados no SSMS, verá a mensagem de erro "tamanho da propriedade não está disponível.."
Outra maneira de reproduzi-lo é a seguinte: pegue um banco de dados muito grande (mais de 100 milhões de linhas) e execute uma instrução ALTER TABLE nele (por exemplo, converta uma coluna char em um varchar). Veja seu arquivo de log explodir em centenas de megas ou até gigabytes por segundo. Novamente, enquanto isso está acontecendo, seu SSMS não poderá fornecer o tamanho do banco de dados porque ele está mudando muito rápido para ser preciso.
Escusado será dizer, por favor, não tente isso em servidores ao vivo. :)
Acabei de encontrar isso e de um rastreamento, aparentemente isso foi bloqueado por uma operação INDEX REBUILD que estava em execução
Meu erro específico foi
Deve ter um valor de tempo limite muito baixo, mas talvez você possa verificar se há algo bloqueado ao tentar acessar as propriedades
Recebo esta mensagem de erro durante a implantação de uma solução de ferramentas de banco de dados do SQL Server no banco de dados (no SQL Server 2008 R2). Após a conclusão da implantação, o erro desaparece. É um pouco desagradável porque nem o banco de dados está no modo de usuário único ou somente leitura (ou não) ou qualquer outra coisa que indique o motivo.