7/24 çok kullanıcılı ortamda SQL Server 2014 şema değişiklikleri


12

7/24 kullanılabilir olması gereken bir veritabanı çalıştırmak için SQL Server 2014 Enterprise yüklü. Veritabanımız yeterince büyük (200gb +). Ayrıca, yeni verileri okumak, güncellemek veya eklemek için her dakika veritabanımıza vuran birçok hizmetimiz var. Müşterilerimiz için "etkin" yeniden dağıtım özelliği sağlamak ve günlük güncellemelerimizi (.net ve şema güncellemeleri) istemciler için şeffaf hale getirmek istiyoruz. Uygulamamızın ikili dosyalarını güncellemek için yük dengeleyicili kümeye dayalı bir çözüm bulduk, ancak yine de veritabanı güncelleme kurulum süreci ve bu sorunu çözmek için en iyi uygulamalar hakkında bazı yanlış anlaşılmalarımız var.

Şema değişiklikleri için bir sunucuyu aşağı indirin, şema değişikliklerini uygulayın, yedekleyin ve ardından ikinci örneğe aynı değişiklikleri uygulayın. SQL Server araçlarıyla gerçekleştirilebilir ve bu yaygın bir yaklaşım mıdır? Sunucu yedeklendikten sonra verileri nasıl senkronize edebilirim? Yoksa tamamen yanlış yöne mi bakıyorum ve daha iyi çözümler var mı?

Yaygın Şema değişikliklerimiz: sütun ekleme / bırakma, saklı yordam ekleme / silme


Şu anki SQL düzeniniz nedir? Kümelenmiş? Her zaman? Yansıtmalı? Tek bir örnek mi?
LowlyDBA

Günümüzde tek bir
örneğimiz

4
Mavi-yeşil yaklaşımı takip etmelisiniz, bu şekilde canlı bir sisteme (yeşil) sahip olabilir ve aşamalandırmada (mavi) yükseltmeyi yapabilir ve ardından rolleri değiştirebilirsiniz. AlwaysON kullanarak uyguladığımız şey bu ve bizim için çalışıyor - neredeyse aynı senaryo. Uygun planlama, uygulama ve test gerektirir.
Kin Shah

Sütun silme şeması değişiklikleri için lütfen bana daha ayrıntılı bir senaryo verebilir misiniz?
Shmitov Michael

Önceki yorumun açıklaması, AlwaysOn altyapısında birincil (S1) / ikincil (S2) düğümleri değiştirdim, daha sonra Replica'daki şemadan bazı sütunları kaldırmaya karar verdim (S1, geçişten önce birincildi), ancak yine de bazı çoğaltma verileri alabilirim S2 tablodaki sütun ile .... nasıl bu sorunu ele alabilirim?
Shmitov Michael

Yanıtlar:


1

Aşağıda biraz daha planlama ve test yapılması gerekecektir.


Mavi-Yeşil Konsept:


Mavi-Yeşil Konsept'in özü, üretiminizi 2 ortama bölmektir ve bunlar her zaman aynıdır (veri senkronizasyonu).

  1. Mavi (Geçerli), şemanın / yapının veya ürünün geçerli sürümüne sahip olacak ve "CANLI" ortamınız olacaktır.

  2. Aynı zamanda Yeşil, şemanızı / yapınızı veya ürününüzü SONRAKİ sürüme yükselteceğiniz, tam bir regresyon testi yapacağınız ve iş kullanıcılarınız tarafından imzalanacağınız evreleme / test ortamınız olacaktır. Mutlu olduktan sonra, bir kesim döneminde, Yeşil'i "CANLI" ortamınız olarak tanıtacak ve Maviyi bir sonraki sürüm için bir ön ürün / evreleme veya test olarak indireceksiniz.

Bu şekilde, çok daha az kesinti süresi yaşanır ve canlı bir sistemde (yükseltme yaptığınız için bakım penceresinde olan) dağıtım hatası riski büyük ölçüde en aza indirilir. Ayrıca, Blue-Green yaklaşımını takiben, LIVE ve PREVIOUS sürümü arasında salınacak ve bir sonraki sürüm için sahnelenecek.

Yine, bu daha fazla donanım / lisanslamanın yanı sıra planlama ve test gerektirecektir.

Adımların çoğu DACPAC'ler ve PowerShell kullanılarak otomatikleştirilebilir. Ayrıca, bir sunucuya birden fazla örnek yüklüyorsanız, Mavi ve Yeşil arasında geçiş yaparken Bellek ayarlarını yeniden dengelediğinizden emin olun. LIVE ortamı Pasif ortamdan daha fazla hafıza alır.

Mevcut ortamımda, 2 haftada bir kodu test etme ve işten çıkış için bol miktarda zamanla tanıtmamızı sağlayan Çevik Kod Dağıtımı için Mavi / Yeşil Model uyguladık. Ayrıca, bir şey korkunç bir şekilde yanlış giderse geri almak için bir esinti. Dacpacs ve PowerShell kullanarak dağıtım işlerinin çoğunu otomatikleştirdik.

resim açıklamasını buraya girin (Görüntü kaynağı)

Ayrıca Grant Fritchey'in Geri Alma ve Kurtarma Sorunlarını Giderme makalesine bakın ; Zorluklar ve Stratejiler


0

Veritabanınız çoğaltılmazsa, ekleme ve bırakma sütunları gerçekten hızlı çalışır. Çünkü sütun ekle, SQL'in oluşturduğu boş bir konumdur. Bırakma sütunu referansı siler.

Aksi takdirde, üzerinde bir kısıtlama veya dizin varsa dikkatli olun.

ADD/DELETEprosedürler sadece yürütme kendisi üzerinde etkisi olacaktır. Tavsiye, üzerinde herhangi bir değişiklik yeniden derleme çalıştırmak önce

sp_recompile 'myproc'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.