Bu konuda DBGateway dizin yapısı, temel işlemler ve yaygın sorunların nasıl giderileceği açıklanmaktadır.
DBGateway dizin yapısı
dbgateway
|-- bin
| |-- dbgateway
| \-- dbgateway-manager
|-- conf
| |-- dbgateway.conf
| \-- server.crt
\-- log
|-- dbgateway.err
|-- dbgateway.log
\-- dbgateway_manager.log
bin dizini ana program olan
dbgatewayve DBGateway'i yönetmek için kullanılan yönetim betiğidbgateway-managerdosyalarını içerir.conf dizini DBGateway yapılandırma dosyası olan
dbgateway.confve iletişim için kullanılan genel anahtar sertifikasıserver.crtdosyalarını içerir.log dizini DBGateway hata çıktısını içeren
dbgateway.errdosyasını, ana DBGateway günlüğünü içerendbgateway.logdosyasını ve yönetim betiği günlüğünü içerendbgateway_manager.logdosyasını içerir.
Temel işlemler
-
DBGateway günlüğünü görüntüleyin
DBGateway günlük dosyasının tam yolu
/opt/dbgateway/log/dbgateway.logşeklindedir.Günlük dosyası düz metin formatındadır;
vim,tail,catvelessgibi standart araçlarla görüntülenebilir.
Database Autonomy Service (DAS) destek personeli sorun giderme amacıyla DBGateway günlüğünü talep ederse DBGateway'in dağıtıldığı sunucuda oturum açın. Son 200 günlük kaydını almak için aşağıdaki komutu çalıştırın ve çıktıyı destek ekibine iletin.
tail -n 200 /opt/dbgateway/log/dbgateway.log -
DBGateway işleminin çalışıp çalışmadığını kontrol edin
DAS konsolu üzerinde oturum açın.
Sol gezinme bölmesinde Resource Management > DBGateways seçeneklerini tıklayın.
-
DBGateways sayfasında DBGateway'in Current Status değerini kontrol edin.
Current Status değeri Normal ise DBGateway işlemi çalışıyor demektir. Aksi durumda DBGateway'in dağıtıldığı sunucuda aşağıdaki komutu çalıştırın:
/opt/dbgateway/bin/dbgateway-manager -d status-
DBGateway işlemi çalışıyorsa komut şu çıktıyı döndürür:
DBGateway is running. -
DBGateway işlemi çalışmıyorsa komut şu çıktıyı döndürür:
DBGateway is dead.
NotBu kontrol yalnızca DBGateway işleminin var olduğunu doğrular işlevinin doğru çalıştığını garanti etmez.
-
-
DBGateway'i yeniden başlatın
Önceki bölümde açıklandığı şekilde DBGateway işleminin çalışıp çalışmadığını kontrol edin.
-
DBGateway'i yeniden başlatın.
-
DBGateway işlemi çalışıyorsa:
-
DBGateways sayfasında ilgili DBGateway'i bulun ve Actions sütunundaki seçeneğini tıklayın.

-
Alternatif olarak DBGateway'in dağıtıldığı sunucuda aşağıdaki komutu çalıştırabilirsiniz:
/opt/dbgateway/bin/dbgateway-manager -d restart
-
-
DBGateway işlemi çalışmıyorsa:
Bu işlem DAS konsolunda kullanılamaz. İşlemi komut satırından yeniden başlatmanız gerekir. DBGateway'in dağıtıldığı sunucuda aşağıdaki komutu çalıştırın:
/opt/dbgateway/bin/dbgateway-manager -d restart
-
-
DBGateway'i yükseltin
DBGateways sayfasında ilgili DBGateway'i bulun ve Actions sütunundaki seçeneğini tıklayın.
-
DBGateway'i durdurun
DBGateways sayfasında ilgili DBGateway'i bulun ve Actions sütunundaki seçeneğini tıklayın.
-
Alternatif olarak DBGateway'in dağıtıldığı sunucuda aşağıdaki komutu çalıştırın:
/opt/dbgateway/bin/dbgateway-manager -d stop
-
DBGateway'i silin
NotBir DBGateway'i sildikten sonra ilişkili veritabanı örnekleri için tüm DAS özellikleri kullanılamaz hale gelir.
Current Status değeri Normal olan bir DBGateway'i silemezsiniz. Önce DBGateway'i durdurmanız gerekir.
DBGateways sayfasında ilgili DBGateway'i bulun ve Actions sütunundaki seçeneğini tıklayın.
-
İsteğe bağlı: Kurulum dizinini silmek için DBGateway'in dağıtıldığı sunucuda aşağıdaki komutu çalıştırın.
rm -rf /opt/dbgateway
-
DBGateway'i yeniden yükleyin
DBGateway'i sildikten sonra aynı sunucuya yeniden dağıtabilirsiniz. Veritabanı örneğini eklerken DAS konsolunda sağlanan dağıtım komutunu kullanın.
Dağıtım sorun giderme
Bir veritabanı örneğini database gateway in centralized mode veya database gateway in host mode kullanarak bağladığınızda bir dağıtım komutu alırsınız. Aşağıdaki komut bir örnektir. id ve token değerleri yalnızca gösterim amaçlıdır. Kendi dağıtım komutunuzdaki değerleri kullanın.
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 dağıtım betiği indirilemiyor
-
wget command not foundiletisini görüyorsanızwgetyardımcı programı yüklü değildir.wgetyüklemek için aşağıdaki komutlardan birini çalıştırın:sudo apt-get install wgetveya
yum -y install wget -
Sunucunuzun Object Storage Service (OSS) ağına bağlanabildiğini kontrol edin.
Sunucunuzda OSS alan adını
pingkomutuyla test edin. Bu örnekte alan adıhdm-dbgateway-cn-hangzhou.oss-cn-hangzhou.aliyuncs.comşeklindedir. Dağıtım komutunuzdaki alan adını kullanın.ping hdm-dbgateway-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com-
Komut aşağıdaki iletiyi döndürürse alan adı çözümlenemiyor demektir. DNS sunucu ayarlarınızı kontrol edin ve DNS hizmetinin doğru çalıştığından emin olun.
ping: unknown host hdm-dbgateway-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com -
pingkomutu herhangi bir çıktı vermeden askıda kalıyorsa ağ bağlantısı başarısız olmuş demektir. Aşağıdakileri kontrol edin:Sunucunun ağ yapılandırması.
Sunucunun ağ erişim türü (İnternet veya VPC).
Ağ erişim türü VPC ise seçilen bölge.
-
-
-
DAS sunucusuna bağlantıyı test edin
DBGateway'i dağıtmak istediğiniz sunucuda aşağıdaki komutu çalıştırın. Bu örnekte DAS sunucu alan adı
master-hdm-cn-hangzhou.aliyuncs.comşeklindedir. Dağıtım komutunuzdaki alan adını kullanın.telnet master-hdm-cn-hangzhou.aliyuncs.com 80Komut
Name or service not knowndöndürürse alan adı çözümlenemiyor demektir. DNS sunucu ayarlarınızı kontrol edin ve DNS hizmetinin doğru çalıştığından emin olun.-
Komut
Tryingifadesinin ardındanTrying 10.0.XX.XXgibi bir IP adresi döndürüp askıda kalıyorsa ağa ulaşılamıyor demektir. Aşağıdakileri kontrol edin:Sunucunun ağ yapılandırması.
Sunucunun ağ erişim türü (İnternet veya VPC).
Ağ erişim türü VPC ise seçilen bölge.
-
Komut aşağıdaki çıktıyı döndürürse:
Connected to master-hdm-cn-hangzhou.aliyuncs.com. Escape character is '^]'.DAS sunucusuna bağlantı başarılıdır. DBGateway hala başlatılamıyorsa önceki bölümlere bakın ve daha fazla sorun giderme için DBGateway günlüğünü görüntüleyin.
Çalışma zamanı sorun giderme
-
Kimlik doğrulama başarısız oldu veya yetersiz izinler
-
Yetkili hesabın gerekli izinlere sahip olduğundan emin olun. Aşağıdaki örneklerde yetkili hesap adı olarak
das_testkullanılmıştır.-
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'}]})(Unauthorized) not authorized on admin to execute commandhatası alırsanız yetkili hesaba aşağıdaki izinleri verin:db.grantRolesToUser("das_test", [{db: "local", role: "dbAdmin"},{db: "config", role: "dbAdmin"},{db: "admin", role: "dbAdminAnyDatabase"}]) -
Redis
Redis'in bir hesap sistemi yoktur. Parolanın doğru olduğundan emin olun. Redis parolasını değiştirmek için yapılandırma dosyasındaki
requirepassseçeneğini değiştirin ve Redis hizmetini yeniden başlatın. Daha fazla bilgi için Redis configuration konusuna bakın.
-
Hesap ve parolanın doğru olduğundan emin olun. Kimlik bilgilerini test etmek için DBGateway sunucusundan veritabanı örneğine uzaktan bağlanmanızı öneririz.
DBGateway'i yeniden başlatın ve örneğin başarıyla yetkilendirilip yetkilendirilmediğini kontrol edin.
DBGateway'i en son sürüme yükseltin.
-
-
Bağlantı hatası
DBGateway bir veritabanı örneğine bağlanamadığında bağlantı hatası oluşur. Aşağıdaki olası nedenleri kontrol edin:
-
Veritabanı örneğinin düzgün çalışıp çalışmadığını kontrol edin.
MySQL PostgreSQL MongoDB veya Redis gibi bir veritabanı örneği çalışmıyorsa işleminin var olup olmadığını kontrol edin.
-
DBGateway sunucusu ile veritabanı örneği (örneğin MySQL PostgreSQL MongoDB veya Redis) arasındaki ağ bağlantısını kontrol edin. Onaylamak için aşağıdaki komutu çalıştırın:
telnet <database_instance_IP_or_domain> <database_instance_port>Örnek:
telnet 192.168.XX.XX 3306-
Komut aşağıdaki iletiyi döndürürse ağ bağlantısı normaldir. Daha fazla araştırma için DBGateway günlüğünü görüntüleyin.
Connected to 192.168.XX.XX Escape character is '^]'. Önceki ileti döndürülmezse bir ağ bağlantısı sorunu vardır. Bu sorun genellikle sunucular arasındaki ağ izolasyonu yönlendirme ayarları güvenlik duvarı veya uzak bağlantıları reddedecek şekilde yapılandırılmış bir veritabanı örneğinden kaynaklanır.
-
-
-
İzleme sorunları
DBGateway'in çalışma durumunu kontrol edin.
DBGateway'i yeniden başlatın ve izlemenin devam edip etmediğini kontrol edin.
DBGateway'i en son sürüme yükseltin.
-
Durum
Authorized. Verifyingaşamasında takılı kalıyorBaşarılı yetkilendirmeden sonra örnek durumu bir iki dakika içinde Normal Connection olarak değişmelidir. Durum iki dakikadan uzun süre
Authorized. Verifyingolarak kalırsa aşağıdaki adımları uygulayın:DBGateway'in çalışma durumunu kontrol edin.
DBGateway'i yeniden başlatın ve örneğin başarıyla yetkilendirilip yetkilendirilmediğini kontrol edin.
DBGateway'i en son sürüme yükseltin.