Tüm Ürünler
Search
Belge Merkezi

Data Management:Lockless şema değişikliklerini lockless değişim biletleri ile gerçekleştirin

Son Güncelleme:Oct 04, 2026

Veritabanı tablosu şemasını değiştirirken tablo kilitleme sorunlarını önlemek için Data Management (DMS) lockless şema değişikliği özelliğini sunar. Bu özellik, yerel çevrimiçi Data Definition Language (DDL) işlemleri sırasında tablo kilitlerinden ve birincil ile yedek örnekler arasındaki çoğaltma gecikmelerinden kaynaklanabilecek iş kesintilerini önlemeye yardımcı olur. Bu konuda, lockless değişim bileti göndererek lockless şema değişikliğinin nasıl yapılacağı açıklanmaktadır.

Önkoşullar

  • Veritabanı türü RDS for MySQL, PolarDB for MySQL, MyBase for MySQL veya başka bir MySQL kaynağı olmalıdır.

    Not

    Diğer kaynaklar, diğer cloud sağlayıcılarından gelen veritabanlarını veya kendi yönettiğiniz veritabanlarını ifade eder.

  • Veritabanı altyapısı InnoDB, RocksDB veya X-Engine olmalıdır.

  • Veritabanı için ikili günlük kaydı etkinleştirilmiş olmalıdır.

    Not
    • PolarDB for MySQL için ikili günlük kaydı varsayılan olarak devre dışıdır. Daha fazla bilgi için bkz. Enable binary logging.

    • İkili günlük biçimi ROW olmalıdır. Veritabanı daha önce MIXED biçimini kullanmışsa, biçimi ROW olarak değiştirmeniz gerekir. Ardından, DMS'de lockless şema değişikliği yapmadan önce veritabanı sunucusunu yeniden başlatmanız veya tüm eski bağlantıları sonlandırmanız gerekir.

  • örneğin kontrol modu Stable Change veya Security Collaboration olmalıdır. Daha fazla bilgi için bkz. View control modes.

  • Lockless şema değişikliği, example için etkinleştirilmiş olmalıdır.

Notlar

  • Okuma/yazma izinlerine sahip bir veritabanı hesabı veya yüksek ayrıcalıklı bir veritabanı hesabı kullanmanız gerekir. Mevcut veritabanı hesabının yeterli izni yoksa aşağıdaki işlemlerden birini yapabilirsiniz:

    • Veritabanı hesabına izinler atayın. Daha fazla bilgi için bkz. Manage database accounts and permissions.

      Not

      Veritabanı hesabına ALL PRIVILEGES iznini veya aşağıdaki okuma/yazma izinlerini atayın:

      ALTER, CREATE, DELETE, DROP, INDEX, INSERT, LOCK TABLES, SELECT, TRIGGER, UPDATE, REPLICATION CLIENT ve REPLICATION SLAVE.

    • Veritabanı hesabını değiştirin. Daha fazla bilgi için bkz. Edit instance information.

  • Veritabanında yeterli disk alanı bulunduğundan emin olun. Verileri kopyalamak için hedef veritabanında geçici bir tablo oluşturulur. Kullanılabilir disk alanının, hedef tablonun boyutunun iki katından fazla olduğundan emin olun. Yetersiz disk alanı örneğin kilitlenmesine neden olabilir. Daha fazla bilgi için bkz. Database performance.

  • Hedef tablonun bir birincil anahtarı veya benzersiz anahtarı olmalıdır. Lockless şema değişikliği sırasında, parçalı tam veri kopyalama ve sonraki artımlı güncellemeler için birincil anahtar veya benzersiz anahtar kullanılır.

    Not

    Hedef tabloda yalnızca birincil anahtar veya yalnızca benzersiz anahtar varsa, şema değişikliği sırasında anahtarın güncellenmesi görevin başarısız olmasına neden olur.

  • Hedef tablo adı 56 karakterden uzun olamaz.

  • DMS içindeki lockless şema değişikliği özelliği, PolarDB-X (PolarDB-X 1,0 ve PolarDB-X 2,0 dahil), RDS for PostgreSQL veya MySQL dışı diğer veritabanları için desteklenmez.

  • Tablo şemasını değiştirmek için ALTER TABLE sözdizimini kullanın. CREATE INDEX gibi sözdizimleri desteklenmez.

  • PolarDB örnekleri için, orijinal tablodaki son kilit süresi, tablo anahtarlama kilit zaman aşımından çok daha uzun olabilir. Bunun nedeni, salt okunur düğümlerde uzun süre çalışan işlemlerin kilit aldıktan sonra birincil düğümü etkileyebilmesidir. Bu durum, birincil düğümdeki DDL işleminin tamamlanmasını engeller ve uzun süreli tablo kilitlerine yol açabilir. Bunu parametreleri değiştirerek önleyebilirsiniz.

Yordam

Not

Aşağıdaki adımlarda Security Collaboration modundaki bir örnek kullanılmıştır.

  1. DMS 5.0 konsolunda oturum açın.

  2. Üst gezinme çubuğunda Database Development > Data Change > Lock-free Change seçeneğini belirleyin.

    Not

    Basit modda DMS konsolunu kullanıyorsanız, konsolun sol üst köşesindeki 2023-01-28_15-57-17.png simgesinin üzerine gelin ve All Features > Database Development > Data Change > Lockless Change seçeneğini belirleyin.

  3. Lockless değişim biletini yapılandırın. Aşağıdaki tabloda bazı parametreler açıklanmaktadır.

    Daha fazla bilgi için bkz. Yordam.

    Parametre

    Açıklama

    Database

    Bir veya daha fazla hedef veritabanını arayın ve seçin.

    • My Permissions: Yalnızca değişiklik iznine sahip olduğunuz veritabanlarını arayabilir ve seçebilirsiniz.

    • All: Meta veri erişim denetimi etkinleştirilenler hariç tüm veritabanlarını arayabilir ve seçebilirsiniz.

      Not

      Hedef veritabanı için değişiklik izniniz yoksa üst menü çubuğunda Security And Disaster Recovery (DBS) > Permission Center > Permission Ticket seçeneğini belirleyin. Permission Ticket sayfasında gerekli izinleri istemek için Request Permission > DB Permission seçeneğine tıklayın.

    Execution Method

    Bilet için bir yürütme yöntemi seçin:

    • Onaylandıktan sonra işlemi gönderen kişi yürütür.

    • Onaylandıktan sonra otomatik olarak yürütülür.

    • Son onaylayıcı tarafından yürütülür.

    Not

    Yöneticiler, yürütme yöntemlerinin listesini Operations Management > Configuration Management bölümünde değiştirebilir. Daha fazla bilgi için bkz. Configuration management.

    Affected Rows

    Bu güncellemeden etkilenen veri satırlarının tahmini sayısı.

    Change SQL

    ALTER TABLE veya OPTIMIZE gibi DDL deyimlerini girin.

    Not

    Data Manipulation Language (DML) deyimleri girerseniz, lockless veri değişikliği görevi yapıyorsunuz demektir. Daha fazla bilgi için bkz. DML lockless change.

  4. Submit Ticket seçeneğine tıklayın.

    Sistem otomatik olarak bir SQL ön denetimi yapar. Ön denetim başarısız olursa, hata nedenine göre SQL deyimlerini değiştirmek için Modify SQL seçeneğine tıklayın ve ardından bileti tekrar gönderin.

  5. Bilet onaylandıktan sonra bilet ayrıntıları sayfasındaki Execution bölümüne gidin ve Execute Change seçeneğine tıklayın.

  6. Görev yürütme parametrelerini yapılandırın.

    Yapılandırma Öğesi

    Açıklama

    Execution Strategy

    • Running immediately: Varsayılan seçenek. Confirm Execution seçeneğine tıkladıktan hemen sonra görev yürütülür.

    • Confirm Execution: Görev için bir başlangıç zamanı seçin. Confirm Execution seçeneğine tıkladıktan sonra görev belirtilen zamanda çalışır.

    Not

    Zamanlanmış bir görevin gerçek yürütme zamanında ±1 dakikalık bir hata payı olabilir.

    Schedule

    Görev için bir bitiş zamanı belirtin. Görev belirtilen bitiş zamanına kadar tamamlanmazsa sistem kalan SQL görevlerinin yürütülmesini durdurur. Bu, görevlerin yoğun saatlerde çalışarak iş operasyonlarını etkilemesini önler.

    Not

    Görevin gerçek bitiş zamanında ±1 dakikalık bir hata payı olabilir.

    Confirm Execution

    Bu denetimin etkinleştirilmesi, birincil ve yedek örnekler arasında gerçek zamanlı veri senkronizasyonu, yüksek kullanılabilirlik ve arızalardan hızlı kurtarma sağlar.

    Specify End Time

    SQL deyimlerinin toplu halde yürütülmesine yönelik ilke.

    • Primary/Secondary Node Check: DMS, görevdeki tüm SQL deyimlerini otomatik olarak yürütür.

    • Canary Release Type: İlk SQL deyimi başarıyla yürütüldükten sonra DMS görevi otomatik olarak duraklatır. Devam etmek için Yeniden Dene seçeneğine tıklayın. Kalan SQL deyimleri daha sonra ek duraklamalar olmadan tek seferde yürütülür.

    • No Canary Release: Her SQL deyimi yürütüldükten sonra görev otomatik olarak duraklar. Sonraki SQL deyimini yürütmek için Yeniden Dene seçeneğine manuel olarak tıklamanız gerekir.

  7. Suspend after Executing the First SQL Statement seçeneğine tıklayın.

    DMS görevi çalışırken istediğiniz zaman duraklatabilirsiniz. Duraklatılan bir görev yeniden başlatıldığında en baştan itibaren yeniden başlar.

    • Suspend after Executing a SQL Statement bölümünde görev yürütme durumunu, görev ayarlarını, ayrıntıları ve zamanlama günlüklerini görüntüleyebilirsiniz.

    • Lockless değişikliğin ilerleme durumunu ayrıca Confirm Execution > Execution bölümünde de görüntüleyebilirsiniz. Daha fazla bilgi için bkz. View the progress of a lockless change.

Bir örnek için lockless şema değişikliğini etkinleştirdikten sonra, o örnek üzerinde yaptığınız aşağıdaki şema değişikliği biletleri ve görevleri için de lockless yöntemi öncelikli olarak kullanılır: