Topik ini menjelaskan struktur direktori DBGateway, operasi dasarnya, serta cara menangani masalah umum.
Struktur direktori DBGateway
dbgateway
|-- bin
| |-- dbgateway
| \-- dbgateway-manager
|-- conf
| |-- dbgateway.conf
| \-- server.crt
\-- log
|-- dbgateway.err
|-- dbgateway.log
\-- dbgateway_manager.log
-
Direktori bin berisi
dbgateway(program utama) dandbgateway-manager(skrip manajemen untuk memelihara DBGateway). -
Direktori conf berisi
dbgateway.conf(file konfigurasi DBGateway) danserver.crt(sertifikat kunci publik untuk komunikasi). -
Direktori log berisi
dbgateway.err(output error DBGateway),dbgateway.log(log utama DBGateway), dandbgateway_manager.log(log skrip manajemen).
Operasi dasar
-
Lihat log DBGateway
-
Jalur lengkap file log DBGateway adalah
/opt/dbgateway/log/dbgateway.log. -
File log merupakan file teks biasa yang dapat Anda lihat dengan alat standar seperti
vim,tail,cat, danless.
Jika staf dukungan Database Autonomy Service (DAS) meminta log DBGateway untuk troubleshooting, login ke server tempat DBGateway diterapkan. Jalankan perintah berikut untuk mengambil 200 entri log terakhir dan berikan output-nya kepada mereka.
tail -n 200 /opt/dbgateway/log/dbgateway.log -
-
Periksa apakah proses DBGateway sedang berjalan
-
Login ke Konsol DAS.
-
Pada panel navigasi sebelah kiri, klik Resource Management > DBGateways.
-
Pada halaman DBGateways, periksa Current Status DBGateway.
Jika Current Status bernilai Normal, maka proses DBGateway sedang berjalan. Jika tidak, jalankan perintah berikut pada server tempat DBGateway diterapkan:
/opt/dbgateway/bin/dbgateway-manager -d status-
Jika proses DBGateway sedang berjalan, perintah akan mengembalikan:
DBGateway is running. -
Jika proses DBGateway tidak berjalan, perintah akan mengembalikan:
DBGateway is dead.
CatatanPemeriksaan ini hanya memastikan bahwa proses DBGateway ada, bukan bahwa proses tersebut berfungsi dengan benar.
-
-
-
Restart DBGateway
-
Periksa apakah proses DBGateway sedang berjalan seperti dijelaskan pada bagian sebelumnya.
-
Restart DBGateway.
Jika proses DBGateway sedang berjalan:
-
Pada halaman DBGateways, temukan DBGateway yang dimaksud, lalu klik pada kolom Actions.

-
Atau, jalankan perintah berikut pada server tempat DBGateway diterapkan:
/opt/dbgateway/bin/dbgateway-manager -d restart
-
-
Jika proses DBGateway tidak berjalan:
Operasi ini tidak tersedia di Konsol DAS. Anda harus me-restart proses tersebut melalui command line. Jalankan perintah berikut pada server tempat DBGateway diterapkan:
/opt/dbgateway/bin/dbgateway-manager -d restart
-
-
Upgrade DBGateway
Pada halaman DBGateways, temukan DBGateway yang dimaksud, lalu klik pada kolom Actions.
-
Hentikan DBGateway
-
Pada halaman DBGateways, temukan DBGateway yang dimaksud, lalu klik pada kolom Actions.
-
Atau, jalankan perintah berikut pada server tempat DBGateway diterapkan:
/opt/dbgateway/bin/dbgateway-manager -d stop
-
-
Hapus DBGateway
Catatan-
Setelah Anda menghapus DBGateway, semua fitur Database Autonomy Service (DAS) untuk instans database terkait tidak lagi tersedia.
-
Anda tidak dapat menghapus DBGateway yang status Current Status-nya adalah Normal. Anda harus menghentikan DBGateway terlebih dahulu.
-
Pada halaman DBGateways, temukan DBGateway yang ingin dihapus, lalu klik pada kolom Actions.
-
Opsional: Jalankan perintah berikut pada server tempat DBGateway diterapkan untuk menghapus direktori instalasi.
rm -rf /opt/dbgateway
-
-
Instal ulang DBGateway
Setelah menghapus DBGateway, Anda dapat menerapkannya kembali pada server yang sama menggunakan perintah penerapan yang disediakan di Konsol DAS saat menambahkan instans database.
Troubleshooting penerapan
Saat Anda menghubungkan instans database menggunakan database gateway in centralized mode atau database gateway in host mode, Anda akan menerima perintah penerapan. Perintah berikut merupakan contoh. Nilai id dan token hanya untuk demonstrasi. Gunakan nilai dari perintah penerapan Anda.
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
-
Tidak dapat mengunduh skrip penerapan DBGateway
-
Jika Anda melihat pesan
wget command not found, utilitaswgetbelum terinstal. Jalankan salah satu perintah berikut untuk menginstalwget:sudo apt-get install wgetatau
yum -y install wget -
Periksa apakah server Anda dapat terhubung ke jaringan Object Storage Service (OSS).
Pada server Anda,
pingdomain OSS. Pada contoh ini, domain-nya adalahhdm-dbgateway-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com. Gunakan domain dari perintah penerapan Anda.ping hdm-dbgateway-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com-
Jika perintah mengembalikan pesan berikut, domain tidak dapat diselesaikan. Periksa pengaturan Server DNS Anda dan pastikan layanan DNS berfungsi dengan benar.
ping: unknown host hdm-dbgateway-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com -
Jika perintah
pinghang tanpa output, koneksi jaringan gagal. Periksa hal berikut:-
Konfigurasi jaringan server.
-
Jenis akses jaringan server (Internet atau VPC).
-
Jika jenis akses jaringan adalah VPC, wilayah yang dipilih.
-
-
-
-
Uji konektivitas ke server DAS
Jalankan perintah berikut pada server tempat Anda ingin menerapkan DBGateway. Pada contoh ini, domain server DAS adalah
master-hdm-cn-hangzhou.aliyuncs.com. Gunakan domain dari perintah penerapan Anda.telnet master-hdm-cn-hangzhou.aliyuncs.com 80-
Jika perintah mengembalikan
Name or service not known, domain tidak dapat diselesaikan. Periksa pengaturan Server DNS Anda dan pastikan layanan DNS berfungsi dengan benar. -
Jika perintah mengembalikan
Tryingdiikuti alamat IP, sepertiTrying 10.0.XX.XX, lalu hang, jaringan tidak dapat dijangkau. Periksa hal berikut:-
Konfigurasi jaringan server.
-
Jenis akses jaringan server (Internet atau VPC).
-
Jika jenis akses jaringan adalah VPC, wilayah yang dipilih.
-
-
Jika perintah mengembalikan output berikut:
Connected to master-hdm-cn-hangzhou.aliyuncs.com. Escape character is '^]'.Koneksi ke server DAS berhasil. Jika DBGateway tetap gagal dimulai, rujuk bagian sebelumnya dan lihat log DBGateway untuk troubleshooting lebih lanjut.
-
Troubleshooting runtime
-
Otentikasi gagal atau izin tidak mencukupi
-
Pastikan akun yang diotorisasi memiliki izin yang diperlukan. Contoh berikut menggunakan akun yang diotorisasi bernama
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; /* Opsional. Izin ini diperlukan untuk mengumpulkan log kueri lambat dan pernyataan 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'}]})Jika Anda menerima error
(Unauthorized) not authorized on admin to execute command, berikan izin berikut ke akun yang diotorisasi:db.grantRolesToUser("das_test", [{db: "local", role: "dbAdmin"},{db: "config", role: "dbAdmin"},{db: "admin", role: "dbAdminAnyDatabase"}]) -
Redis
Redis tidak memiliki sistem akun. Pastikan password-nya benar. Untuk mengubah password Redis, modifikasi opsi
requirepasspada file konfigurasinya dan restart layanan Redis. Untuk informasi lebih lanjut, lihat Redis configuration.
-
-
Pastikan akun dan password-nya benar. Kami menyarankan Anda menguji kredensial dengan menghubungkan ke instans database secara remote dari server DBGateway.
-
Restart DBGateway dan periksa apakah instans berhasil diotorisasi.
-
Upgrade DBGateway ke versi terbaru.
-
-
Kegagalan koneksi
Kegagalan koneksi terjadi ketika DBGateway tidak dapat terhubung ke instans database. Periksa kemungkinan penyebab berikut:
-
Periksa apakah instans database berjalan dengan baik.
Jika instans database seperti MySQL, PostgreSQL, MongoDB, atau Redis tidak berjalan, periksa apakah prosesnya ada.
-
Periksa konektivitas jaringan antara server DBGateway dan instans database (misalnya, MySQL, PostgreSQL, MongoDB, atau Redis). Jalankan perintah berikut untuk memastikan:
telnet <database_instance_IP_or_domain> <database_instance_port>Contoh:
telnet 192.168.XX.XX 3306-
Jika perintah mengembalikan pesan berikut, koneksi jaringan normal. Lihat log DBGateway untuk investigasi lebih lanjut.
Connected to 192.168.XX.XX Escape character is '^]'. -
Jika pesan di atas tidak dikembalikan, terdapat masalah konektivitas jaringan. Masalah ini sering disebabkan oleh isolasi jaringan antar server, pengaturan routing, firewall, atau instans database yang dikonfigurasi untuk menolak koneksi remote.
-
-
-
Masalah pemantauan
-
Periksa status berjalan DBGateway.
-
Restart DBGateway dan periksa apakah pemantauan dilanjutkan.
-
Upgrade DBGateway ke versi terbaru.
-
-
Status terjebak di
Authorized. VerifyingSetelah otorisasi berhasil, status instans seharusnya berubah menjadi Normal Connection dalam waktu satu hingga dua menit. Jika status tetap
Authorized. Verifyinglebih dari dua menit, lakukan langkah-langkah berikut:-
Periksa status berjalan DBGateway.
-
Restart DBGateway dan periksa apakah instans berhasil diotorisasi.
-
Upgrade DBGateway ke versi terbaru.
-