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ções para Oracle da Attunity está obsoleta. 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 esquema
cdccriado 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 de 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 de CDC são configuradas, o proprietário do banco de dados CDC pode conceder permissão SELECT de tabelas de espelho e pode definir funções associadas do SQL Server CDC 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. As tabelas de origem do Oracle com o nome de esquema cdc (sem diferenciação de maiúsculas e minúsculas) não podem ser capturadas porque o esquema cdc no SQL Server é reservado para o SQL Server CDC.
As tabelas de espelho estão vazias; não há dados armazenados 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 dados sejam inseridos ou atualizados nas tabelas espelho, as operações UPDATE, DELETE e INSERT são negadas ao 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 de 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 de instância de captura padrão para a tabela Oracle HR.EMPLOYEES é HR_EMPLOYEES e a tabela de alteração associada é [cdc]. [HR_EMPLOYEES_CT].
As tabelas de captura são escritas pela Instância do 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 | Isto mantém o controle da versão da configuração de 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. |
| connect_string | Uma cadeia de conexão da 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. |
| use_windows_authentication | 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 da Oracle. Isso será obrigatório somente se use_windows_authentication = 0. |
| senha | A senha para o usuário do banco de dados de mineração de logs da Oracle. Isso será obrigatório somente se use_windows_authentication = 0. |
| transaction_staging_timeout | 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 | Mín | Max | Estático | Descrição |
|---|---|---|---|---|---|
| rastreamento | Falso | - | - | Falso | Os valores disponíveis são: Verdade Falso em desativado |
| cdc_update_state_interval | 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 . |
| target_max_batched_transactions | 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. |
| target_idle_lsn_update_interval | 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. |
| trace_retention_period | 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. Esta propriedade define depois de quantas falhas por hora o serviço para reiniciar a instância. 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. |
| cdc_memory_report | 0 | 0 | 1000 | Falso | Se o valor do parâmetro foi alterado, a Instância CDC imprimirá seu relatório de memória na tabela de rastreamento. |
| target_command_timeout | 600 | 1 | 3600 | Falso | O tempo limite de comando ao trabalhar com 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. |
| source_error_retry_interval | 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. |
| source_max_tables_in_query | 100 | 1 | 10.000 | Verdade | Número máximo de tabelas na cláusula WHERE antes de alternar para a leitura do log do Oracle sem filtragem de tabela. |
| source_read_retry_interval | 2 | 1 | 3600 | Falso | A quantidade de tempo que a origem aguarda antes de tentar ler os logs de transação do Oracle no EOF novamente. |
| source_reconnect_interval | 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. | |
| source_command_timeout | 30 | 1 | 3600 | Falso | O tempo limite de conexão ao trabalhar com Oracle. |
| source_connection_timeout | 30 | 1 | 3600 | Falso | O tempo limite de conexão ao trabalhar com SQL Server. |
| trace_data_errors | Verdade | - | - | Falso | Booliano. True indica registrar erros de conversão e truncamento de dados. |
| CDC_stop_on_breaking_schema_changes | Falso | - | - | Falso | Booliano.
True indica parada quando a quebra de esquema é detectada. False indica excluir a tabela de espelho e a instância de captura. |
| source_oracle_home | - | - | Falso | Pode ser definido como um caminho específico do Oracle Home ou um Nome do Oracle Home que a instância CDC usará para conectar-se 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 e failover e para monitoramento de integridade.
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 de Instância do 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á executando o Serviço Oracle CDC no momento e a Instância do Oracle CDC (que está processando os logs de transação do Oracle). |
| marcador_de_tempo_da_última_transação | Um carimbo de data/hora com a hora (UTC) da última transação que foi gravada nas tabelas de alteração. |
| last_change_timestamp | Um carimbo de data/hora com a hora (UTC) em que o registro de alteração mais recente foi lido do log de transação do Oracle de origem. Esse timestamp ajuda a identificar a latência atual do processo de CDC. |
| transaction_log_head_cn | O número de alteração (CN) mais recente lido do log de transação do Oracle. |
| transaction_log_tail_cn | O número de alteração (CN) no log de transação do Oracle onde estão as reposições da Instância do Oracle CDC no caso de uma reinicialização ou recuperação. |
| current_cn | O número de alteração (CN) mais recente conhecido para 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 que o CDC foi reiniciado pela última vez. |
| written_changes | O número de registros de alteração gravados nas tabelas de alteração do SQL Server. |
| read_changes | O número de registros de alteração lidos do log de transação do Oracle de origem. |
| staged_transactions | O número de transações ativas no momento que estã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 RASTREAMENTO |
| 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 grandes ou longas até a confirmação de transação ou evento de reversão ser capturada. 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 para a mesma transação são armazenados na memória até que a transação termine e, em seguida, seja gravada na tabela de alteração de destino ou descartada (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 preparação quando elas estiverem sendo executadas 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 de linha xcbcdc_staged_transactions para a 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. |
| data_end_cn | O número de alteração (CN) para a última alteração nos dados nessa linha. |
| dados | As alterações preparadas para a transação no formato de um BLOB. |
Consulte Também
Alterar o Designer de Captura de Dados para Oracle da Attunity