Existe alguma maneira de recuperar um banco de dados SQL do modo Standby/Read-Only se o "arquivo standby" estiver faltando?
(Vejo algumas referências chamando isso de arquivo TUF em um cenário de envio de logs, mas, no meu caso, foi apenas uma restauração manual e o arquivo de espera tinha uma extensão BAK.)
Fazer um "RESTORE DATABASE foo WITH RECOVERY" resulta em um erro fatal:
During startup of warm standby database 'foo', its standby file
('path\filename.bak') was inaccessible to the RESTORE statement.
The operating system error was '5(Access is denied.)'. Diagnose the
operating system error, correct the problem, and retry startup.
A restauração foi feita há algum tempo e, infelizmente, o arquivo em espera estava na pasta de backup e foi removido por nossa rotina de limpeza de pasta. Nenhuma cópia do arquivo existe em nenhuma outra mídia. Os backups originais que foram usados para restaurar até este ponto também já se foram.
Felizmente, isso não é grande coisa para nós (foi uma restauração temporária), mas não consegui encontrar nenhuma outra referência útil sobre essa questão, além de "não remova esse arquivo".
Se fosse necessário, suponho que poderia fazer o script de todo o banco de dados ou usar o SSIS para copiar todos os objetos para um novo contêiner de banco de dados, já que tenho uma cópia somente leitura do banco de dados à minha frente.
Alguma maneira de corrigir esse problema? Certamente não espero ser capaz de voltar a "restaurar" e continuar fazendo restaurações subsequentes ou qualquer coisa, gostaria apenas de forçá-lo ao modo online normal em seu estado atual, para que eu possa fazer coisas como alterar permissões ou alterar o modo de recuperação ou fazer um novo backup completo ou algo assim.
Acontece que isso pode ser feito se você usar CONTINUE_AFTER_ERROR
Ainda recebi um aviso quando tentei, mas fiz um CHECKDB e não recebi erros.
Dado o aviso, não tenho 100% de certeza se tentaria em um banco de dados de produção em que não tivesse um bom backup. Dado que é uma restauração temporária, pode valer a pena tentar.