DBX

Şema ve Veri Karşılaştırma

DBX iki karşılaştırma iş akışı sunar:

  • Şema Karşılaştırma, nesneleri ve DDL'i karşılaştırır ve kaynaktan hedefe bir dağıtım betiği üretir
  • Veri Karşılaştırma, bir ya da daha çok tablodaki satırları anahtar sütunlara göre karşılaştırır ve seçilebilir ekleme, güncelleme ve silme SQL'i üretir

İkisi de kaynağı istenen durum, hedefi ise incelenecek ya da eşitlenecek ortam olarak görür. Yönü ters çevirmek karşıt işlemleri üretir.

Karşılaştırma sonuçları ve üretilen SQL insan incelemesi gerektirir. Nesne silmeleri, satır silmeleri, tür dönüşümleri, lehçeler arası eşlemeler ve toplu eşitleme geri alınamayabilir. Önce üretimi yedekleyin ve geri dönüş planını hazırlayın.

Şema Karşılaştırma İş Akışı

Bir yapılandırma seçin ya da oluşturun

Son kullanılan bir yapılandırmayı seçin ya da yeni bir tane oluşturun, yeniden adlandırın veya çoğaltın. Yapılandırmalar; kaynağı, hedefi ve seçenekleri yeniden kullanmak için JSON olarak içe/dışa aktarılabilir.

Kaynağı ve hedefi seçin

Her iki taraf için bağlantıyı, veritabanını ve şemayı seçin. Bunları yer değiştirebilirsiniz, ancak sonrasında dağıtım yönünü yeniden gözden geçirmelisiniz.

Karşılaştırma kapsamını yapılandırın

Tabloları, birincil anahtarları, yabancı anahtarları, benzersiz anahtarları, check kısıtlarını, görünümleri, işlevleri, dizinleri, dizileri, tetikleyicileri, kuralları, sahipleri ve desteklenen diğer nesneleri seçin. Seçenekler veritabanı türüne bağlıdır.

Karşılaştırın ve nesneleri seçin

DBX meta veriyi ve DDL'i okur, bir nesne ağacı oluşturur ve oluşturmaları, silmeleri, değişiklikleri ve bağımlılıkları işaretler. Gerçekten dağıtılacak nesneleri seçin.

DDL'i ve etkiyi inceleyin

Kaynak/hedef DDL'i, alan eşlemelerini, dağıtım betiğini, bağımlılıkları, olası çakışmaları ve etki raporunu inceleyin.

Dışa aktarın ya da dağıtın

.sql dosyasını kopyalayın/dışa aktarın ya da son onaydan sonra hedefe dağıtın. Desteklendiğinde bir işlem kullanın ve ifade düzeyindeki ilerleme ile sonuçları inceleyin.

Şema Fark Türleri

DurumAnlamıTipik betik
Kaynakta eklenmişHedefte nesne yokCREATE ya da sütun/dizin/kısıt ekleme
Hedefte fazladanKaynakta nesne yokDROP ya da sütun/dizin/kısıt kaldırma
Değişmiş nesneTanımlar farklıALTER, yeniden oluşturma ya da kaynağı değiştirme
Yeniden adlandırma adayıAdlar farklı ama yapılar benzerİnceleme gerektiren, benzerliğe dayalı yeniden adlandırma önerisi
Uyumluluk çakışmasıKaynak tür ya da özellik hedefe doğrudan eşlenemiyorAlan eşlemesi, düşürme ya da elle göç

Nesne ağacında filtreleyin ve seçin. Bir nesne yalnızca hedefte fazladan olduğu için otomatik silinmez; yine seçim ve son onay gerektirir.

Karşılaştırma Seçenekleri

Nesne Kapsamı

Veritabanına bağlı olarak karşılaştırma şunları içerebilir:

  • Tablolar, sütunlar, sütun sırası ve birincil anahtarlar
  • Benzersiz anahtarlar, yabancı anahtarlar, check ve exclusion kısıtları
  • Dizinler, görünümler, işlevler, diziler, tetikleyiciler ve kurallar
  • Sahipler ve dizilerin geçerli değerleri

Seçenekler lehçeye özgü varsayılanları yükler. Güvenilir meta verisi ya da eşitleme SQL'i olmayan nesneler gizlenir veya yalnızca fark olarak gösterilir.

Tablo Filtreleri

  • Dâhil etme ve hariç tutma desenleri
  • Her ikisi de eşleştiğinde öncelik
  • Toplu mod ve tablo adı desenleri
  • Sistem nesnelerinin görünürlüğü

Filtreleme, yetkileri değil karşılaştırma kapsamını denetler. Geçerli hesabın okuyamadığı nesneler görünmez.

Yeniden Adlandırma Algılama

Sütun ya da tablo yeniden adlandırma algılamasını etkinleştirin ve bir benzerlik eşiği belirleyin. Öneriler yapısal benzerliğe dayanır ve iş anlamını bilmez; veriyi, kısıtları, uygulama kodunu ve bağımlılıkları doğrulayın.

Lehçeler Arası Alan Eşlemesi

Kaynak ve hedef türler farklı olduğunda kaynak lehçeyi, hedef lehçeyi, uyumluluk eşiğini ve alan eşlemelerini yapılandırın:

  • VARCHAR(255) içindeki uzunluk gibi parametreleri koruma
  • Uyumsuz parametreleri kaldırma
  • Özel hedef parametreleri verme

Motorlar arası karşılaştırma yalnızca elden gelenin en iyisi olan uyumlu bir betik üretebilir. Karakter kümesi, collation, identity, diziler, bölümleme, depolama motorları, işlevler ve yetkiler çoğunlukla elle göç tasarımı gerektirir.

DDL, Bağımlılıklar ve Dağıtım İncelemesi

Seçili nesneler için şunları inceleyin:

  • Kaynak ve hedef DDL
  • Nesne başına dağıtım SQL'i
  • Seçili tüm nesneler için betiğin tamamı
  • Bağımlılıklar ve ters bağımlılıklar
  • Alan eşlemeleri ve uyumluluk uyarıları
  • Oluşturma, değiştirme, silme sayıları ve etki özeti
  • Etkinleştirildiğinde ve üretilebildiğinde isteğe bağlı geri alma SQL'i

Son dağıtım sayfası; hedef sunucuyu, veritabanını, şemayı, veritabanı sürümünü ve ifade sayısını yineler. Üretim koruması, çalıştırmadan önce açık onay ister.

İşlem içinde çalıştırma, yalnızca hedef veritabanı ve ifadeler işlemsel DDL'i destekliyorsa tam geri alma sağlar. MySQL ve bazı veritabanları DDL'i örtük olarak uygular.

Lehçe Anlamı

DBX her şeyi genel DDL'e indirgemek yerine veritabanına özgü anlamı korumaya çalışır:

  • PostgreSQL/openGauss şemaları, dizileri, sahipleri, kuralları ve dizin özellikleri
  • MySQL uyumlu karakter kümesi, collation, identity ve dizin sözdizimi
  • Oracle, Dameng, GaussDB, KingbaseES ve benzeri tür ile niteleme davranışı
  • Doris/StarRocks, ClickHouse, Elasticsearch/Easysearch ve diğerleri yalnızca güvenilir biçimde desteklenen yapı kapsamında

Desteklenen bir bağlantı, her nesnenin karşılaştırılabileceği ya da dağıtılabileceği anlamına gelmez. Veritabanı Desteği sayfasını ve sonuçtaki yetenek iletilerini kullanın.

Veri Karşılaştırma

Veri Karşılaştırma, Şema Karşılaştırma'dan ayrıdır ve kaynak ile hedef tablolar arasındaki satırları karşılaştırır.

Kaynak ve hedef tabloları seçin

Bağlantıyı, veritabanını, şemayı ve tabloyu seçin. Toplu mod, birden çok kaynak tablo seçip bunları aynı adlı hedeflere eşleyebilir.

Anahtar sütunları seçin

Satırları benzersiz olarak belirleyen bir birincil ya da iş anahtarı seçin. Yanlış anahtarlar, güncellemeleri görünüşte ekleme ve silmeye dönüştürebilir.

Karşılaştırmayı çalıştırın

DBX iki tarafı da okur ve yalnızca kaynakta, yalnızca hedefte ve değişmiş satırları işaretler. Toplu mod; geçerli tabloyu, ilerlemeyi ve tablo başına hataları gösterir.

Farkları seçin

Eklemeleri, kaldırmaları ve değişiklikleri filtreleyin ve eşitlenecek satırları ya da alanları seçin. Bir ayrıntı önizleme sınırı, gösterilen veri hacmini denetler.

Eşitleme SQL'ini üretin ve çalıştırın

DBX, hedef lehçesinde INSERT, UPDATE ve DELETE ifadeleri üretir. Çalıştırmadan önce ifade sayısını ve hedefi inceleyin.

Veri Farkı Yönü

DurumAnlamıHedefe eşitleme
EklenmişSatır yalnızca kaynakta varINSERT üretilir
KaldırılmışSatır yalnızca hedefte varDELETE üretilir
DeğişmişAynı anahtar, farklı anahtar dışı sütunlarUPDATE üretilir
AynıSatırlar eşleşiyorİfade üretilmez

Silme eşitlemesi en yüksek riskli seçenektir. Hedefte yerele özgü veriye izin veriliyorsa kaldırmaları seçmeyin.

Karşılaştırma Öncesi Denetim Listesi

  • Kaynak ve hedef yönü doğru
  • Hesaplar eksiksiz meta veriyi, DDL'i ya da tablo verisini okuyabiliyor
  • Filtreler ve nesne seçimi gerekli bağımlılıkları içeriyor
  • Anahtar sütunlar benzersiz ve NULL durumunu doğru ele alıyor
  • Lehçeler arası eşlemeler duyarlığı ve anlamı koruyor
  • Hedefteki salt okunur ve üretim ayarları doğru
  • Yedekler var ve betikler bir test ortamında doğrulandı

Bilinen Sınırlar

  • Dinamik SQL, yordam davranışı, uygulama kodu ve dış ETL şema karşılaştırmasının dışındadır
  • Yeniden adlandırma algılaması bir benzerlik önerisidir, kesin bir sonuç değildir
  • Biçimlendirme farkları, anlamı aynı olan metin değişiklikleri üretebilir
  • Veri karşılaştırma seçili kapsamı okur ve filtrelenmemiş çok büyük tablolar için uygun değildir
  • İşlem geri alma hedef veritabanına bağlıdır
  • Yapılandırmalar bağlantı kimliklerini ve kapsamı içerir, veritabanı parolalarını içermez