MAP para Extração
Válido Para
Extrair
Descrição
Você também pode usar MAP em um arquivo de parâmetros Extract para alterar o nome das transações que o Oracle GoldenGate armazena para a tabela.
Por exemplo, considere que você captura a tabela scott.emp. Para o primeiro caso de uso, você o captura para aplicar todas as alterações a uma outra tabela chamada scott.emp com a mesma estrutura, mas também deseja capturar scott.emp com um conjunto diferente de colunas e replicá-lo a uma tabela chamada scott.emp_old. Para fazer isso funcionar, você precisará de um arquivo de parâmetros Extract semelhante a este:
TABLE scott.emp;
MAP scott.emp,
cols(emp_no, employee_name),
target scott.emp_old;
No processo Replicat, você pode fazer o seguinte:
MAP *.*, target *.*;
E as alterações de scott.emp entrariam em scott.emp, os dados de trilha de scott.emp_old entrariam em scott.emp_old.
Use o parâmetro MAP para Extract quando o Extract estiver operando no modo de captura clássico e você precisará usar o componente ALTID desse parâmetro para mapear um objeto ID para um nome de objeto. ALTID especifica o objeto correto ID se o Extract estiver capturando de logs de transações da Oracle que foram gerados por um banco de dados diferente daquele ao qual o Extract está conectado. Essa configuração é necessária quando a Extração não tem permissão para se conectar diretamente ao banco de dados de produção (origem) para capturar transações de produção.
Quando o Extract não pode se conectar diretamente a um banco de dados de origem, ele se conecta a um banco de dados stand-by ativo ou outro fac-símile, mas lê os logs de transação enviados do banco de dados de origem. Consultando o catálogo do banco de dados alternativo, o Extract pode obter os metadados necessários para expandir os dados da transação em instruções SQL válidas, mas não pode usar o objeto ID dessa consulta. O objeto local ID de uma tabela é diferente do objeto ID dessa tabela no banco de dados de origem (e, portanto, no log de transações). Você deve mapear manualmente cada nome de tabela para o objeto de origem ID usando uma instrução MAP com ALTID.
Para usar MAP com ALTID
-
Crie uma instrução
MAPcomALTIDpara cada tabela que você deseja capturar. Nomes de tabela com caracteres curinga não são permitidos para um parâmetroMAPque contémALTID. -
Para especificar outro processamento para a mesma tabela (ou tabelas), como filtragem ou manipulação de dados, você também deve criar uma instrução
TABLEpara cada uma dessas tabelas. O uso de curingas pode ser usado para especificar várias tabelas com uma instruçãoTABLE, se apropriado. -
Usar uma instrução
MAPde Replicat regular no arquivo de parâmetros Replicat, como de costume.MAPpara Extract não substituiMAPpara Replicat, que é necessário para mapear tabelas de origem para tabelas de destino. -
A captura e a replicação do
DDLnão são suportadas ao usarALTID.
Padrão
Nenhum
Sintaxe
MAP *[<container>.]<schema>.*<table>, ALTID <object_ID> [, <object_ID>]
[<container>.]<schema.table>
O nome totalmente qualificado da tabela de origem.
<object_ID>
O objeto ID da tabela como ele existe no banco de dados de produção (origem).
Se uma tabela for particionada, você poderá listar os IDs de objeto das partições que deseja replicar, separando cada uma com uma vírgula.
Exemplos
Exemplo 1
Este exemplo mapeia uma tabela não particionada ou apenas uma partição de uma tabela particionada.
MAP QASOURCE.T2, ALTID 75740;
Exemplo 2
Este exemplo mapeia partições de uma tabela particionada.
MAP QASOURCE.T_P1, ALTID 75257,75258;