Esta página lista erros conhecidos e passos de resolução de problemas recomendados para:
Erros de tarefas de migração
O processo da tarefa de migração pode incorrer em erros durante o tempo de execução.
- Alguns erros, como uma palavra-passe incorreta na base de dados de origem, são recuperáveis. A tarefa de migração é retomada automaticamente após a correção destes erros.
- Alguns erros são irrecuperáveis, como erros na replicação de dados. Tem de reiniciar a tarefa de migração depois de corrigir estes erros.
Quando ocorre um erro, o estado da tarefa de migração muda para Failed
e o subestado reflete o último estado antes da falha.
Para resolver um erro, navegue para a tarefa de migração com falha para ver o erro e siga os passos descritos na mensagem de erro.
Para ver mais detalhes sobre o erro, navegue para o Cloud Monitoring através do link na tarefa de migração. Os registos são filtrados para a tarefa de migração específica.
Na tabela seguinte, pode encontrar alguns exemplos de problemas e como podem ser resolvidos:
Sintoma | Causas possíveis | Coisas a experimentar |
---|---|---|
Mensagem de erro: Database Migration Service can't set up a tunnel to be
connected to the bastion host .
|
O serviço de migração de bases de dados não conseguiu aceder ao anfitrião de bastion ou o anfitrião de bastion não está a aceitar ligações. | Verifique as definições do túnel SSH de encaminhamento no perfil de ligação de origem e na configuração do servidor do túnel SSH e tente novamente. |
Mensagem de erro: Database Migration Service can't connect to the database
ou
Database Migration Service private connectivity error, cannot connect to the database .
|
O serviço de migração de base de dados não conseguiu estabelecer ligação à base de dados Oracle de origem. |
Verifique se consegue aceder à base de dados de origem a partir do seu projeto. Verifique as definições relacionadas com o seu método de configuração da conetividade de origem. Se existir um código de erro específico da Oracle incluído, por exemplo, |
Mensagem de erro: Archiving mode is not ARCHIVELOG . |
A base de dados de origem não está a ser executada no modo ARCHIVELOG . |
Configure a base de dados de origem para usar o modo ARCHIVELOG .
Para mais informações, consulte o artigo
Configure a base de dados Oracle de origem.
|
Mensagem de erro: Supplemental logging ("ALL COLUMN LOGGING") isn't turned
on for the tables listed below .
|
A base de dados de origem não tem os dados de registo suplementares ativados. | Ative os dados de registo suplementares e defina o respetivo modo como ALL .
Para mais informações, consulte o artigo
Configure a base de dados Oracle de origem.
|
Mensagem de erro: No Archive Log Files were found in the source . |
O serviço de migração de bases de dados só lê registos de arquivo fechados e não foram encontrados registos na base de dados de origem. |
Se a base de dados não tiver operações de escrita ativas, pode ter de realizar, pelo menos, uma operação |
Mensagem de erro: We're missing the necessary permissions to read
from the source .
|
A conta de utilizador de migração na base de dados de origem não tem as autorizações necessárias. |
O serviço de migração de bases de dados liga-se à sua origem como a conta de utilizador que
configura no perfil de ligação de origem. Essa conta precisa de um conjunto específico de autorizações (por exemplo, Certifique-se de que a conta de utilizador de migração tem os privilégios necessários. Para mais informações, consulte o artigo Configure a base de dados Oracle de origem. |
Mensagem de erro: Unable to connect to the destination database . |
Ocorreu um problema ao estabelecer ligação à base de dados de destino. | Verifique se consegue aceder à base de dados de destino a partir do seu projeto. Verifique as definições relacionadas com o método de configuração da conetividade do destino. |
Mensagem de erro: The following tables don't exist in the destination database: {table_names} . |
As tabelas indicadas que está a tentar migrar não existem na base de dados de destino. | O serviço de migração de bases de dados cria a tabela e as definições necessárias quando converte o esquema de origem. |
Mensagem de erro: password authentication failed for user {username} . |
O nome de utilizador ou a palavra-passe da base de dados de destino estão configurados incorretamente. | Certifique-se de que o perfil de ligação do PostgreSQL de destino está configurado corretamente com o nome de utilizador e a palavra-passe certos. |
Mensagem de erro: The following tables in the destination database
don't have primary keys: {table_names} .
|
As tabelas indicadas na mensagem de erro existem na base de dados de destino, mas não têm chaves primárias. |
Os espaços de trabalho de conversão do serviço de migração de bases de dados adicionam automaticamente chaves primárias para tabelas que não as têm quando converte o esquema. Se usar espaços de trabalho de conversão antigos, tem de criar as chaves principais manualmente no seu destino. Para mais informações, consulte o artigo Espaços de trabalho de conversão antigos. |
Aviso: The following tables have foreign keys: {table_names} . |
As tabelas indicadas na mensagem de erro existem na base de dados de destino, mas têm chaves externas. |
O Database Migration Service não replica os dados de forma transacional, pelo que as tabelas podem ser migradas fora de ordem. Se existirem chaves externas e uma tabela secundária que use uma chave externa for migrada antes da respetiva tabela principal, pode ocorrer um erro de replicação. Para evitar estes problemas de integridade de dados, ignore as chaves externas usando a opção |
Mensagem de erro: Unable to resume replication as log position is lost . |
Este erro pode ocorrer quando o processo de replicação é pausado durante um longo período, o que leva à perda da posição do registo. | Uma tarefa de migração não deve ser pausada durante mais tempo (ou perto) do período de retenção de registos. Se a posição do registo for perdida, tem de recriar a tarefa de migração. |
Mensagem de erro: ORA-00942: table or view does not exist . |
Este erro pode ocorrer como resultado do armazenamento em cache no servidor Oracle. | Recrie o utilizador da base de dados para corrigir o problema de colocação em cache. |
A tarefa de migração permanece na fase de descarga completa e não avança para a fase de captura de dados de alterações (CDC). | O serviço de migração de bases de dados ainda está a fazer o despejo completo de algumas das tabelas ou não é possível concluir o despejo completo de uma ou mais tabelas devido a erros. |
|
Problemas de conetividade
Esta secção lista e descreve os passos de resolução de problemas para potenciais problemas de conetividade de rede.
Não é possível estabelecer ligação à base de dados de destino: EOF
A execução de um teste de conetividade devolve a mensagem de erro [DATABASE] unable to connect to the destination database: EOF
.
Causa possível: a associação de serviço está configurada incorretamente.
Coisas a experimentar: certifique-se de que enable_proxy_protocol
está definido como
false
no
ficheiro de configuração do Terraform do anexo de serviço.
O protocolo proxy só é suportado para servidores HTTP, como o NGINX e o Apache.
Quando usa o gcloud
para criar a configuração do Private Service Connect, o protocolo proxy está desativado por predefinição.
O limite de tempo da ligação foi excedido. A ligação foi recusada.
A execução do teste de conetividade falha ou excede o tempo limite. É muito provável que isto se deva a uma configuração incorreta do encaminhamento na configuração do Private Service Connect. Pode haver vários motivos para este problema.
Possível causa: existe uma regra de firewall em falta que permite que o intervalo CIDR de NAT do Private Service Connect aceda à sub-rede do Private Service Connect onde o bastion está localizado, especificamente à interface nic0
da VM do bastion.
O que pode tentar: certifique-se de que a política da sua organização não restringe as regras de firewall internas, como a regra de firewall psc_sp_in_fw
definida no exemplo de script do Terraform para
configurar a conetividade de IP privado de destino para instâncias do Cloud SQL não ativadas para PSC.
Causa possível: o proxy está inativo. Não existe nenhum ouvinte na porta fornecida e, por isso, a ligação fica pendente.
Coisas a experimentar: pode tentar estabelecer uma ligação SSH à VM bastion e pesquisar o proxy através do seguinte comando:
netstat -tunalp | grep PORT
Analise as respostas ao comando:
Se receber uma resposta vazia, o proxy está inativo. Experimente executar os seguintes comandos:
sudo su; cd /
e verifique se o servidor Dante está instalado executando o comandosudo dpkg -s dante-server
:Se o proxy estiver instalado, é apresentada a seguinte mensagem:
Status: install ok installed
Se o proxy não estiver instalado, o problema provável é a falta de um router. Adicione um router e verifique se consegue transferir o proxy executando
apt-get install dante-server
.
Se o proxy estiver em execução e a ouvir na porta fornecida, experimente abrir uma ligação ao mesmo fazendo o seguinte:
Instale o cliente PostgreSQL:
sudo apt-get install postgresql-client
.Estabeleça ligação à base de dados do PostgreSQL:
psql -h 127.0.0.1 -p PORT -U DBUSERNAME -W
(é-lhe pedido que introduza a palavra-passe).Substitua o seguinte:
PORT
: o número da porta da base de dados.DBUSERNAME
: o nome de utilizador usado para estabelecer ligação à base de dados PostgreSQL.
Instale o cliente telnet:
sudo apt-get install telnet
Ligue-se ao cliente Telnet:
telnet 127.0.0.1 PORT
Substitua
PORT
pelo número da porta da base de dados.
Consoante os resultados dos comandos:
Se os comandos não abrirem uma ligação, experimente consultar os registos do proxy para localizar a causa principal. A causa principal pode variar consoante a configuração da instância do Cloud SQL.
Se a ligação for aberta através do telnet, mas ficar suspensa no cliente, o problema provável é o encaminhamento do endereço IP do bastion. Na VM, escreva
ip route
no terminal. Verifique se consegue localizar uma regra de encaminhamento que encaminhe as ligações para o endereço IP privado da instância do Cloud SQL através do endereço IP secundárionic
(nic1
, o endereço IPDB_SUBNETWORK_GATEWAY
).
Causa possível: o anexo de serviço não aceita a ligação do ponto final proveniente do serviço de migração de bases de dados. A associação de serviço contém uma lista de projetos que são aceites, e o projeto do serviço de migração de bases de dados não está incluído na lista.
O que experimentar: para resolver o problema, experimente uma das seguintes opções:
Na Google Cloud consola, aceda a Private Service Connect.
Aceda ao Private Service Connect
No separador Serviços publicados, aceite a ligação do serviço de migração de bases de dados para a associação de serviços (se estiver pendente).
Adicione o projeto de pedido aos projetos na lista de autorizações na associação de serviço (se for rejeitado).
Para mais informações sobre como adicionar um projeto na lista de autorizações no Terraform, consulte a documentação do Terraform.
Para mais informações sobre como adicionar um projeto à lista de autorizações em
gcloud
, consulte a documentação de referência da CLI do Google Cloud.
Se isto não resolver o problema, recrie o perfil de ligação.
Elimine o perfil de ligação associado à conetividade do Private Service Connect e recrie-o.
Resolva problemas de erros de SCAN do Oracle
Esta secção descreve potenciais problemas que pode ter ao migrar de origens Oracle Real Application Clusters (RAC) através da funcionalidade Single Client Access Name (SCAN).
Não é possível estabelecer conetividade a uma base de dados SCAN do Oracle
A execução do teste de conetividade falha ou excede o tempo limite.
Causa possível: pode estar a tentar estabelecer a conetividade diretamente à base de dados de origem do Oracle SCAN. O serviço de migração de base de dados não suporta a conetividade direta a bases de dados através da funcionalidade SCAN em ambientes Oracle RAC.
O que experimentar: para resolver o problema, experimente uma das seguintes opções:
Ligue-se diretamente a um dos nós.
Use o Oracle Connection Manager.
Crie uma configuração de conetividade privada através de uma solução de proxy inverso, como o HAProxy.