Compartilhar via


Função JetBeginExternalBackup

Aplica-se a: Windows | Windows Server

Função JetBeginExternalBackup

A função JetBeginExternalBackup inicia um backup externo enquanto o mecanismo e o banco de dados estão online e ativos. JetBeginExternalBackup é o primeiro de uma série de funções que devem ser chamadas para executar um backup online bem-sucedido (não baseado em VSS).

Um backup externo pode ser usado para implementar backups completos, incrementais ou diferenciais.

O backup será difuso, porque o backup será consistente com um único ponto no tempo no histórico de transações, mas controlar o ponto exato no tempo não é possível.

    JET_ERR JET_API JetBeginExternalBackup(
      __in          JET_GRBIT grbit
    );

Parâmetros

grbit

Um grupo de bits que especificam zero ou mais das opções a seguir.

Valor

Significado

JET_bitBackupAtomic

Esse sinalizador foi preterido. O uso desse bit resultará no retorno de JET_errInvalidgrbit.

JET_bitBackupIncremental

Cria um backup incremental em vez de um backup completo. Isso significa que somente os arquivos de log desde o último backup completo ou incremental serão copiados em backup.

JET_bitBackupSnapshot

Reservado para uso futuro. Definido para Windows XP.

Valor Retornado

Essa função retorna o tipo de dados JET_ERR com um dos seguintes códigos de retorno. Para obter mais informações sobre os possíveis erros do ESE, consulte Erros extensíveis do mecanismo de armazenamento e parâmetros de tratamento de erros.

Código de retorno

Descrição

JET_errSuccess

A operação foi concluída com sucesso.

JET_errBackupInProgress

Se um backup externo ou instantâneo backup já estiver em processo, esse erro será retornado até que JetBeginExternalBackup (ou uma das variantes dele) seja chamado. O ESE permite apenas um backup online por vez.

JET_errBackupNotAllowedYet

A instância ou o mecanismo de banco de dados está em recuperação ou em uma fase de desligamento ou encerramento.

JET_errCheckpointCorrupt

Em um backup completo, o arquivo de ponto de verificação não pôde ser lido ou o arquivo não pôde ser verificado.

JET_errCheckpointFileNotFound

Em um backup completo, não foi possível encontrar o arquivo de ponto de verificação.

JET_errClientRequestToStopJetService

A operação não pode ser concluída porque todas as atividades na instância associada à sessão cessaram como resultado de uma chamada para JetStopService.

JET_errInstanceUnavailable

A operação não pode ser concluída porque a instância associada à sessão encontrou um erro fatal que exige que o acesso a todos os dados seja revogado para proteger a integridade desses dados.

Windows XP: Esse valor retornado é introduzido no Windows XP.

JET_errInvalidBackup

O log circular está habilitado e o tipo de backup especificado é JET_bitBackupIncremental. Consulte JET_paramCircularLog no Log de Transações Erros para obter informações sobre como controlar o log circular ou não circular.

JET_errInvalidgrbit

Um ou mais membros grbit eram inválidos.

JET_errLoggingDisabled

A recuperação ou o registro em log está desabilitado. Você não poderá fazer um backup online se o registro em log estiver desabilitado. Para obter mais informações sobre registro em log e recuperação, consulte JET_paramRecovery.

JET_errLogWriteFail

O mecanismo parou de gravar na unidade de log devido a erros de E/S de disco ou de log.

JET_errMissingFullBackup

O backup incremental foi especificado (com JET_bitBackupIncremental) e nunca foi um backup completo feito para um dos bancos de dados anexados para o conjunto de logs.

JET_errNotInitialized

A operação não pode ser concluída porque a instância associada à sessão ainda não foi inicializada.

JET_errOutOfMemory

A operação falhou porque não foi possível alocar memória suficiente para concluí-la.

JET_errRestoreInProgress

A operação não pode ser concluída porque uma operação de restauração está em andamento na instância associada à sessão.

JET_errRunningInMultiInstanceMode

A operação falhou porque foi feita uma tentativa de usar o mecanismo no modo herdado (modo de compatibilidade do Windows 2000) em que apenas uma instância tem suporte quando, na verdade, várias instâncias já existem.

JET_errTermInProgress

A operação não pode ser concluída porque a instância associada à sessão está sendo desligada.

Se a função for bem-sucedida, um backup externo será iniciado e o mecanismo de estado de backup será inicializado. As APIs subsequentes agora podem ser chamadas para concluir a sequência de backup externo e transmitir ou ler o arquivo de banco de dados, o arquivo de patch do banco de dados (se houver suporte) e o arquivo de log. Um evento pode ser registrado que um backup externo tenha começado.

Se a função falhar, a sessão de backup não será iniciada. Se outra sessão de backup estiver em andamento, ela não será cancelada.

Comentários

O processo de backup externo (conforme iniciado por JetBeginExternalBackup) foi projetado para permitir um backup online de transação difusa de toda a instância para um dispositivo de destino como um fluxo. O backup conterá todos os arquivos de banco de dados anexados à instância usando JetAttachDatabase (para um backup completo), seguido pelos arquivos de patch de banco de dados associados (se houver suporte) e, por fim, pelos arquivos de log de transações que foram gerados durante o processo de backup. O resultado final será um conjunto de arquivos que podem ser restaurados do fluxo, possivelmente combinados com arquivos de log e de banco de dados existentes e, finalmente, recuperados para um estado consistente.

A ordem geral das operações para um backup completo consiste nas chamadas a seguir. Primeiro, JetBeginExternalBackup é chamado para iniciar o processo de backup. Em seguida, JetGetAttachInfo é chamado para obter a lista de bancos de dados anexados à instância que precisa ser backup. Para cada um desses bancos de dados, JetOpenFile é chamado, seguido por várias chamadas JetReadFile e, em seguida, por uma chamada para JetCloseFile. Em seguida, JetGetLogInfo é chamado para obter uma lista de arquivos de patch de banco de dados e de log a serem copiados em backup. Para cada um desses arquivos, outra sequência de chamadas JetOpenFile, JetReadFile e JetCloseFile são feitas. Em seguida, todos os arquivos de log de transações indesejados são excluídos usando JetTruncateLog. Por fim, o backup é encerrado por uma chamada para JetEndExternalBackup.

Também é possível modificar esse conjunto de etapas para executar um backup incremental da instância. Um backup incremental enumera e faz backup de arquivos de log. Backups incrementais só serão possíveis se o log circular não estiver habilitado.

Também é possível modificar esse conjunto de etapas para permitir que backups diferenciais subsequentes da instância sejam executados. Para executar um backup diferencial, não chame JetTruncateLog no backup completo ou incremental anterior. Ao não chamar JetTruncateLog, você permite que os backups subsequentes sejam diferenciais em relação ao último backup completo ou incremental. Backups diferenciais só serão possíveis se o log circular não estiver habilitado.

O arquivo de patch de banco de dados é um arquivo auxiliar especial usado para armazenar imagens de página de banco de dados em determinadas circunstâncias durante o backup. Esse arquivo deve estar presente no mesmo local que seu banco de dados associado durante uma operação de restauração. Esse arquivo só é usado no Windows 2000. Como resultado, qualquer aplicativo gravado para funcionar no Windows 2000 e em outras versões deve dar suporte a arquivos de patch de banco de dados, se eles estiverem presentes, mas também não devem falhar se não estiverem presentes.

Requisitos

Requisito Valor

Cliente

Requer Windows Vista, Windows XP ou Windows 2000 Professional.

Servidor

Requer o Windows Server 2008, o Windows Server 2003 ou o Windows 2000 Server.

Cabeçalho

Declarado em Esent.h.

Biblioteca

Use ESENT.lib.

DLL

Requer ESENT.dll.

Consulte Também

JET_ERR
JET_GRBIT
JET_INSTANCE
JetAttachDatabase
JetBeginExternalBackupInstance
JetCloseFile
JetEndExternalBackup
JetEndExternalBackupInstance2
JetGetAttachInfo
JetGetLogInfo
JetOpenFile
JetReadFile
JetStopBackup
JetTruncateLog