Data Management (DMS) içindeki gölge tablo senkronizasyonu, kaynak tabloların şemasına dayanarak veritabanında otomatik olarak gölge tablolar oluşturur. Gölge tablolar, kaynak tablolarının yapısını yansıtır ancak yapılandırılabilir bir ön ek veya son ek ile adlandırılır; bu da üretim verilerini etkilemeden uçtan uca stres testi yapmak için güvenli hale getirir. DMS, tek seferlik ve zamanlanmış senkronizasyonu destekler.
Ön koşullar
Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:
-
Aşağıdaki türlerden birine sahip bir kaynak veritabanı:
MySQL: ApsaraDB RDS for MySQL, PolarDB for MySQL, ApsaraDB MyBase for MySQL, PolarDB-X, AnalyticDB for MySQL V3.0 ve diğer kaynaklardan gelen MySQL veritabanları
SQL Server: ApsaraDB RDS for SQL Server, ApsaraDB MyBase for SQL Server ve diğer kaynaklardan gelen SQL Server veritabanları
PostgreSQL: ApsaraDB RDS for PostgreSQL, PolarDB for PostgreSQL, ApsaraDB MyBase for PostgreSQL, AnalyticDB for PostgreSQL ve diğer kaynaklardan gelen PostgreSQL veritabanları
MariaDB: ApsaraDB RDS for MariaDB ve diğer kaynaklardan gelen MariaDB veritabanları
ApsaraDB for OceanBase MySQL modunda
PolarDB for PostgreSQL (Oracle ile uyumlu)
Kaynak veritabanı üzerinde sorgulama ve değişiklik izinleri. Bkz. Sahip olunan izinleri görüntüleme
Gölge tabloları oluşturmak istediğiniz veritabanı için Enable execution capability güvenlik kuralının etkinleştirilmiş olması. Bkz. Çalıştırma yeteneğini etkinleştirme
Enable execution capability güvenlik kuralı olmadan, DMS şemaları karşılaştırabilir ancak değişiklikleri uygulamak için SQL deyimlerini çalıştıramaz.
Gölge tablolar oluşturun
DMS konsolu V5.0 adresinde oturum açın.
-
Üst gezinme çubuğunda Database Development > Schema Change > Shadow Table Synchronization seçeneklerini seçin.
Basit modda, sol üst köşedeki simgenin üzerine gelin ve All Features > Database Development > Schema Change > Shadow Table Synchronization seçeneklerini belirleyin.
-
Table Sync Tickets sayfasında aşağıdaki parametreleri yapılandırın:
Parametre Açıklama Source Database Gölge tabloların oluşturulacağı veritabanı. Hesabınızın bu veritabanı üzerinde sorgulama ve değişiklik izinlerine sahip olması gerekir. Bkz. Sahip olunan izinleri görüntüleme. Prefix / Suffix Gölge tablo adını oluşturmak için her kaynak tablo adına eklenen ön ek veya son ek. Biçim: <Prefix>+ kaynak tablo adı veya kaynak tablo adı +<Suffix>. Varsayılan:__test_ön eki,__test_<source_table_name>gibi adlar üretir.Synchronized Table Senkronize edilecek tabloların kapsamı. Partial Tables: yalnızca seçtiğiniz tabloları senkronize eder. All Tables: veritabanındaki tüm tabloları senkronize eder. Synchronization Policy Senkronizasyonun ne zaman çalıştırılacağı. Synchronize Now: bileti gönderdikten hemen sonra bir kez çalıştırır. Scheduled Synchronization: crontab ifadesi kullanarak tanımladığınız yinelenen bir programa göre çalıştırır. Minimum aralık 1 saattir. Varsayılan program her gün 02:00'da çalışır. Whether to Ignore Error DMS'nin SQL çalıştırma hatalarını nasıl ele aldığı. Not Ignore: bir hata oluştuğunda yürütmeyi durdurur. Ignore: başarısız olan deyimi atlar ve kalan deyimleri çalıştırmaya devam eder. Submit öğesine tıklayın. DMS, hangi SQL deyimlerinin gerekli olduğunu belirlemek için kaynak tablo şemalarını karşılaştırarak şema analizine başlar. Bu adım sırasında şemalar değişirse, analizi yenilemek için Şema Analizi adımında Re-analyze seçeneğine tıklayın.
Submit for Approval seçeneğine tıklayın ve biletin onaylanmasını bekleyin. Bu adım, bileti kuruluşunuzun onay iş akışından geçirir. DMS, bilet onaylanana ve sonraki adıma geçene kadar herhangi bir SQL deyimi çalıştırmaz.
Submit and Synchronize to Target Database seçeneğine tıklayın.
Çalıştırılacak SQL deyimlerini inceleyin, ardından Confirm Synchronization seçeneğine tıklayın. DMS, şemaları senkronize etmek için SQL deyimlerini çalıştırır. 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 seçeneğine tıklayın.
Crontab ifadeleri
Yinelenen senkronizasyonu zamanlamak için bir crontab ifadesi kullanın. Bir ifade, boşlukla ayrılmış altı alandan oluşan bir dizedir:
Second Minute Hour Day Month Week
Alan referansı
| Alan | Geçerli değerler | Özel karakterler |
|---|---|---|
| Second | 0–59 | -*/ |
| Minute | 0–59 | -*/ |
| Hour | 0–23 | -*/ |
| Day | 1–31 | -*?/LWC |
| Month | 1–12 veya JAN–DEC | -*/ |
| Week | 1–7 veya SUN–SAT (1 = Pazar, 2 = Pazartesi, ..., 7 = Cumartesi) | -*?/LC# |
Day veya Week alanlarından biri için değer belirtin, ikisi için birden değil. Kullanılmayan alanı ? olarak ayarlayın.
Özel karakterler
| Karakter | Açıklama | Örnek |
|---|---|---|
* |
Tüm değerler | Dakika alanında * kullanımı her dakika çalıştırır |
? |
Herhangi bir değer (yalnızca Day ve Week) | Belirtmediğiniz Day veya Week alanı için yer tutucu |
- |
Aralık | Dakika alanında 5-20 kullanımı, 5. dakikadan 20. dakikaya kadar her dakikada çalıştırır |
/ |
Başlangıç ve aralık | Dakika alanında 5/20 kullanımı, 5., 25. ve 45. dakikalarda çalıştırır |
, |
Liste | Dakika alanında 5,20 kullanımı, 5. ve 20. dakikalarda çalıştırır |
L |
Son gün veya hafta içi günü (yalnızca Day ve Week) | Hafta alanında 5L kullanımı, ayın son Perşembe gününde çalıştırır |
W |
En yakın hafta içi günü Pzt-Cuma (yalnızca Day) | 5W kullanımı, ayın 5'ine en yakın hafta içi gününde çalıştırır |
LW |
Ayın son hafta içi günü | — |
# |
Ayın N. hafta içi günü (yalnızca Week) | 4#2 kullanımı, ikinci haftanın Çarşamba gününde çalıştırır (4 = Çarşamba, 2 = ikinci hafta) |
Örnekler
| İfade | Zamanlama |
|---|---|
0 0 23 ? * 7,1 |
Her Cumartesi (7) ve Pazar (1) günü saat 23:00'te |
0 30 9 5,15,25 * ? |
Her ayın 5., 15. ve 25. günlerinde saat 09:30'da |
0 0 0 */2 * ? |
İki günde bir saat 00:00'da |
13 13 15 20 * ? |
Her ayın 20. günü saat 15:13:13'te |