Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este procedimento descreve como definir uma variável de pacote em que o estado CDC é armazenado.
A variável de estado do CDC é carregada, inicializada e atualizada pela tarefa de controle do CDC e é usada pelo componente de fluxo de dados da fonte CDC para determinar o intervalo de processamento atual para registros de alteração. A variável de estado CDC pode ser definida em qualquer contêiner comum à tarefa de controle CDC e à origem CDC. Isso pode estar no nível do pacote, mas também pode estar em outros contêineres, como um contêiner de loop.
Não é recomendável modificar manualmente o valor da variável de estado CDC, no entanto, pode ser útil entender seu conteúdo.
A tabela a seguir fornece uma descrição de alto nível dos componentes do valor da variável de estado CDC.
| Componente | Descrição |
|---|---|
<state-name> |
Esse é o nome do estado CDC atual. |
CS |
Isso marca o ponto de partida do intervalo de processamento atual (Início Atual). |
<cs-lsn> |
Este é o último Log Sequence Number (LSN), número de sequência de log, processado na execução anterior do CDC. |
CE |
Isso marca o ponto de extremidade do intervalo de processamento atual (Fim Atual). A presença do componente CE no estado CDC é uma indicação de que um pacote CDC está sendo processado no momento ou que um pacote CDC falhou antes de processar totalmente seu intervalo de processamento CDC. |
<ce-lsn> |
Este é o último LSN a ser processado na execução do CDC atual. Sempre se supõe que o último número de sequência a ser processado seja o máximo (0xFFF...). |
IR |
Isso marca o intervalo de processamento inicial. |
<ir-start> |
Este é um LSN referente a uma mudança que ocorreu pouco antes do início da carga inicial. |
<ir-end> |
Esse é um LSN de uma alteração logo após o término da carga inicial. |
TS |
Isso marca o registro de data e hora da última atualização de estado do CDC. |
| <timestamp> | Esta é uma representação decimal da propriedade System.DateTime.UtcNow de 64 bits. |
ER |
Isso aparece quando a última operação falhou e inclui uma breve descrição da causa do erro. Se esse componente estiver presente, ele sempre aparecerá por último. |
<short-error-text> |
Esta é a descrição curta do erro. |
Os LSNs e os números de sequência são codificados como uma cadeia de caracteres hexadecimal de até 20 dígitos que representam o valor LSN de Binary(10).
A tabela a seguir descreve os possíveis valores de estado CDC.
| Estado | Descrição |
|---|---|
| (INICIAL) | Esse é o estado inicial antes de qualquer pacote ser executado no grupo CDC atual. Este também é o estado quando o estado de CDC está vazio. |
| ILSTART (Carga Inicial Iniciada) | Esse é o estado quando o pacote de carga inicial é iniciado, após a chamada de MarkInitialLoadStart operação para a tarefa controle CDC. |
| ILEND (carga inicial encerrada) | Esse é o estado quando o pacote de carga inicial termina com êxito, após a chamada de operação da tarefa de controle CDC MarkInitialLoadEnd. |
| ILUPDATE (Atualização de Carga Inicial) | Esse é o estado nas execuções do pacote de atualização do feed de fluxo após a carga inicial, enquanto ainda processa o intervalo de processamento inicial. Isso ocorre após a chamada de operação GetProcessingRange para a tarefa de controle do CDC.Se estiver usando a coluna de reprocessamento __$, ela será definida como 1 para indicar que o pacote pode estar reprocessando linhas já no destino. |
| TFEND (Trickle-Feed atualização encerrada) | Este é o estado esperado para execuções regulares de CDC. Ele indica que a execução anterior foi concluída com êxito e que uma nova execução com um novo intervalo de processamento pode ser iniciada. |
| TFSTART | Esse é o estado ao realizar uma execução subsequente do pacote de atualização de alimentação gradativa, após a chamada de operação GetProcessingRange para a tarefa de Controle CDC.Isso indica que uma execução regular do CDC foi iniciada, mas ainda não terminou ou ainda não terminou de maneira limpa ( MarkProcessedRange). |
| TFREDO (Reprocessando atualizações de Trickle-Feed) | Esse é o estado de um GetProcessingRange que ocorre após o TFSTART. Isto indica que a execução anterior não foi concluída com êxito.Se estiver usando a coluna de reprocessamento __$, ela será definida como 1 para indicar que o pacote pode estar reprocessando linhas já no destino. |
| ERRO | O grupo de CDC está em um estado de ERROR. |
Veja a seguir exemplos de valores de variável de estado CDC.
ILSTART/IR/0x0000162B158700000000//TS/2011-08-07T17:10:43.0031645/
ILSTART/IR/0x0000162B158700000000//TS/2011-08-07T17:10:43.0031645/
TFEND/CS/0x0000025B000001BC0003/TS/2011-07-17T12:05:58.1001145/
TFSTART/CS/0x0000030D000000AE0003/CE/0x0000159D1E0F01000000/TS/2011-08-09T05:30:43.9344900/
TFREDO/CS/0x0000030D000000AE0003/CE/0x0000159D1E0F01000000/TS/2011-08-09T05:30:59.5544900/
Para definir uma variável de estado CDC
No SQL Server Data Tools, abra o pacote SSIS (SQL Server 2014 Integration Services) que tem o fluxo CDC em que você precisa definir a variável.
Clique na guia Gerenciador de Pacotes e adicione uma nova variável.
Dê à variável um nome que você pode reconhecer como sua variável de estado.
Dê à variável um tipo de dados String .
Não dê à variável um valor como parte de sua definição. O valor deve ser definido pela tarefa de controle do CDC.
Se você planeja usar a tarefa controle CDC com persistência automática de estado, a variável de estado CDC será lida da tabela de estado do banco de dados especificada e será atualizada de volta para a mesma tabela quando seu valor for alterado. Para obter mais informações sobre a tabela Estado, consulte a Tarefa de Controle CDC e o Editor de Tarefas de Controle CDC.
Se você não estiver usando a tarefa de controle CDC com persistência automática de estado, deverá carregar o valor da variável a partir do armazenamento persistente onde ele foi salvo pela última vez que o pacote foi executado. Em seguida, escreva-o de volta no armazenamento persistente quando o processamento do intervalo atual for concluído.