Cette rubrique décrit la structure des répertoires de DBGateway, ses opérations de base et la résolution des problèmes courants.
Structure des répertoires de DBGateway
dbgateway
|-- bin
| |-- dbgateway
| \-- dbgateway-manager
|-- conf
| |-- dbgateway.conf
| \-- server.crt
\-- log
|-- dbgateway.err
|-- dbgateway.log
\-- dbgateway_manager.log
Le répertoire bin contient
dbgateway(le programme principal) etdbgateway-manager(le script de gestion de DBGateway).Le répertoire conf contient
dbgateway.conf(le fichier de configuration de DBGateway) etserver.crt(le certificat de clé publique utilisé pour la communication).Le répertoire log contient
dbgateway.err(les erreurs de DBGateway),dbgateway.log(le journal principal de DBGateway) etdbgateway_manager.log(le journal du script de gestion).
Opérations de base
-
Consultez le journal de DBGateway
Le chemin d'accès complet au fichier journal de DBGateway est
/opt/dbgateway/log/dbgateway.log.Ce fichier texte brut peut être consulté à l'aide d'outils standard tels que
vim,tail,catetless.
Si l'équipe du support technique Database Autonomy Service (DAS) vous demande le journal de DBGateway pour résoudre un problème, connectez-vous au serveur sur lequel DBGateway est déployé. Exécutez la commande suivante pour récupérer les 200 dernières entrées du journal et transmettez la sortie obtenue.
tail -n 200 /opt/dbgateway/log/dbgateway.log -
Vérifiez si le processus DBGateway est en cours d'exécution
Connectez-vous à la console DAS.
Dans le volet de navigation de gauche, cliquez sur Resource Management > DBGateways.
-
Sur la page DBGateways, vérifiez le Current Status de DBGateway.
Si le Current Status indique Normal, le processus DBGateway est en cours d'exécution. Dans le cas contraire, exécutez la commande suivante sur le serveur où DBGateway est déployé :
/opt/dbgateway/bin/dbgateway-manager -d status-
Si le processus DBGateway est en cours d'exécution, la commande renvoie :
DBGateway is running. -
Si le processus DBGateway n'est pas en cours d'exécution, la commande renvoie :
DBGateway is dead.
RemarqueCette vérification confirme uniquement l'existence du processus DBGateway, et non son bon fonctionnement.
-
-
Redémarrez DBGateway
Vérifiez si le processus DBGateway est en cours d'exécution comme décrit dans la section précédente.
-
Redémarrez DBGateway.
-
Si le processus DBGateway est en cours d'exécution :
-
Sur la page DBGateways, localisez DBGateway et cliquez sur dans la colonne Actions.

-
Autre solution : exécutez la commande suivante sur le serveur où DBGateway est déployé :
/opt/dbgateway/bin/dbgateway-manager -d restart
-
-
Si le processus DBGateway n'est pas en cours d'exécution :
Cette opération n'est pas disponible dans la console DAS. Vous devez redémarrer le processus depuis la ligne de commande. Exécutez la commande suivante sur le serveur où DBGateway est déployé :
/opt/dbgateway/bin/dbgateway-manager -d restart
-
-
Mettez à jour DBGateway
Sur la page DBGateways, localisez DBGateway et cliquez sur dans la colonne Actions.
-
Arrêtez DBGateway
Sur la page DBGateways, localisez DBGateway et cliquez sur dans la colonne Actions.
-
Autre solution : exécutez la commande suivante sur le serveur où DBGateway est déployé :
/opt/dbgateway/bin/dbgateway-manager -d stop
-
Supprimez DBGateway
RemarqueAprès la suppression d'un DBGateway, toutes les fonctionnalités DAS associées aux instances de base de données concernées deviennent indisponibles.
Vous ne pouvez pas supprimer un DBGateway dont le Current Status est Normal. Arrêtez d'abord le DBGateway.
Sur la page DBGateways, localisez DBGateway et cliquez sur dans la colonne Actions.
-
Facultatif : Exécutez la commande suivante sur le serveur où DBGateway est déployé pour supprimer le répertoire d'installation.
rm -rf /opt/dbgateway
-
Réinstallez DBGateway
Après avoir supprimé DBGateway, vous pouvez le redéployer sur le même serveur. Utilisez la commande de déploiement fournie dans la console DAS lors de l'ajout de l'instance de base de données.
Dépannage du déploiement
Lorsque vous connectez une instance de base de données à l'aide d'une database gateway in centralized mode ou d'une database gateway in host mode, vous recevez une commande de déploiement. La commande suivante est donnée à titre d'exemple. Les valeurs id et token sont purement indicatives. Utilisez les valeurs issues de votre propre commande de déploiement.
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
-
Impossible de télécharger le script de déploiement de DBGateway
-
Si le message
wget command not founds'affiche, l'utilitairewgetn'est pas installé. Exécutez l'une des commandes suivantes pour installerwget:sudo apt-get install wgetou
yum -y install wget -
Vérifiez si votre serveur peut se connecter au réseau Object Storage Service (OSS).
Depuis votre serveur, envoyez une requête
pingvers le domaine OSS. Dans cet exemple, le domaine esthdm-dbgateway-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com. Utilisez le domaine indiqué dans votre commande de déploiement.ping hdm-dbgateway-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com-
Si la commande renvoie le message suivant, le domaine ne peut pas être résolu. Vérifiez les paramètres de votre serveur DNS et assurez-vous que le service DNS fonctionne correctement.
ping: unknown host hdm-dbgateway-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com -
Si la commande
pingreste bloquée sans afficher de résultat, la connexion réseau a échoué. Vérifiez les éléments suivants :La configuration réseau du serveur.
Le type d'accès réseau du serveur (Internet ou VPC).
Si le type d'accès réseau est VPC, la région sélectionnée.
-
-
-
Testez la connectivité avec le serveur DAS
Exécutez la commande suivante sur le serveur sur lequel vous souhaitez déployer DBGateway. Dans cet exemple, le domaine du serveur DAS est
master-hdm-cn-hangzhou.aliyuncs.com. Utilisez le domaine indiqué dans votre commande de déploiement.telnet master-hdm-cn-hangzhou.aliyuncs.com 80Si la commande renvoie
Name or service not known, le domaine ne peut pas être résolu. Vérifiez les paramètres de votre serveur DNS et assurez-vous que le service DNS fonctionne correctement.-
Si la commande renvoie
Tryingsuivi d'une adresse IP, telle queTrying 10.0.XX.XX, puis reste bloquée, le réseau est inaccessible. Vérifiez les éléments suivants :La configuration réseau du serveur.
Le type d'accès réseau du serveur (Internet ou VPC).
Si le type d'accès réseau est VPC, la région sélectionnée.
-
Si la commande renvoie la sortie suivante :
Connected to master-hdm-cn-hangzhou.aliyuncs.com. Escape character is '^]'.La connexion au serveur DAS est établie avec succès. Si DBGateway ne parvient toujours pas à démarrer, reportez-vous aux sections précédentes et consultez le journal de DBGateway pour poursuivre le dépannage.
Dépannage à l'exécution
-
Échec de l'authentification ou autorisations insuffisantes
-
Assurez-vous que le compte autorisé dispose des permissions requises. Les exemples suivants utilisent un compte autorisé nommé
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'}]})Si vous recevez une erreur
(Unauthorized) not authorized on admin to execute command, accordez les permissions suivantes au compte autorisé :db.grantRolesToUser("das_test", [{db: "local", role: "dbAdmin"},{db: "config", role: "dbAdmin"},{db: "admin", role: "dbAdminAnyDatabase"}]) -
Redis
Redis ne dispose pas de système de comptes. Assurez-vous que le mot de passe est correct. Pour modifier le mot de passe Redis, modifiez l'option
requirepassdans son fichier de configuration et redémarrez le service Redis. Pour plus d'informations, consultez la configuration Redis.
-
Assurez-vous que le nom d'utilisateur et le mot de passe sont corrects. Nous vous recommandons de tester les identifiants en vous connectant à distance à l'instance de base de données depuis le serveur DBGateway.
Redémarrez DBGateway et vérifiez si l'autorisation de l'instance a réussi.
Mettez à jour DBGateway vers la dernière version.
-
-
Échec de la connexion
Un échec de connexion se produit lorsque DBGateway ne parvient pas à se connecter à une instance de base de données. Vérifiez les causes possibles suivantes :
-
Vérifiez si l'instance de base de données fonctionne correctement.
Si une instance de base de données telle que MySQL, PostgreSQL, MongoDB ou Redis n'est pas en cours d'exécution, vérifiez l'existence de son processus.
-
Vérifiez la connectivité réseau entre le serveur DBGateway et l'instance de base de données (par exemple, MySQL, PostgreSQL, MongoDB ou Redis). Exécutez la commande suivante pour confirmer :
telnet <database_instance_IP_or_domain> <database_instance_port>Exemple :
telnet 192.168.XX.XX 3306-
Si la commande renvoie le message suivant, la connexion réseau est normale. Consultez le journal de DBGateway pour approfondir l'investigation.
Connected to 192.168.XX.XX Escape character is '^]'. Si le message précédent n'est pas renvoyé, un problème de connectivité réseau existe. Ce problème est souvent causé par une isolation réseau entre les serveurs, des paramètres de routage, un pare-feu ou une instance de base de données configurée pour refuser les connexions à distance.
-
-
-
Problèmes de surveillance
Vérifiez l'état d'exécution de DBGateway.
Redémarrez DBGateway et vérifiez si la surveillance reprend.
Mettez à jour DBGateway vers la dernière version.
-
L'état reste bloqué sur
Authorized. VerifyingAprès une autorisation réussie, l'état de l'instance doit passer à Normal Connection dans un délai d'une à deux minutes. Si l'état reste
Authorized. Verifyingpendant plus de deux minutes, procédez comme suit :Vérifiez l'état d'exécution de DBGateway.
Redémarrez DBGateway et vérifiez si l'autorisation de l'instance a réussi.
Mettez à jour DBGateway vers la dernière version.