Şema eşitleme, iki veritabanının şemalarını karşılaştırır, aradaki farkları kapatmak için gereken DDL deyimlerini oluşturur ve bu deyimleri hedef veritabanında çalıştırır; satır verilerine dokunmaz.
Şema eşitlemeyi kullanarak üretimden teste, testten teste veya üretimden üretime gibi farklı ortamlar arasında şemaların tutarlılığını koruyabilirsiniz.
Ön koşullar
Başlamadan önce aşağıdaki gereksinimleri karşıladığınızdan emin olun:
Desteklenen türlerden biri olan bir kaynak ve hedef veritabanı
Hedef veritabanı için Enable execution capability (if closed, other rules are invalid) güvenlik kuralının etkinleştirilmiş olması (bkz. Çalıştırma yeteneğini etkinleştir)
Kaynak veritabanında sorgu izinlerine sahip olmanız (bkz. Sahip olunan izinleri görüntüle)
Hedef veritabanında tabloları değiştirme izinlerine sahip olmanız (bkz. Sahip olunan izinleri görüntüle)
Enable execution capability güvenlik kuralı etkinleştirilmezse DMS şemaları karşılaştırabilir ancak oluşturulan SQL deyimlerini çalıştıramaz.
Desteklenen veritabanı türleri
| Motor | Desteklenen ürünler |
|---|---|
| MySQL | ApsaraDB RDS for MySQL, PolarDB for MySQL, ApsaraDB MyBase for MySQL, PolarDB-X, AnalyticDB for MySQL V3.0, diğer kaynaklardan gelen MySQL veritabanları |
| SQL Server | ApsaraDB RDS for SQL Server, ApsaraDB MyBase for SQL Server, diğer kaynaklardan gelen SQL Server veritabanları |
| PostgreSQL | ApsaraDB RDS for PostgreSQL, PolarDB for PostgreSQL, ApsaraDB MyBase for PostgreSQL, AnalyticDB for PostgreSQL, diğer kaynaklardan gelen PostgreSQL veritabanları |
| MariaDB | ApsaraDB RDS for MariaDB, diğer kaynaklardan gelen MariaDB veritabanları |
| OceanBase | MySQL modunda ApsaraDB for OceanBase |
| PolarDB | PolarDB for PostgreSQL (Oracle ile uyumlu) |
Şema eşitleme nasıl çalışır?
Şema eşitleme yalnızca yapıyı değiştirir; veritabanları arasında veri taşımaz.
DMS şemaları karşılaştırdığında sonuç, hedefte eşleşen tablo adlarının bulunup bulunmamasına göre değişir:
| Durum | DMS davranışı |
|---|---|
| Tablo kaynakta var ancak hedefte yok | Tabloyu hedef veritabanında oluşturur |
| Tablo her iki veritabanında da var | Hedef tablonun kaynağa uyması için alan ekler veya kaldırır |
| Tablo hedefte var ancak kaynakta yok | İşlem yapmaz — DMS hedeften asla bir tabloyu silmez |
Bir alanın kaldırılması, o alandaki tüm verilerin kalıcı olarak silinmesine neden olur. Eşitlemeyi onaylamadan önce oluşturulan SQL deyimlerini dikkatlice inceleyin.
Şemaları eşitle
İş akışı dört aşamadan oluşur: bileti yapılandırma → şemaları analiz etme → onay alma → eşitlemeyi yürütme.
Başlamadan önce: Şema eşitlemeyi yoğun olmayan saatlerde planlayın. Eşitleme süresi, tablo sayısına ve mevcut görev kuyruğuna bağlıdır.
DMS konsolu V5.0 üzerinde oturum açın.
-
Üst gezinme çubuğunda Database Development > Schema Change > Schema Synchronization seçeneklerini seçin.
NotBasit modda, sol üst köşedeki
simgesinin üzerine gelin ve All Features > Database Development > Schema Change > Schema Synchronization yolunu izleyin. -
Table Sync Tickets sayfasında aşağıdaki parametreleri yapılandırın:
UyarıIgnore seçeneğini belirlemek, DDL deyimlerinin atlanmasına ve eksik veya tutarsız bir eşitlemeye neden olabilir. Bu seçeneği belirlemeden önce dikkatlice inceleyin.
Parametre Açıklama Source database Şema eşitleme için kaynak veritabanı. Aramak için bir anahtar sözcük girin. (İsteğe bağlı) Bir şema version number belirtin — varsayılan olarak en son şema kullanılır. Bkz. Şema sürümlerini yönet. Destination database Şema eşitleme için hedef veritabanı. Aramak için bir anahtar sözcük girin. (İsteğe bağlı) Bir şema version number belirtin — varsayılan olarak en son şema kullanılır. Bkz. Şema sürümlerini yönet. Synchronized table Eşitlenecek tablolar. Kaynak ve hedef tablo adlarını belirtmek için Partial Tables (hedef varsayılan olarak kaynakla aynı ada sahiptir) veya kaynak veritabanındaki tüm tabloları eşitlemek için All Tables seçeneğini belirleyin. Whether to ignore error SQL yürütme sırasında hataların nasıl ele alınacağı. Not Ignore bir hata oluştuğunda yürütmeyi durdurur. Ignore başarısız olan deyimi atlar ve geri kalanlarla devam eder. Submit düğmesini tıklayın. DMS şema analizini başlatır. Analiz sırasında şemalar değişirse Schema Analysis adımında Re-analyze seçeneğini tıklayın.
Submit for Approval düğmesini tıklayın ve isteğin onaylanmasını bekleyin.
Onaylandıktan sonra Submit and Synchronize to Target Database düğmesini tıklayın.
-
Çalıştırılacak SQL deyimlerini inceleyin. Confirm Synchronization düğmesini tıklayın. Yürütme başladıktan sonra SQL deyimleri, yürütme süresi ve zamanlama ayrıntıları dahil olmak üzere işlem günlüklerini görüntülemek için Details düğmesini tıklayın.
UyarıDevam etmeden önce herhangi bir alan silme işlemini kontrol edin — bir alanın kaldırılması verilerini kalıcı olarak siler.
Synchronized. mesajı göründüğünde, şemalar hedef veritabanına başarıyla eşitlenmiştir.
Sonraki adımlar
Şema sürümlerini yönet — şema değişikliklerini sürümleyin ve geri alın
Sahip olunan izinleri görüntüle — şema eşitleme için gereken izinleri doğrulayın veya talep edin