Limitações e Operações e Objetos Não Suportados
GoldenGate O Replicat tem as mesmas limitações que existem no Google Cloud Spanner. O desenvolvedor do aplicativo deve estar ciente dessas limitações e precisa projetar sua carga de aplicativo de acordo.
Veja a seguir as operações que não são suportadas pelo Replicat do Oracle GoldenGate para o Google Spanner, na release atual:
-
A Replicação Paralela não é suportada na release de visualização.
-
A replicação de DDL não é suportada com o Replicat para o Google Cloud Spanner.
-
O SQLEXEC não é suportado.
-
A Evolução Automática do Esquema não é suportada.
-
A Detecção e a Resolução de Conflitos não são suportadas com o Replicat para o Google Cloud Spanner.
-
O Replicat do Oracle GoldenGate não suporta
PKUPDATEpara as tabelas que impuseram a restrição de integridade referencial (paraON DELETE CASCADEeON DELETE NO ACTION). -
O Replicat para o Google Spanner não suporta
SUSPEND EVENT ACTIONporque o banco de dados do Google Cloud Spanner anula automaticamente qualquer transação de Leitura/Gravação que esteja ociosa por mais de 10 segundos e não suporta nenhuma configuração que permita aumentar o tempo limite de inatividade de 10 segundos. Se você usarSUSPENDcomo ação de evento, a transação permanecerá aberta por mais de 10 segundos e será abortada automaticamente emRESUME.Nesses casos, você pode usar a regra
REPERROR RETRYno erroABORTED(código de erro 10) para tentar novamente a transação quando a replicação encontrar uma transação abortada. Isso também se aplica às regrasREPERROR RETRYde DML em que a repetição do DML após mais de 10 segundos fará com que o Spanner aborte automaticamente a transação em andamento. -
Se o processo Replicat para o Spanner encontrar qualquer tabela que tenha imposta chave estrangeira, ele será encerrado com o erro a seguir.
Google Spanner does not natively support PKUpdate. The PKUpdate operation is implemented in GoldenGate as DELETE followed by INSERT OR IGNORE operation. If the table contains enforced foreign key, PKUpdate (delete followed by insert) might unintentionally delete the records from the child table. In this case, you can take any of the following actions to continue: 1. If you do not intend to perform PKUpdate on table, use ALLOW_ENFORCED_FK in the Replicat parameter file. 2. Modify the enforced foreign keys to informational foreign keys 3. If the table is not required, exclude the target table from Replicat mapping to continue. -
A seguir estão os detalhes sobre as limitações do suporte de pulsação:
-
O Google Spanner só suporta o processo Replicat do Oracle GoldenGate, não o processo Extract; portanto, o parâmetro
TARGETONLY/NOTARGETONLYnão é explicitamente suportado no Google Spanner, como nos bancos de dados TimesTen e Teradata. -
O Oracle GoldenGate suporta apenas a entrega no Google Spanner, portanto, não é necessário nenhum mecanismo para preencher ou atualizar as tabelas de integridade usando qualquer evento ou programador de jobs.
-
O comando
ADD HEARTBEATTABLEcom as opçõesFREQUENCY,PURGE_FREQUENCYouRETENTION_TIMEnão é suportado no Google Spanner. Quando qualquer uma dessas opções é especificada com o comandoADD HEARTBEATTABLE, uma mensagem de informação é exibida indicando que a opção é ignorada. -
Os jobs de pulsação e as frequências não são suportados no Google Spanner, portanto, o comando
ALTER HEARTBEATTABLEnão é suportado no Google Spanner. Se usado, o comando é ignorado silenciosamente. -
O Spanner não tem nenhum evento interno ou programador de jobs, portanto, a expurgação automática das tabelas de histórico de pulsação não pode ocorrer. É necessário truncar explicitamente os objetos de pulsação correspondentes.
-
-
Se uma transação causar mais de 80.000 mutações, o Spanner retornará um erro e o Replicat terminará com esse erro.
Da mesma forma, o tamanho da transação do Spanner é 100 MiB e, se os dados gravados pela transação excederem 100 MiB (incluindo índices e fluxos de alteração), essa transação falhará e o Replicat será encerrado com erro.
Para tratar os limites de transação de 80000 mutações/100 MB do Spanner, você precisa usar o parâmetro Replicat
MAXTRANSOPSpara dividir transações de origem grandes em lotes de destino menores, antes de atingir os limites de commit do Spanner. -
O Spanner impõe que uma transação de leitura-gravação veja uma versão de esquema única e consistente do início ao fim. Quando uma instrução DDL (qualquer tabela/índice no banco de dados) é submetida a commit, a versão do esquema do banco de dados avança. As transações iniciadas na versão anterior são abortadas com um erro, indicando a alteração do esquema. O aborto é por design e é tratado de forma semelhante aos outros abortos repetíveis devido a contenção ou falhas transitórias. Para recuperar desse erro, aguarde a conclusão da operação DDL em andamento e reinicie o processo Replicat.