dbsgomysql: Go için MySQL Şema ve Replikasyon Kütüphanesi

dbsgomysql, DBS Medya'nın geliştirdiği açık kaynaklı bir Go kütüphanesidir. MySQL sunucusundan şema, yetki ve replikasyon olgularını (facts) okur ve uygulamaya yapılandırılmış veri olarak sunar.
Bir tablonun birincil anahtarı var mı, bu tabloya hangi yabancı anahtarlar işaret ediyor, bağlanan hesap silme yetkisine sahip mi, replikasyon gecikmesi sınırın altında mı gibi soruları yanıtlar. MIT lisansıyla yayımlanır.

GitHub'da Görüntüle →
$ go get github.com/dbsmedya/dbsgomysql
go: downloading github.com/dbsmedya/dbsgomysql v1.1.2
go: added github.com/dbsmedya/dbsgomysql v1.1.2
$ make test-integration
ok dbsgomysql/pkg/replication 1.042s
ok dbsgomysql/pkg/sqlutil 0.829s
ok dbsgomysql/pkg/validations 6.867s

Özellikler ve Yetenekler

Sürüm farklarını üstlenir

MySQL 8.0, 8.4, 9.7 ve Percona Server for MySQL üzerinde test edilir. Yeni bir sürüm çıktığında uyumluluk çalışması uygulamada değil kütüphanede yapılır.

Şema ve replikasyon sorgularını standartlaştırır

information_schema tablolarını ve replikasyon durum çıktısını okur, yapılandırılmış veriye dönüştürür. Uygulama ne sorgu yazar ne sürüm farkı izler.

Ön denetimleri hazır sunar

Arşivleme, toplu silme veya şema değişikliği öncesi tablo, yetki ve replikasyon kontrolleri hazır gelir. Her bulgu gerekçesiyle bildirilir, engel mi uyarı mı kararı uygulamanındır. GoArchive ön denetimlerini bu kütüphaneyle yapar.

Üretim sunucusuna yük ve risk eklemez

Yalnızca okur, işlem açmaz, sunucu ayarı değiştirmez. Hiçbir sürücü veya üçüncü taraf paket içermez ve uygulamanın mevcut bağlantısını kullanır.

Sunulan Parametreler

Şema yapısı ve depolama motoru

Tablonun varlığı, depolama motoru, birincil anahtarın varlığı ve biçimi, görünmez sütunlar, silme tetikleyicileri, tablo ve sütun düzeyinde karakter seti ile karşılaştırma, iki tablo tanımı arasındaki fark.

Yabancı anahtarlar

Tablo kümesine dışarıdan işaret eden yabancı anahtarlar, dayandıkları indeks, silme ve güncelleme kuralları.

Yetkiler

Bağlanan hesabın şema ve tablo düzeyindeki yetkileri. Kanıtlanamayan yetki "yok" değil "belirsiz" olarak bildirilir.

Replikasyon ve GTID

Kanal durumu alıcı (receiver) ve uygulayıcı (applier) için ayrı ayrı, binary log durumu ve koordinatı, GTID kipi, read_only ve super_read_only ayarları, sunucu kimliği, kayıtlı replikalar, gecikmenin verilen sınırın altında olup olmadığı.

Ad güvenliği

Şema, tablo ve sütun adlarının MySQL kurallarına uygunluğu, güvenli alıntılama, geçerli ama riskli adların reddi.

Sürüm ve dağıtım kapsamı

MySQL 8.0.40 ve sonrası, 8.4, 9.7 ve Percona Server for MySQL. MariaDB ve yönetilen bulut servisleri kapsam dışıdır.

MySQL destek ve danışmanlık

MySQL destek ve danışmanlık hizmetimiz için iletişime geçebilirsiniz.

İletişime geçin