Este tópico descreve a estrutura de diretórios do DBGateway, as operações básicas e a solução de problemas comuns.
Estrutura de diretórios do DBGateway
dbgateway
|-- bin
| |-- dbgateway
| \-- dbgateway-manager
|-- conf
| |-- dbgateway.conf
| \-- server.crt
\-- log
|-- dbgateway.err
|-- dbgateway.log
\-- dbgateway_manager.log
O diretório bin contém
dbgateway(programa principal) edbgateway-manager(script de gerenciamento para manutenção do DBGateway).O diretório conf armazena
dbgateway.conf(arquivo de configuração do DBGateway) eserver.crt(certificado de chave pública para comunicação).O diretório log inclui
dbgateway.err(saída de erros do DBGateway),dbgateway.log(log principal do DBGateway) edbgateway_manager.log(log do script de gerenciamento).
Operações básicas
-
Visualize o log do DBGateway
O caminho completo do arquivo de log do DBGateway é
/opt/dbgateway/log/dbgateway.log.Esse arquivo de texto simples pode ser visualizado com ferramentas padrão, como
vim,tail,cateless.
Se a equipe de suporte do Database Autonomy Service (DAS) solicitar o log do DBGateway para solucionar problemas, faça login no servidor onde o DBGateway está implantado. Execute o comando abaixo para obter as últimas 200 entradas de log e envie a saída para a equipe.
tail -n 200 /opt/dbgateway/log/dbgateway.log -
Verifique se o processo do DBGateway está em execução
Faça login no console do DAS.
No painel de navegação à esquerda, clique em Resource Management > DBGateways.
-
Na página DBGateways, verifique o Current Status do DBGateway.
Se o Current Status for Normal, o processo do DBGateway está ativo. Caso contrário, execute o seguinte comando no servidor onde o DBGateway está implantado:
/opt/dbgateway/bin/dbgateway-manager -d status-
Se o processo do DBGateway estiver em execução, o comando retornará:
DBGateway is running. -
Se o processo do DBGateway não estiver em execução, o comando retornará:
DBGateway is dead.
NotaEssa verificação confirma apenas a existência do processo do DBGateway, mas não garante seu funcionamento correto.
-
-
Reinicie o DBGateway
Verifique se o processo do DBGateway está em execução conforme descrito na seção anterior.
-
Reinicie o DBGateway.
-
Se o processo do DBGateway estiver em execução:
-
Na página DBGateways, localize o DBGateway desejado e clique em na coluna Actions.

-
Como alternativa, execute o comando abaixo no servidor onde o DBGateway está implantado:
/opt/dbgateway/bin/dbgateway-manager -d restart
-
-
Se o processo do DBGateway não estiver em execução:
Essa operação não está disponível no console do DAS. É necessário reiniciar o processo pela linha de comando. Execute o seguinte comando no servidor onde o DBGateway está implantado:
/opt/dbgateway/bin/dbgateway-manager -d restart
-
-
Atualize o DBGateway
Na página DBGateways, localize o DBGateway e clique em na coluna Actions.
-
Pare o DBGateway
Na página DBGateways, localize o DBGateway e clique em na coluna Actions.
-
Como alternativa, execute o comando a seguir no servidor onde o DBGateway está implantado:
/opt/dbgateway/bin/dbgateway-manager -d stop
-
Exclua o DBGateway
NotaApós excluir um DBGateway, todos os recursos do DAS associados às instâncias de banco de dados correspondentes ficarão indisponíveis.
Não é possível excluir um DBGateway cujo Current Status seja Normal. Pare o DBGateway antes de prosseguir.
Na página DBGateways, localize o DBGateway e clique em na coluna Actions.
-
Opcional: Execute o comando abaixo no servidor onde o DBGateway está implantado para remover o diretório de instalação.
rm -rf /opt/dbgateway
-
Reinstale o DBGateway
Após excluir o DBGateway, reimplante-o no mesmo servidor. Utilize o comando de implantação fornecido no console do DAS ao adicionar a instância de banco de dados.
Solução de problemas de implantação
Ao conectar uma instância de banco de dados usando um database gateway in centralized mode ou um database gateway in host mode, você recebe um comando de implantação. O comando a seguir é um exemplo. Os valores de id e token servem apenas para demonstração. Utilize os valores do seu próprio comando de implantação.
sudo wget -O install-dbgateway http://hdm-dbgateway-cn-hangzhou.oss-cn-hangzhou-internal.aliyuncs.com/DBGateway/install/install-dbgateway && sudo /bin/bash install-dbgateway --id xxx --token xxx --endpoint master-hdm-cn-hangzhou-inner.aliyuncs.com --region cn-hangzhou
-
Falha ao baixar o script de implantação do DBGateway
-
Caso apareça a mensagem
wget command not found, o utilitáriowgetnão está instalado. Execute um dos comandos abaixo para instalar owget:sudo apt-get install wgetou
yum -y install wget -
Verifique se o servidor consegue se conectar à rede do Object Storage Service (OSS).
No servidor, execute
pingpara o domínio do OSS. Neste exemplo, o domínio éhdm-dbgateway-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com. Use o domínio presente no seu comando de implantação.ping hdm-dbgateway-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com-
Se o comando retornar a mensagem abaixo, o domínio não pôde ser resolvido. Verifique as configurações do servidor DNS e garanta que o serviço DNS esteja funcionando corretamente.
ping: unknown host hdm-dbgateway-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com -
Caso o comando
pingtrave sem gerar saída, a conexão de rede falhou. Verifique os itens a seguir:Configuração de rede do servidor.
Tipo de acesso à rede do servidor (Internet ou VPC).
Região selecionada, caso o tipo de acesso seja VPC.
-
-
-
Teste a conectividade com o servidor do DAS
Execute o comando abaixo no servidor onde deseja implantar o DBGateway. Neste exemplo, o domínio do servidor DAS é
master-hdm-cn-hangzhou.aliyuncs.com. Utilize o domínio do seu comando de implantação.telnet master-hdm-cn-hangzhou.aliyuncs.com 80Se o comando retornar
Name or service not known, o domínio não foi resolvido. Revise as configurações do servidor DNS e certifique-se de que o serviço DNS opera normalmente.-
Se o comando retornar
Tryingseguido de um endereço IP, comoTrying 10.0.XX.XX, e depois travar, a rede estará inacessível. Analise os pontos abaixo:Configuração de rede do servidor.
Tipo de acesso à rede do servidor (Internet ou VPC).
Região escolhida, se o acesso for via VPC.
-
Se o comando apresentar a seguinte saída:
Connected to master-hdm-cn-hangzhou.aliyuncs.com. Escape character is '^]'.A conexão com o servidor do DAS foi bem-sucedida. Se o DBGateway ainda não iniciar, consulte as seções anteriores e analise o log do DBGateway para investigar mais a fundo.
-
Falha na autenticação ou permissões insuficientes
-
Certifique-se de que a conta autorizada possui as permissões necessárias. Os exemplos a seguir utilizam uma conta autorizada chamada
das_test.-
MySQL
CREATE USER 'das_test'@'%' IDENTIFIED BY 'password'; GRANT SHOW DATABASES, PROCESS, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'das_test'@'%'; GRANT SELECT ON *.* TO 'das_test'@'%'; -
PostgreSQL
CREATE USER das_test PASSWORD 'password'; GRANT SELECT ON ALL TABLES IN SCHEMA PUBLIC TO das_test; /* Optional. This permission is required to collect slow query logs and SQL statements. */ ALTER USER das_test WITH SUPERUSER; -
MongoDB
use admin; db.createUser({user:'das_test',pwd:'password',roles:[{role:'readAnyDatabase', db:'admin'}, {role:'clusterMonitor', db:'admin'}, {role: 'hostManager', db: 'admin'}]})Caso receba o erro
(Unauthorized) not authorized on admin to execute command, conceda as seguintes permissões à conta autorizada:db.grantRolesToUser("das_test", [{db: "local", role: "dbAdmin"},{db: "config", role: "dbAdmin"},{db: "admin", role: "dbAdminAnyDatabase"}]) -
Redis
O Redis não possui sistema de contas. Verifique se a senha está correta. Para alterar a senha do Redis, modifique a opção
requirepassno arquivo de configuração e reinicie o serviço do Redis. Para mais detalhes, consulte Configuração do Redis.
-
Confirme se a conta e a senha estão corretas. Recomendamos testar as credenciais conectando-se remotamente à instância de banco de dados a partir do servidor do DBGateway.
Reinicie o DBGateway e verifique se a autorização da instância ocorreu com sucesso.
Atualize o DBGateway para a versão mais recente.
-
-
Falha de conexão
Uma falha de conexão ocorre quando o DBGateway não consegue se comunicar com a instância de banco de dados. Investigue as possíveis causas listadas abaixo:
-
Verifique se a instância de banco de dados está operando normalmente.
Se uma instância de banco de dados (como MySQL, PostgreSQL, MongoDB ou Redis) não estiver ativa, confirme a existência do respectivo processo.
-
Teste a conectividade de rede entre o servidor do DBGateway e a instância de banco de dados (por exemplo, MySQL, PostgreSQL, MongoDB ou Redis). Execute o comando a seguir para confirmar:
telnet <database_instance_IP_or_domain> <database_instance_port>Exemplo:
telnet 192.168.XX.XX 3306-
Se o comando retornar a mensagem abaixo, a conexão de rede está normal. Consulte o log do DBGateway para investigar mais detalhadamente.
Connected to 192.168.XX.XX Escape character is '^]'. Caso a mensagem acima não apareça, há um problema de conectividade de rede. Geralmente, isso resulta de isolamento de rede entre servidores, configurações de roteamento, firewall ou instância de banco de dados configurada para recusar conexões remotas.
-
-
-
Problemas de monitoramento
Verifique o status de execução do DBGateway.
Reinicie o DBGateway e veja se o monitoramento é retomado.
Atualize o DBGateway para a versão mais recente.
-
Status travado em
Authorized. VerifyingApós uma autorização bem-sucedida, o status da instância deve mudar para Normal Connection dentro de um a dois minutos. Se o status permanecer como
Authorized. Verifyingpor mais de dois minutos, siga os passos abaixo:Verifique o status de execução do DBGateway.
Reinicie o DBGateway e confirme se a instância foi autorizada com sucesso.
Atualize o DBGateway para a versão mais recente.