Função CChkSGFiles.ErrCheckLogs
Aplica-se a: Exchange Server 2003 | Exchange Server 2007 | Exchange Server | 2010 Exchange Server 2013
Valida os arquivos de log de todos os arquivos de banco de dados especificados na função ErrInit . Os logs validados são aqueles que existem no caminho e que têm o nome do arquivo de log base de três letras passado para ErrInit.
Vitual ERRErrCheckLogs
(
BOOL * const pfOnlyUnnecessaryLogsCorrup,
Const ULONGulFlags = NO_FLAGS
);
Parâmetros
pfOnlyUnnecessaryLogsCorrupt
Parâmetro de saída. Quando verdadeiro, esse parâmetro indica que foram encontrados erros nos arquivos de log de transação, mas todos esses erros foram encontrados em arquivos de log que não são necessários para levar o banco de dados a um estado de desligamento limpo sem perda de dados. Um valor verdadeiro retornado neste parâmetro só é válido quando o ErrCheckLogs retorna errSuccess.
ulFlags
Parâmetro de entrada opcional. Esse valor é reservado para uso futuro. O valor passado por esse parâmetro deve ser 0 (zero).
Valor de retorno
Um código de erro da enumeração ERR .
É importante lembrar que essa função pode retornar errSuccess mesmo quando erros são encontrados nos arquivos de log. Portanto, quando o ErrCheckLogs retornar errSuccess, o aplicativo também deverá verificar o parâmetro de retorno pfOnlyUnnecessaryLogsCorrupt . Se pfOnlyUnnecessaryLogsCorrupts for verdadeiro quando o ErrCheckLogs retornar errSuccess, isso indica que um ou mais erros foram encontrados, mas apenas em arquivos de log não necessários para atualizar o banco de dados.
Comentários
A função ErrCheckDbHeaders deve ser chamada antes que a função ErrCheckLogs possa ser chamada.
Quando os arquivos de log de transações do Banco de Dados do Exchange estiverem sendo verificados, alguns dos arquivos de log serão necessários para levar os bancos de dados no grupo de armazenamento a um estado de desligamento limpo sem perda de dados, enquanto outros arquivos de log podem não ser necessários. A função ErrCheckLogs determina os arquivos de log mais antigos e os mais recentes necessários para atualizar os bancos de dados.
A função ErrCheckLogs verifica todos os arquivos de log nos caminhos especificados que também têm o nome de arquivo base de três letras especificado, conforme passado para a função ErrInit .
Se nenhum erro for encontrado nos arquivos de log, o ErrCheckLogs retornará errSuccess.
Se algum dos arquivos de log necessários for encontrado corrompido, o ErrCheckLogs retornará um erro.
Se os erros forem encontrados apenas em arquivos de log mais antigos do que os primeiros necessários, a função retornará errSuccess e definirá o parâmetro de retorno pfOnlyUnnecessaryLogCorrupt como true. O aplicativo deve reconhecer que há erros em alguns desses arquivos de log antigos e, se for o caso, ele possivelmente alertará o usuário. De qualquer forma, esses erros não devem afetar a integridade geral do banco de dados ou afetar se a execução dos logs para a frente será bem-sucedida.
Se os erros forem encontrados em qualquer arquivo de log criado após o log mais antigo que o ErrCheckLogs determinar for necessário, a função retornará um erro. O erro será retornado mesmo que o erro do arquivo de log tenha sido encontrado em um arquivo de log que foi gerado posteriormente do que o necessário para atualizar o banco de dados. Embora seja possível levar os bancos de dados a um estado de desligamento limpo usando os arquivos de log identificados, as transações especificadas nos arquivos de log corrompidos posteriores não seriam aplicadas, resultando em perda de dados quando o banco de dados for restaurado.
O objeto CChkSGFiles determina se todos os arquivos de log registrados com a função ErrInit foram realmente verificados. Se nem todos os logs não foram verificados com êxito, a função ErrTerm retornará um erro.
Se você estiver usando CHKSGFILES em um aplicativo multithreaded, poderá chamar a função ErrCheckLogs na parte multithread do aplicativo, mas pode chamá-la apenas uma vez para cada objeto CCheckSGFiles .
Requisitos
O Exchange 2013 inclui apenas uma versão de 64 bits da API CHKSGFILES.
A conta em que o aplicativo está em execução deve ter permissões de acesso de leitura para o banco de dados e arquivos de log que devem ser verificados.