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.
Esta seção descreve alguns conceitos importantes do Serviço Oracle CDC. Os conceitos incluídos nesta seção são:
-
Esta seção descreve as tabelas incluídas neste banco de dados e como ela é importante para o CDC.
-
Esta seção fornece uma breve descrição dos bancos de dados CDC. Esses bancos de dados são criados usando o Console do Oracle CDC Designer. Consulte a documentação incluída na instalação do Cdc Designer Console para obter mais informações sobre os bancos de dados CDC.
Usando a linha de comando para configurar o serviço CDC
Esta seção descreve os comandos de linha de comando que podem ser usados para configurar o Serviço Oracle CDC.
O banco de dados MSXDBCDC
O banco de dados MSXDBCDC (Microsoft External-Database CDC) é um banco de dados especial que é necessário ao usar o Serviço CDC para Oracle com uma instância do SQL Server.
O nome desse banco de dados não pode ser alterado. Se um banco de dados chamado MSXDBCDC existir na instância do SQL Server host e contiver tabelas diferentes daquelas definidas pelo Serviço CDC para Oracle, a instância do SQL Server host não poderá ser usada.
Os principais usos para este banco de dados são:
Servir como um registro dos Serviços Oracle CDC associados a uma instância do SQL Server. Essas informações são usadas para a configuração do serviço e os componentes de design, e para suportar a coordenação de múltiplos serviços CDC com o mesmo nome em diferentes nós, nos quais um é o ativo.
Serve como um registro das instâncias oracle CDC contidas em uma instância do SQL Server, o serviço CDC que manipula cada instância e a versão de configuração que cada uma usa. Essas informações são equivalentes à coluna is_cdc_enabled na tabela sys.databases do banco de dados mestre. O serviço CDC verifica periodicamente a tabela dbo.xdbcdc_databases para detectar alterações feitas na configuração CDC ou na lista de instâncias capturadas.
Mantenha procedimentos armazenados sob responsabilidade do sysadmin que ajudam a criar e manter instâncias CDC. Eles são semelhantes aos procedimentos do sistema usados para a implementação do recurso CDC do SQL Server.
Criando o banco de dados MSXDBCDC
Um banco de dados MSXDBCDC deve ser criado para que o Serviço Oracle CDC possa ser definido. Você pode criar apenas um banco de dados MSXDBCDC em uma instância do SQL Server. O banco de dados MSXDBCDC é criado quando você prepara um banco de dados do SQL Server para Oracle CDC. Isso pode ser feito usando o Console de Configuração do Serviço Oracle CDC ou executando um script de criação gerado pelo Console de Configuração do Serviço CDC.
O proprietário desse banco de dados é o Administrador do Serviço Oracle CDC, que pode controlar todas as instâncias do Oracle CDC hospedadas na instância do SQL Server.
Consulte também:
Como preparar o SQL Server para CDC
As tabelas do Banco de Dados MSXDBCDC
Esta seção descreve as tabelas a seguir no banco de dados MSXDBCDC.
dbo.xdbcdc_trace
Esta tabela armazena informações de rastreamento para o Serviço Oracle CDC. As informações armazenadas nesta tabela incluem alterações de status notáveis e registros de rastreamento.
O Serviço Oracle CDC grava registros de erro e alguns dos registros de informações no log de eventos do Windows e na tabela de rastreamento. Em alguns casos, a tabela de rastreamento pode não estar acessível, caso em que as informações de erro estão acessíveis no log de eventos.
A seguir, descreve os itens incluídos na tabela dbo.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 |
| nodo | O nome do nó no qual o registro foi gravado. |
| estado | O código de status usado pela tabela de estado. |
| sub_status | O código de substatus usado pela tabela de estado. |
| mensagem_de_status | A mensagem de status usada pela tabela de estado. |
| fonte | O nome do componente Oracle CDC que produziu o registro de rastreamento. |
| dados_texto | Dados de texto adicionais para casos em que o erro ou os registros de rastreamento contêm uma carga de texto. |
| dados binários | Dados binários adicionais para casos em que o erro ou o registro de rastreamento contém um conteúdo binário. |
A instância do Oracle CDC excluirá linhas antigas da tabela de rastreamento de acordo com a política de retenção de tabelas de alterações.
dbo.xdbcdc_databases
Esta tabela contém os nomes do Serviço CDC para bancos de dados Oracle CDC na instância atual do SQL Server. Cada banco de dados corresponde a uma instância do Oracle CDC. O Serviço Oracle CDC usa essa tabela para determinar quais instâncias iniciar ou parar e quais instâncias reconfigurar.
A tabela a seguir descreve os itens incluídos na tabela dbo.xdbcdc_databases .
| Elemento | Descrição |
|---|---|
| nome | O nome do banco de dados Oracle na instância do SQL Server. |
| versão_configuração | A marca de data e hora (UTC) para a última alteração na tabela xdbcdc_config correspondente no banco de dados CDC ou a marca de data e hora (UTC) da linha atual nessa tabela. O gatilho UPDATE impõe um valor de GETUTCDATE() para este item. config_version permite que o serviço CDC identifique a instância CDC que precisa ser verificada quanto à alteração de configuração ou à habilitação/desabilitação. |
| cdc_service_name | Este item determina qual Serviço Oracle CDC manipula o banco de dados Oracle selecionado. |
| Habilitado | Indica se a instância do Oracle CDC está ativa (1) ou desabilitada (0). Quando o Serviço Oracle CDC inicia apenas as instâncias marcadas habilitar (1) são iniciadas. Observação: uma instância do Oracle CDC pode ser desabilitada devido a um erro que não pode ser repetida. Nesse caso, a instância deve ser reiniciada manualmente depois que o erro for resolvido. |
dbo.xdbcdc_services
Esta tabela lista os serviços CDC associados à instância do SQL Server host. Esta tabela é usada pelo Cdc Designer Console para determinar a lista de serviços CDC configurados para a instância local do SQL Server. Ele também é usado pelo serviço CDC para garantir que apenas um serviço do Windows em execução trate um determinado nome do Serviço Oracle CDC.
A seguir, descreve os itens de estado de captura incluídos na tabela dbo.xdbcdc_databases .
| Elemento | Descrição |
|---|---|
| cdc_service_name | O nome do Serviço Oracle CDC (o nome do serviço Windows). |
| cdc_service_sql_login | O nome do logon do SQL Server usado pelo Serviço Oracle CDC para se conectar à instância do SQL Server. Um novo usuário do SQL, chamado cdc_service, é primeiramente criado e associado a esse nome de logon e, em seguida, é adicionado como membro das funções de banco de dados fixas db_ddladmin, db_datareader e db_datawriter para cada banco de dados CDC gerenciado pelo serviço. |
| contagem_de_referências | Esse item conta o número de computadores em que o mesmo Serviço Oracle CDC está instalado. Ele é incrementado com cada adição de um serviço Oracle CDC de mesmo nome e é decrementado quando esse serviço é removido. Quando o contador atinge zero, essa linha é excluída. |
| nó_de_serviço_ativo | O nome do nó do Windows que atualmente gerencia o serviço CDC. Quando o serviço é interrompido corretamente, essa coluna é definida como nula, indicando que não há mais um serviço ativo. |
| batimento_cardíaco_de_serviço_ativo | Este item rastreia o serviço CDC atual para determinar se ele ainda está ativo. Este item é atualizado regularmente com a marca temporal UTC da base de dados atual para o serviço CDC ativo. O intervalo padrão é de 30 segundos, no entanto, o intervalo é configurável. Quando um serviço CDC pendente detecta que a pulsação não foi atualizada após o término do intervalo configurado, o serviço pendente tenta assumir a função de serviço CDC ativa. |
| Opções | Este item especifica as opções secundárias, como rastreamento ou ajuste. Ele é escrito na forma de nome[=valor][; ]. A cadeia de caracteres de opções usa a mesma semântica que a cadeia de conexão ODBC. Se a opção for booliana (com um valor de sim/não), o valor poderá incluir apenas o nome. O rastreamento tem os seguintes valores possíveis. verdadeiro em falso desativado <nome> da classe[,nome> da classe] O valor padrão é false. service_heartbeat_interval é o intervalo de tempo (em segundos) para o serviço atualizar a coluna active_service_heartbeat. O valor padrão é 30. O valor máximo é 3600. service_config_polling_interval é o intervalo de sondagem (em segundos) para que o serviço CDC verifique se há alterações de configuração. O valor padrão é 30. O valor máximo é 3600. sql_command_timeout é o tempo limite de comando que funciona com o SQL Server. O valor padrão é 1. O valor máximo é 3600. |
Os procedimentos armazenados do banco de dados MSXDBCDC
Esta seção descreve os procedimentos armazenados a seguir no banco de dados MSXDBCDC.
dbo.xcbcdc_reset_db(Nome do Banco de Dados)
Este procedimento limpa os dados de uma instância do Oracle CDC. Ele é usado:
Para reiniciar a captura de dados desconsiderando dados anteriores, por exemplo, após a recuperação do banco de dados de origem ou após inatividade em que alguns dos logs de transações Oracle não estão disponíveis.
Quando ocorre corrupção no estado dos dados CDC (especificamente nos dados de qualquer tabela cdc.*).
O procedimento dbo.xcbcdc_reset_db executa as seguintes tarefas:
Interrompe a instância do CDC (caso esteja ativa).
Trunca as tabelas de alterações, cdc_lsn_mapping e cdc_ddl_history.
Limpa a tabela cdc_xdbcdc_state.
Limpa a coluna start_lsn para cada linha do cdc_change_table.
Para usar o procedimento dbo.xcbcdc_reset_db, o usuário deve ser membro da função de banco de dados db_owner para o banco de dados da Instância CDC especificada ou então membro da função fixa de servidor sysadmin ou serveradmin.
Para obter mais informações sobre as tabelas CDC, consulte Os Bancos de Dados CDC no sistema de ajuda no Console do Designer CDC.
dbo.xdbcdc_disable_db(dbname)
O procedimento dbo.xcbcdc_disable_db executa a seguinte tarefa:
- Remove a entrada correspondente do banco de dados CDC selecionado na tabela MSXDBCDC.xdbcdc_databases.
Para usar o procedimento dbo.xcbcdc_disable_db , o usuário deve ser um membro da função de banco de dados db_owner para a instância CDC que está sendo nomeada ou membro da função de servidor fixa sysadmin ou serveradmin .
Para obter mais informações sobre as tabelas CDC, consulte Os Bancos de Dados CDC no sistema de ajuda no Console do Designer CDC.
dbo.xcbcdc_add_service(svcname,sqlusr)
O procedimento dbo.xcbcdc_add_service adiciona uma entrada à tabela MSXDBCDC.xdbcdc_services e adiciona um incremento de um à coluna ref_count para o nome do serviço na tabela MSXDBCDC.xdbcdc_services . Quando o ref_count é 0, ele exclui a linha.
Para usar o nome de serviço dbo.xcbcdc_add_service<, o procedimento de nome> de usuário, o usuário deve ser um membro da função de banco de dados db_owner para o banco de dados da instância CDC que está sendo nomeado ou um membro da função de servidor fixa sysadmin ou serveradmin.
dbo.xdbcdc_start(dbname)
O procedimento dbo.xdbcdc_start envia uma solicitação inicial para o serviço CDC que manipula a instância CDC selecionada para iniciar o processamento de alterações.
Para usar o procedimento dbo.xcdcdc_start , o usuário deve ser membro da função de banco de dados db_owner para o banco de dados CDC ou ser membro das funções sysadmin ou serveradmin para a instância do SQL Server.
dbo.xdbcdc_stop(dbname)
O procedimento dbo.xdbcdc_stop envia uma solicitação de parada para o serviço CDC que manipula a instância CDC selecionada para interromper o processamento de alterações.
Para usar o procedimento dbo.xcdcdc_stop , o usuário deve ser membro da função de banco de dados db_owner para o banco de dados CDC ou ser membro das funções sysadmin ou serveradmin para a instância do SQL Server.
Os bancos de dados CDC
Cada instância do Oracle CDC usada em um serviço CDC está associada a um banco de dados específico do SQL Server chamado Banco de Dados CDC. Esse banco de dados do SQL Server está hospedado na instância do SQL Server associada ao Serviço Oracle CDC.
O Banco de Dados CDC contém um esquema cdc especial. O Serviço Oracle CDC usa esse esquema com nomes de tabela com o prefixo xdbcdc_. Esse esquema é usado para fins de segurança e consistência.
A instância do Oracle CDC e os bancos de dados CDC são criados usando o Console do Oracle CDC Designer. Para obter mais informações sobre os bancos de dados CDC, consulte a documentação incluída na instalação do Console do Oracle CDC Designer.
Usando a linha de comando para configurar o serviço CDC
Você pode operar o programa Oracle CDC Service (xdbcdcsvc.exe) na linha de comando. O programa de serviço CDC é um arquivo executável nativo do Windows de 32 bits/64 bits.
Confira também
Como usar a interface do serviço CDC Command-Line
Comandos do Programa de Serviço
A seção descreve os comandos a seguir usados para configurar o serviço CDC.
Configuração
Use Config para atualizar uma configuração do Serviço Oracle CDC de um script. O comando pode ser usado para atualizar apenas partes específicas da configuração do serviço CDC (por exemplo, somente a cadeia de conexão sem saber a senha da chave assimétrica). O comando deve ser executado por um administrador de computador. Veja a seguir um exemplo do Config comando.
"<path>xdbcdcsvc.exe" config
<cdc-service-name>
[connect= <sql-server-connection-string>]
[key= <asym-key-password>]
[svcacct= <windows-account> <windows-password>]
[sqlacct= <sql-username> <sql-password>]
Em que:
cdc-service-name é o nome do serviço CDC a ser atualizado. Esse é um parâmetro necessário.
sql-server-connection-string é a cadeia de conexão a ser atualizada. Se a cadeia de conexão contiver espaços ou aspas, ela deverá ser encapsulada em aspas duplas ("). As aspas inseridas são escapadas dobrando as aspas.
asym-key-password é a senha a ser atualizada.
windows-account, windows-password são as credenciais da conta do Windows para o serviço que está sendo atualizado.
sql-username, sql-password são as credenciais de autenticação do SQL Server que estão sendo atualizadas. Se o sqlacct tiver um nome de usuário vazio e uma senha vazia, o Serviço Oracle CDC se conectará ao SQL Server usando a autenticação do Windows.
Observação: qualquer parâmetro que contenha espaços ou aspas duplas deve ser encapsulado com aspas duplas ("). As aspas duplas inseridas devem ser dobradas (por exemplo, para usar "A#B" D como uma senha, digite ""A#B"" D").
Criar
Use Create para criar um Serviço Oracle CDC a partir de um script. O comando deve ser executado por um administrador de computador. Veja a seguir um exemplo do Create comando:
"<path>xdbcdcsvc.exe" create
<cdc-service-name>
[connect= "<sql-server-connection-string>"]
[key= <asym-key-password>]
[svcacct <windows-account> <windows-password>]
[sqlacct <sql-username> <sql-password>]
Em que:
cdc-service-name é o nome do serviço recém-criado. Se já houver um serviço com esse nome, o programa retornará um erro. Você não deve usar nomes ou nomes longos com espaços. Os caracteres "/" e "\" não são caracteres válidos em um nome de serviço. Esse é um parâmetro necessário.
sql-server-connection-string é a cadeia de conexão a ser usada para se conectar à instância do SQL Server associada ao novo Serviço Oracle CDC.
asym-key-password é a senha que protege a chave assimétrica usada para armazenar as credenciais de mineração de log do banco de dados de origem.
windows-account, windows-password são o nome da conta e a senha associados ao Serviço Oracle CDC que está sendo criado.
sql-username, sql-password são o nome da conta e a senha do SQL Server usados para se conectar à instância do SQL Server. Se ambos os parâmetros estiverem vazios, o Serviço CDC para Oracle se conectará ao SQL Server usando a autenticação do Windows.
Observação: qualquer parâmetro que contenha espaços ou aspas duplas deve ser encapsulado com aspas duplas ("). As aspas duplas inseridas devem ser dobradas (por exemplo, para usar "A#B" D como uma senha, digite ""A#B"" D".
Excluir
Use Delete para excluir de forma limpa o Serviço Oracle CDC de um script. Esse comando deve ser executado por um administrador de computador. Veja a seguir um exemplo do Delete comando.
"<path>xdbcdcsvc.exe" delete
<cdc-service-name>
Em que:
cdc-service-name é o nome do serviço CDC a ser excluído.
Observação: qualquer parâmetro que contenha espaços ou aspas duplas deve ser encapsulado com aspas duplas ("). As aspas duplas inseridas devem ser dobradas (por exemplo, para usar "A#B" D como uma senha, digite ""A#B"" D").
Consulte Também
Como usar a interface do serviço CDC Command-Line
Como preparar o SQL Server para CDC