Pergunta

Eu tenho um conjunto de sites do SharePoint (2013) que está travado no modo somente leitura devido a um backup que foi interrompido ou não foi encerrado corretamente.

Não consigo desbloquear em:

  • Cotas do site e bloqueio na administração central (a opção está esmaecida)
  • Stsadm :a operação foi concluída com êxito, mas nenhuma alteração
  • Usando PowerShell:mesmo comportamento que stsadm

Revisei o banco de dados de conteúdo associado para garantir que não estava no modo de usuário único nem somente leitura, o que não era o caso.O espaço em disco também não é um problema.

Alguém sabe como o SharePoint persiste essas informações no banco de dados de conteúdo para que eu possa dar uma espiada?Alguma outra maneira de desbloquear esse estado?

Se alguém quiser reproduzir isso, você pode quebrar uma operação de backup (stsadm/powershell CTRL+C) enquanto o backup do site está sendo feito.A propriedade ReadOnlyMode (e a propriedade MaintenanceMode associada) será deixada como "True" evitando qualquer atualização.

Foi útil?

Solução

Esta é uma situação de pesadelo para se estar!O problema foi escalado para a Microsoft, que de fato conhece e já corrigiu a origem (para que os backups encerrados não acionem isso) na CU de abril http://blogs.technet.com/b/stefan_gossner/archive/2013/04/27/april-2013-cu-for-sharepoint-2013-has-been-released.aspx - você deve instalar o March CU primeiro.

No entanto, isso acontece não ainda assim, corrija o fato de que você não pode alterar o conjunto de sites do modo somente leitura, portanto, ainda é uma situação matadora, especialmente com um site grande.Pior ainda, não adianta restaurar um novo backup completo da coleção de sites bloqueados (mesmo que você saiba que não há nada realmente errado com ele além do sinalizador somente leitura/modo de manutenção!) - pois depois de tudo isso, ele permanece bloqueado!Felizmente, porém, o sinalizador está no nível Site Coll, não Farm, então mesmo que tenha sido seu primeiro backup (acabamos de migrar todos os documentos para ele e o go-live ficou em forma de pêra graças a isso!) ou você não quiser perder dados com um backup recente, descobrimos que você pode usar com segurança o Export-SPWeb para tirar tudo daquele Site Coll bloqueado, excluir o Site Coll (doloroso, mas necessário!), Criar um novo e usar o Import-SPWeb para trazer tudo de volta.

Dica - O Import-SPWeb pode apenas usar o nome do arquivo original do Export e encadear automaticamente todos os vários arquivos .cmp nos quais dividiu qualquer site grande, para que você não precise fazê-los individualmente.

Já o executamos há um dia e, para nosso alívio, tudo, incluindo as permissões de nível de item mapeadas para contas FBA (você usará -IncludeUserSecurity no Export-SPWeb, é claro) está funcionando bem novamente.Ataque cardíaco acabou por enquanto!


ATUALIZAR :

A Microsoft me ligou de volta e me deu a solução!

PS C:\Users\root> $Admin =  new-object Microsoft.SharePoint.Administration.SPS
iteAdministration('http://root.toto.com')
PS C:\Users\root> $Admin.ClearMaintenanceMode()
PS C:\Users\root> $site.MaintenanceMode
True

Depois disso, meu conjunto de sites não será mais somente leitura!

Outras dicas

Uma solução alternativa para o problema de não ter atualizado para o CU de abril de 2013 é um script simples do PowerShell que usa reflexão para definir o valor da propriedade interna 'MaintenanceMode': -

$site = Get-SPSite http://urltofreakinlockedsite/
$site.GetType().GetProperty("MaintenanceMode").GetSetMethod($true).Invoke($site, @($false))

Essa abordagem tem a vantagem de não precisar mexer no banco de dados.Tendo usado o .NET Reflector na versão CU de abril de 2013 do Microsoft.SharePoint.dll, isso é de fato o que SPSiteAdministration.ClearMaintenanceMode() faz!

Você precisará executar isso no servidor e como administrador do farm com acesso de gravação ao banco de dados de conteúdo.

Isso funcionará nas versões CU anteriores e posteriores a abril de 2013 do SharePoint 2013

parece ser um problema do SharePoint. Aqui é um post que talvez possa te ajudar.

EDITADO:

Na verdade, este é um problema conhecido da Microsoft.A única maneira de corrigir isso é restaurar o backup do seu site substituindo o conjunto de sites bloqueado.Dessa forma, o sinalizador definido como somente leitura será liberado pela restauração processo e o conjunto de sites estarão disponíveis novamente

André

Apenas para deixar isso claro para outras pessoas que lêem isto.Você não pode corrigir isso no SharePoint RTM com os comandos acima.Você deve primeiro atualizar o RTM para março e depois para abril.Depois de concluído, execute os dois comandos a seguir no site em questão.

PS C:\Users\root> $Admin =  new-object Microsoft.SharePoint.Administration.SPSiteAdministration('http://root.toto.com')
PS C:\Users\root> $Admin.ClearMaintenanceMode()

É isso.

É uma loucura absoluta que o SharePOint 2013 precise de duas atualizações de CU antes que você possa acessar a propriedade através do Powershell.Pelo menos há uma solução, suponho.

Excelente, também funciona para o SharePoint 2016

PS C:\Users\root> $site = Get-SPSite http://contoso.com
PS C:\Users\root> $site.GetType().GetProperty("MaintenanceMode").GetSetMethod($true).Invoke($site, @($false))
PS C:\Users\root>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top