このトピックでは、DBGateway のディレクトリ構造、基本操作、および一般的な問題のトラブルシューティング方法について説明します。
DBGateway のディレクトリ構造
dbgateway
|-- bin
| |-- dbgateway
| \-- dbgateway-manager
|-- conf
| |-- dbgateway.conf
| \-- server.crt
\-- log
|-- dbgateway.err
|-- dbgateway.log
\-- dbgateway_manager.log
-
bin ディレクトリには、
dbgateway(メインプログラム) とdbgateway-manager(DBGateway の管理用スクリプト) が含まれます。 -
conf ディレクトリには、
dbgateway.conf(DBGateway の設定ファイル) とserver.crt(通信用の公開鍵証明書) が含まれます。 -
log ディレクトリには、
dbgateway.err(DBGateway のエラー出力)、dbgateway.log(DBGateway のメインログ)、およびdbgateway_manager.log(管理スクリプトのログ) が含まれます。
基本操作
-
DBGateway ログの表示
-
DBGateway ログファイルのフルパスは
/opt/dbgateway/log/dbgateway.logです。 -
ログファイルはプレーンテキストファイルであり、
vim、tail、cat、lessなどの標準ツールで表示できます。
Database Autonomy Service (DAS) のサポートスタッフがトラブルシューティングのために DBGateway ログを要求した場合は、DBGateway がデプロイされているサーバーにログインし、次のコマンドを実行して最新の 200 件のログエントリを取得し、その出力を提供してください。
tail -n 200 /opt/dbgateway/log/dbgateway.log -
-
DBGateway プロセスが実行中かどうかの確認
-
DAS コンソールにログインします。
-
左側メニューで、リソース管理 > DBGateway をクリックします。
-
DBGateway ページで、DBGateway の 現在のステータス を確認します。
現在のステータス が 正常 の場合、DBGateway プロセスは実行中です。 それ以外の場合は、DBGateway がデプロイされているサーバーで次のコマンドを実行してください。
/opt/dbgateway/bin/dbgateway-manager -d status-
DBGateway プロセスが実行中の場合、次の結果が返されます。
DBGateway is running. -
DBGateway プロセスが実行されていない場合、次の結果が返されます。
DBGateway is dead.
説明このチェックは、DBGateway プロセスが存在するかどうかを確認するだけで、正常に機能しているかまでは確認しません。
-
-
-
DBGateway の再起動
-
前のセクションで説明したように、DBGateway プロセスが実行中かどうかを確認します。
-
DBGateway を再起動します。
-
DBGateway プロセスが実行中の場合:
-
DBGateway ページで、対象の DBGateway を見つけ、操作 列の をクリックします。

-
または、DBGateway がデプロイされているサーバーで次のコマンドを実行してください。
/opt/dbgateway/bin/dbgateway-manager -d restart
-
-
DBGateway プロセスが実行されていない場合:
この操作は DAS コンソールでは利用できません。 コマンドラインからプロセスを再起動する必要があります。 DBGateway がデプロイされているサーバーで次のコマンドを実行してください。
/opt/dbgateway/bin/dbgateway-manager -d restart
-
-
-
DBGateway のアップグレード
DBGateway ページで、対象の DBGateway を見つけ、操作 列の をクリックします。
-
DBGateway の停止
-
DBGateway ページで、対象の DBGateway を見つけ、操作 列の をクリックします。
-
または、DBGateway がデプロイされているサーバーで次のコマンドを実行してください。
/opt/dbgateway/bin/dbgateway-manager -d stop
-
-
DBGateway の削除
説明-
DBGateway を削除すると、関連付けられたデータベースインスタンスのすべての DAS 機能が利用できなくなります。
-
現在のステータス が 正常 の DBGateway は削除できません。 まず DBGateway を停止する必要があります。
-
DBGateway ページで、対象の DBGateway を見つけ、操作 列の をクリックします。
-
オプション: DBGateway がデプロイされているサーバーで次のコマンドを実行して、インストールディレクトリを削除してください。
rm -rf /opt/dbgateway
-
-
DBGateway の再インストール
DBGateway を削除した後、同じサーバーに再デプロイできます。 データベースインスタンスを追加する際に DAS コンソールで表示されるデプロイコマンドを使用してください。
デプロイのトラブルシューティング
[集中管理モードのデータベースゲートウェイ]または [ホストモードのデータベースゲートウェイ]を使用してデータベースインスタンスを接続すると、デプロイコマンドが表示されます。 次のコマンドは一例です。 id と token は一例です。 実際のデプロイコマンドの値を使用してください。
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
-
DBGateway デプロイスクリプトをダウンロードできない
-
「
wget command not found」というメッセージが表示された場合、wgetユーティリティがインストールされていません。 次のいずれかのコマンドを実行してwgetをインストールしてください。sudo apt-get install wgetまたは
yum -y install wget -
サーバーが Object Storage Service (OSS) ネットワークに接続できるかどうかを確認してください。
サーバーで、OSS ドメインに
pingを実行してください。 この例では、ドメインはhdm-dbgateway-cn-hangzhou.oss-cn-hangzhou-internal.aliyuncs.comです。 実際のデプロイコマンドのドメインを使用してください。ping hdm-dbgateway-cn-hangzhou.oss-cn-hangzhou-internal.aliyuncs.com-
次のメッセージが返された場合、ドメインは解決できません。 DNS サーバーの設定を確認し、DNS サービスが正しく機能していることを確認してください。
ping: unknown host hdm-dbgateway-cn-hangzhou.oss-cn-hangzhou-internal.aliyuncs.com -
pingコマンドが出力なしでハングする場合、ネットワーク接続に失敗しています。 以下を確認してください。-
サーバーのネットワーク設定。
-
サーバーのネットワークアクセスタイプ (インターネットまたは VPC)。
-
ネットワークアクセスタイプが VPC の場合は、選択したリージョン。
-
-
-
-
DAS サーバーへの接続性のテスト
DBGateway をデプロイするサーバーで次のコマンドを実行してください。 この例では、DAS サーバーのドメインは
master-hdm-cn-hangzhou-inner.aliyuncs.comです。 実際のデプロイコマンドのドメインを使用してください。telnet master-hdm-cn-hangzhou-inner.aliyuncs.com 80-
コマンドから
Name or service not knownが返された場合、ドメインは解決できません。DNS サーバーの設定を確認し、DNS サービスが正常に機能していることを確認してください。 -
コマンドが
Tryingの後にTrying 10.0.XX.XXのような IP アドレスを返し、その後ハングする場合、ネットワークに到達できません。次の項目を確認してください。-
サーバーのネットワーク設定。
-
サーバーのネットワークアクセスタイプ (インターネットまたは VPC)。
-
ネットワークアクセスタイプが VPC の場合は、選択したリージョン。
-
-
次の出力が返された場合:
Connected to master-hdm-cn-hangzhou-inner.aliyuncs.com. Escape character is '^]'.DAS サーバーへの接続は成功しています。 それでも DBGateway の起動に失敗する場合は、前のセクションを参照し、DBGateway ログを確認してさらにトラブルシューティングを行ってください。
-
実行時のトラブルシューティング
-
認証失敗または権限不足
-
承認済みアカウントに必要な権限があることを確認してください。 以下の例では、
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; /* オプション。スロークエリログと SQL 文の収集に必要です。 */ 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'}]})(Unauthorized) not authorized on admin to execute commandエラーが表示された場合は、承認済みアカウントに次の権限を付与してください。db.grantRolesToUser("das_test", [{db: "local", role: "dbAdmin"},{db: "config", role: "dbAdmin"},{db: "admin", role: "dbAdminAnyDatabase"}]) -
Redis
Redis にはアカウントシステムがありません。 パスワードが正しいことを確認してください。 Redis のパスワードを変更するには、設定ファイルで
requirepassオプションを変更し、Redis サービスを再起動してください。 詳細については、「Redis configuration」をご参照ください。
-
-
アカウントとパスワードが正しいことを確認してください。 DBGateway サーバーからデータベースインスタンスにリモートで接続して、認証情報をテストすることを推奨します。
-
DBGateway を再起動し、インスタンスが正常に承認されたかどうかを確認してください。
-
DBGateway を最新バージョンにアップグレードしてください。
-
-
接続失敗
接続失敗は、DBGateway がデータベースインスタンスに接続できない場合に発生します。 以下の考えられる原因を確認してください。
-
データベースインスタンスが正常に実行されているかどうかを確認してください。
MySQL、PostgreSQL、MongoDB、Redis などのデータベースインスタンスが実行されていない場合は、そのプロセスが存在するかどうかを確認してください。
-
DBGateway サーバーとデータベースインスタンス (MySQL、PostgreSQL、MongoDB、Redis など) との間のネットワーク接続性を確認してください。 次のコマンドを実行して確認してください。
telnet <database_instance_IP_or_domain> <database_instance_port>例:
telnet 192.168.XX.XX 3306-
次のメッセージが返された場合、ネットワーク接続は正常です。 詳細な調査のために DBGateway ログを確認してください。
Connected to 192.168.XX.XX Escape character is '^]'. -
上記のメッセージが返されない場合は、ネットワーク接続に問題があります。 この問題は、多くの場合、サーバー間のネットワーク分離、ルーティング設定、ファイアウォール、またはリモート接続を拒否するように設定されたデータベースインスタンスが原因で発生します。
-
-
-
モニタリングの問題
-
DBGateway の実行ステータスを確認してください。
-
DBGateway を再起動し、モニタリングが再開されるかどうかを確認してください。
-
DBGateway を最新バージョンにアップグレードしてください。
-
-
ステータスが 「
Authorized. Verifying」のままになる承認が成功すると、インスタンスのステータスは 1〜2 分以内に 通常の接続 に変わるはずです。 ステータスが 2 分以上 「
Authorized. Verifying」のままである場合は、次の手順を実行してください。-
DBGateway の実行ステータスを確認してください。
-
DBGateway を再起動し、インスタンスが正常に承認されたかどうかを確認してください。
-
DBGateway を最新バージョンにアップグレードしてください。
-