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.
Importante
A Captura de Dados de Alteração para Oracle da Attunity foi preterida agora. Para obter detalhes, consulte o comunicado.
Uma Instância oracle CDC é associada a um banco de dados do SQL Server pelo mesmo nome na instância do SQL Server de destino. Esse banco de dados é chamado de banco de dados Oracle CDC (ou o banco de dados CDC).
O banco de dados CDC é criado e configurado usando o Console do Designer Oracle CDC e contém os seguintes elementos:
Um
cdcesquema criado habilitando o banco de dados para o SQL Server CDC.Um conjunto de tabelas cdc.xdbcdc_xxxx usadas pela Instância Oracle CDC.
Um conjunto de tabelas espelho vazias com as definições das tabelas capturadas no banco de dados Oracle de origem.
Um conjunto de tabelas de alterações e funções de acesso a alterações que são gerados pelo mecanismo CDC do SQL Server e são idênticos aos usados no CDC do SQL Server normal, que não seja Oracle.
O cdc esquema é inicialmente acessível apenas para os membros da função de banco de dados fixa dbowner . O acesso às tabelas de alterações e às funções de alteração é determinado pelo mesmo modelo de segurança que o CDC do SQL Server. Para obter mais informações sobre o modelo de segurança, consulte o Modelo de Segurança.
Criando o banco de dados CDC
Na maioria dos casos, o banco de dados CDC é criado usando o Cdc Designer Console, mas também pode ser criado com um script de implantação CDC que é gerado usando o Cdc Designer Console. O administrador do sistema do SQL Server pode alterar as configurações do banco de dados se necessário (para itens como armazenamento, segurança ou disponibilidade).
Para obter mais informações sobre como usar o Cdc Designer Console para criar as tabelas de banco de dados e os scripts necessários, consulte Usar o Assistente de Nova Instância.
Funções de usuário do banco de dados CDC
Quando um Banco de Dados CDC é criado e habilitado para CDC, um usuário de banco de dados chamado cdc_service é criado no banco de dados CDC e está associado ao logon do SQL Server com o qual o Serviço Oracle CDC foi configurado. Esse usuário é tornado membro das funções de banco de dados db_datareader, db_datawriter e db_ddladmin. Se o logon do SQL Server também for associado ao dbo usuário, o cdc_service não será criado.
Essa atribuição de função permite que o Serviço Oracle CDC atualize as tabelas no cdc esquema com dados capturados e com informações de controle.
Quando um banco de dados CDC é criado e as tabelas Oracle de origem CDC são configuradas, o proprietário do banco de dados CDC pode conceder permissão SELECT de tabelas espelho e definir funções de controle de acesso do CDC no SQL Server para controlar quem acessa os dados de alteração.
Tabelas espelhadas
Para cada tabela capturada no banco de dados de origem Oracle, <nome do esquema>.<nome da tabela>, uma tabela vazia semelhante é criada no Banco de Dados CDC, com o mesmo nome de esquema e nome de tabela. Tabelas de origem Oracle com nome de esquema cdc (sem diferenciação entre maiúsculas e minúsculas) não podem ser capturadas porque o esquema cdc no SQL Server está reservado para o CDC do SQL Server.
As tabelas espelho estão vazias; nenhum dado é armazenado nelas. Eles são usados para habilitar a infraestrutura padrão do SQL Server CDC usada pela Instância do Oracle CDC. Para impedir que os dados sejam inseridos ou atualizados nas tabelas espelho, todas as operações UPDATE, DELETE e INSERT são negadas para PUBLIC. Isso garante que eles não possam ser modificados.
Acesso para Alterar Dados
Devido ao modelo de segurança do SQL Server usado para obter acesso aos dados de alteração associados a uma instância de captura, o usuário deve receber select acesso a todas as colunas capturadas da tabela espelho associada (as permissões de acesso às tabelas oracle originais não fornecem acesso às tabelas de alterações no SQL Server). Para obter informações sobre o modelo de segurança do SQL Server, consulte o Modelo de Segurança.
Além disso, se uma função de controle for especificada quando a instância de captura for criada, o chamador também deve ser membro da função de controle especificada. Outras funções gerais de captura de dados de alteração para acessar metadados são acessíveis a todos os usuários do banco de dados por meio da função PUBLIC, embora o acesso aos metadados retornados geralmente seja controlado por meio de permissões de acesso seletivo às tabelas de origem subjacentes e pela associação a quaisquer funções de restrição definidas.
Os dados de alteração podem ser lidos chamando funções especiais baseadas em tabela geradas pelo componente CDC do SQL Server quando uma instância de captura é criada. Para obter mais informações sobre essa função, consulte Change Data Capture Functions (Transact-SQL).
O acesso aos dados CDC por meio do componente de origem CDC do Integration Services está sujeito às mesmas regras.
Tabelas de banco de dados CDC
Esta seção descreve as tabelas a seguir no banco de dados CDC.
- Alterar Tabelas (_CT)
- cdc.lsn_time_mapping
- cdc.xdbcdc_config
- cdc.xdbcdc_state
- cdc.xdbcdc_trace
- cdc.xdbcdc_staged_transactions
Alterar Tabelas (_CT)
As tabelas de alteração são criadas a partir das tabelas espelho. Eles contêm os dados de alteração capturados do banco de dados Oracle. As tabelas são nomeadas de acordo com a seguinte convenção:
[cdc]. [<capture-instance>_CT]
Quando a captura é habilitada inicialmente para tabela <schema-name>.<table-name>, o nome da instância de captura padrão é <schema-name>_<table-name>. Por exemplo, o nome da instância de captura padrão para a tabela EMPLOYEES do Oracle HR é HR_EMPLOYEES, e a tabela de alterações associada é chamada de cdc. [HR_EMPLOYEES_CT].
As tabelas de captura são gravadas pela instância Oracle CDC. Eles são lidos usando funções especiais com valor de tabela geradas pelo SQL Server quando a instância de captura é criada. Por exemplo, fn_cdc_get_all_changes_HR_EMPLOYEES. Para obter mais informações sobre essas funções CDC, consulte Change Data Capture Functions (Transact-SQL).
cdc.lsn_time_mapping
O [cdc].[ lsn_time_mapping] tabela é gerada pelo componente CDC do SQL Server. Seu uso no caso do Oracle CDC é diferente de seu uso normal.
Para o Oracle CDC, os valores LSN armazenados nesta tabela são baseados no valor do NÚMERO de Alteração do Sistema Oracle (SCN) associado à alteração. Os primeiros 6 bytes do valor LSN são o número original do Oracle SCN.
Além disso, ao usar o Oracle CDC, as colunas de tempo (tran_begin_time e tran_end_time) armazenam a hora UTC da alteração em vez da hora local como ela faz com o CDC do SQL Server regular. Isso garante que as alterações de horário de verão não afetem os dados armazenados no lsn_time_mapping.
cdc.xdbcdc_config
Esta tabela contém os dados de configuração da Instância oracle CDC. Ele é atualizado usando o Cdc Designer Console. Esta tabela tem apenas uma linha.
A tabela a seguir descreve as colunas da tabela cdc.xdbcdc_config .
| Elemento | Descrição |
|---|---|
| versão | Isso mantém o controle da versão da configuração da instância CDC. Ele é atualizado sempre que a tabela é atualizada e sempre que uma nova instância de captura é adicionada ou uma instância de captura existente é removida. |
| cadeia_de_conexão | Uma cadeia de conexão Oracle. Um exemplo básico é:<server>:<port>/<instance> (por exemplo, erp.contoso.com:1521/orcl).A cadeia de conexão também pode especificar um descritor do Oracle Net Connect, por exemplo, (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=erp.contoso.com) (PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=orcl))).Se estiver usando um servidor de diretório ou tnsnames, a cadeia de conexão poderá ser o nome da conexão. Para saber mais sobre as cadeias de conexão oracle, consulte o Guia do Programador de Interface de Chamada, que fornece informações detalhadas sobre cadeias de conexão do banco de dados Oracle para o Cliente Instantâneo Oracle que é usado pelo Serviço Oracle CDC. |
| usar_autenticação_do_windows | Um valor booliano que pode ser: 0: Um nome de usuário oracle e uma senha são fornecidos para autenticação (o padrão) 1: a autenticação do Windows é usada para se conectar ao banco de dados Oracle. Você só poderá usar essa opção se o banco de dados Oracle estiver configurado para funcionar com a autenticação do Windows. |
| nome de usuário | O nome do usuário do banco de dados de mineração de logs Oracle. Isso será obrigatório somente se use_windows_authentication = 0. |
| senha | A senha do usuário do banco de dados Oracle para mineração de registros. Isso será obrigatório somente se use_windows_authentication = 0. |
| tempo_limite_de_estágio_da_transação | O tempo, em segundos, em que uma transação Oracle não confirmada é mantida na memória antes de ser gravada na tabela cdc.xdbcdc_staged_transactions . O padrão é 120 segundos. |
| limite de memória | O limite na quantidade de memória, em megabytes (Mb), que pode ser usada para armazenar dados em cache na memória. Uma configuração inferior faz com que mais transações sejam gravadas na tabela cdc.xdbcdc_staged_transactions . O padrão é 50 Mb. |
| Opções | Uma lista de opções na forma de nome[=valor][; ] – ela é usada para especificar opções secundárias (por exemplo, rastreamento, ajuste). Consulte a tabela abaixo para obter uma descrição das opções disponíveis. |
A tabela a seguir descreve as opções disponíveis.
| Nome | Padrão | Minuto | Max | Estático | Descrição |
|---|---|---|---|---|---|
| rastreamento | Falso | - | - | Falso | Os valores disponíveis são: Verdade Falso em desativado |
| intervalo_de_atualização_de_estado_cdc | 10 | 1 | 120 | Falso | O tamanho (em Kbytes) de partes de memória alocadas para uma transação (uma transação pode alocar mais de uma parte). Consulte a coluna memory_limit na tabela cdc.xdbcdc_config . |
| transações agrupadas máximas alvo | 100 | 1 | 1000 | Verdade | O número máximo de transações Oracle que podem ser processadas como uma única transação ao atualizar as tabelas de CT do SQL Server. |
| intervalo_de_atualização_do_lsn_ocioso_alvo | 10 | 0 | 1 | Falso | O intervalo (em segundos) para atualizar a tabela lsn_time_mapping quando as tabelas capturadas não têm nenhuma atividade. |
| período_de_retenção_de_rastro | 24 | 1 | 24*31 | Falso | A quantidade de tempo (em horas para manter mensagens na tabela de rastreamento). |
| sql_reconnect_interval | 2 | 2 | 3600 | Falso | A quantidade de tempo (em segundos) para aguardar antes de se reconectar ao SQL Server. Esse intervalo é usado além do tempo limite de conexão do cliente do SQL Server. |
| sql_reconnect_limit | -1 | -1 | -1 | Falso | O número máximo de reconexões permitidas do SQL Server. O -1 padrão significa que o processo tenta se reconectar até que ele pare. |
| cdc_restart_limit | 6 | -1 | 3600 | Falso | Na maioria das vezes, o serviço CDC reinicia automaticamente uma instância do CDC que tenha sido terminada de forma anormal. Essa propriedade define após quantas falhas por hora o serviço para e a instância é reiniciada. O valor -1 significa que a instância deve ser sempre reiniciada. O Serviço retorna para reiniciar a instância após qualquer atualização da tabela de configuração. |
| relatório_de_memória_cdc | 0 | 0 | 1000 | Falso | Se o valor do parâmetro foi alterado, a Instância CDC imprime seu relatório de memória na tabela de rastreamento. |
| tempo limite do comando alvo | 600 | 1 | 3600 | Falso | Tempo limite de comando trabalhando com o SQL Server. |
| conjunto de caracteres de origem | - | - | - | Verdade | Pode ser definido como uma codificação Oracle específica a ser usada em vez da página de código do banco de dados Oracle. Isso pode ser usado quando a codificação real que os dados de caracteres estão usando é diferente daquela informada pela página de código do banco de dados Oracle. |
| intervalo_de_retentativa_de_erro_de_fonte | 30 | 1 | 3600 | Falso | Usado antes de executar novamente a operação após vários erros, como um erro de conexão ou uma falta temporária de sincronização entre tabelas do sistema. |
| source_prefetch_size | 100 | 1 | 10.000 | Verdade | Tamanho do lote de pré-busca. |
| fonte_max_tabelas_na_consulta | 100 | 1 | 10.000 | Verdade | Número máximo de tabelas na cláusula WHERE antes de alternar para ler o log Oracle sem filtragem de tabela. |
| intervalo_de_retentativa_de_leitura_da_fonte | 2 | 1 | 3600 | Falso | O tempo que a origem aguarda antes de tentar ler os logs de transações do Oracle no EOF novamente. |
| intervalo_reconectar_fonte | 30 | 1 | 3600 | Falso | Quanto tempo (em segundos) aguardar antes de tentar se conectar novamente ao banco de dados de origem. |
| source_reconnect_limit | -1 | -1 | Falso | O número máximo de reconexões do banco de dados de origem. O -1 padrão significa que o processo tenta se reconectar até ser interrompido. | |
| tempo_limite_do_comando_fonte | 30 | 1 | 3600 | Falso | Tempo limite de conexão ao trabalhar com o Oracle. |
| tempo_de_espera_da_conexão_origem | 30 | 1 | 3600 | Falso | Tempo limite de conexão funcionando com o SQL Server. |
| erros_de_dados_de_rastreamento | Verdade | - | - | Falso | Booliano. True indica registrar erros de conversão e truncamento de dados. |
| CDC_parar_em_alterações_de_esquema_quebradas | Falso | - | - | Falso | Booliano.
True indica que deve parar quando uma alteração de esquema crítica é detectada. False indica excluir a tabela de espelho e a instância de captura. |
| source_oracle_home | - | - | Falso | Pode ser definido como um caminho do Oracle Home específico ou um Nome do Oracle Home que a instância CDC usará para se conectar ao Oracle. |
cdc.xdbcdc_state
Esta tabela contém informações sobre o estado persistente da Instância oracle CDC. O estado de captura é usado em cenários de recuperação do sistema e conmutação por falha, e para monitoramento de saúde do sistema.
A tabela a seguir descreve as colunas da tabela cdc.xdbcdc_state .
| Elemento | Descrição |
|---|---|
| status | O código de status atual da instância atual do Oracle CDC. O status descreve o estado atual do CDC. |
| sub_status | Um status de segundo nível que fornece informações adicionais sobre o status atual. |
| ativo | Um valor booliano que pode ser: 0: O processo da Instância Oracle CDC não está ativo. 1: O processo da instância CDC da Oracle está ativo. |
| erro | Um valor booliano que pode ser: 0: O processo da Instância Oracle CDC não está em estado de erro. 1: A Instância oracle CDC está em um estado de erro. |
| mensagem_de_status | Uma cadeia de caracteres que fornece uma descrição do erro ou status. |
| carimbo de data/hora | A marca temporal com a hora (UTC) em que o estado de captura foi atualizado pela última vez. |
| active_capture_node | O nome do host (o host pode ser um nó em um cluster) que está atualmente executando o Serviço Oracle CDC e a Instância Oracle CDC (que está processando os logs de transações Oracle). |
| marcador_de_tempo_da_última_transação | Um carimbo de data/hora com a hora (UTC) em que a última transação foi gravada nas tabelas de alteração. |
| timestamp_da_última_alteração | Um carimbo de data/hora com a hora (UTC) em que o registro de alteração mais recente foi lido do log de transações oracle de origem. Esse timestamp ajuda a identificar a latência atual do processo de CDC. |
| transaction_log_head_cn | A CN (número de alteração) mais recente lida no log de transações do Oracle. |
| transaction_log_tail_cn | O número de alteração (CN) no log de transações do Oracle para o qual a Instância Oracle CDC se reposiciona em caso de reinicialização ou recuperação. |
| current_cn | O CN (número de alteração) mais recente conhecido por estar no banco de dados de origem. |
| versão_do_software | A versão interna do Serviço Oracle CDC. |
| transações concluídas | O número de transações processadas desde a última vez que o CDC foi reinicializado. |
| alterações_escritas | O número de registros de alteração gravados nas tabelas de alteração do SQL Server. |
| ler_mudanças | O número de registros de alteração lidos do log de transações Oracle de origem. |
| transações preparadas | O número de transações ativas no momento que são preparadas na tabela cdc.xdbcdc_staged_transactions . |
cdc.xdbcdc_trace
Esta tabela contém informações sobre a operação da instância CDC. As informações armazenadas nesta tabela incluem registros de erro, alterações de status notáveis e registros de rastreamento. Informações de erro também são gravadas no log de eventos do Windows para garantir que as informações estejam disponíveis se a tabela cdc.xcbcdc_trace não estiver disponível.
A tabela a seguir descreve as colunas da tabela cdc.xdbcdc_trace.
| Elemento | Descrição |
|---|---|
| carimbo de data/hora | O carimbo de data/hora UTC exato quando o registro de rastreamento foi gravado. |
| tipo | Contém um dos seguintes valores. ERRO INFORMAÇÃO TRAÇO |
| nó | O nome do nó no qual o registro foi gravado. |
| status | O código de status usado pela tabela de estado. |
| sub_status | O código de sub-status usado pela tabela de estado. |
| mensagem_de_status | A mensagem de status usada pela tabela de estado. |
| dados | Dados adicionais para casos em que o registro de erro ou rastreamento contém uma carga (por exemplo, um registro de log corrompido). |
cdc.xdbcdc_staged_transactions
Esta tabela armazena registros de alteração para transações prolongadas ou grandes até que o evento de confirmação ou reversão de transação seja capturado. O Serviço Oracle CDC ordena registros de log capturados por tempo de confirmação de transação e, em seguida, por ordem cronológica para cada transação. Os registros de log da mesma transação são armazenados na memória até que a transação termine e, em seguida, sejam gravados na tabela de alteração de destino ou descartados (no caso de uma reversão). Como há uma quantidade limitada de memória disponível, transações grandes são gravadas na tabela cdc.xdbcdc_staged_transactions até que a transação seja concluída. As transações também são gravadas na tabela de preparo quando permanecem em execução por muito tempo. Portanto, quando a Instância Oracle CDC é reiniciada, as alterações antigas não precisam ser lidas novamente dos logs de transações do Oracle.
A tabela a seguir descreve as colunas da tabela cdc.xdbcdc_staged_transactions.
| Elemento | Descrição |
|---|---|
| ID de transação | O identificador exclusivo da transação em curso. |
| seq_num | O número da linha xcbcdc_staged_transactions na transação atual (começando com 0). |
| data_start_cn | O número de alteração (CN) para a primeira alteração nos dados nessa linha. |
| fim_de_dados_cn | O número de alteração (CN) para a última alteração nos dados nessa linha. |
| dados | As alterações planejadas para a transação na forma de um BLOB. |
Consulte Também
Alterar o Designer de Captura de Dados para Oracle da Attunity