Neden bir veritabanını çevrimdışına almalıyım?


15

Hangi nedenlerle ve hangi durumlarda "Çevrimdışı Olun" / ALTER DATABASE dbName SET OFFLINEözelliğini kullanırsınız.

Çevrimdışı bir veritabanıyla hangi görevleri gerçekleştirebilirsiniz? Yalnızca çevrimdışı bir veritabanıyla hangi görevleri gerçekleştirebilirsiniz?

Yanıtlar:


16

MDF dosyasını çevrimiçi duruma getirmek için başka bir sunucuya taşıyabilirsiniz.


4
+1 veya başka bir sürücü / klasör / SAN ...
Chris S

"Çevrimdışına al" ın tek kullanımı bu mu?
Greg B

5
Hayır, başka nedenleri de düşünebilirim. Birden çok uygulama için birden çok veritabanınız olduğunu düşünün. Bu uygulamalardan biri, ön uç uygulamasının yükseltilmesini (web uygulaması, istemci, bilen.) Yükseltme sırasında veritabanına erişimi herkes tarafından devre dışı bırakmak istiyorsunuz, ancak sunucunun tamamını kaldırmak istemiyorsunuz çünkü diğer veritabanları. Çevrimdışı olmanız için bir neden olabilir. Eminim hayal gücünüz başka nedenlerle de ortaya çıkabilir.
mfinni

Hayal gücüm korktum, dolayısıyla soru. Çevrimdışıyken bir veritabanını değiştirebileceğinizi düşünmüyordum, bu yüzden çevrimdışı duruma getirmenin yükseltme işlemine nasıl yardımcı olabileceğini görmüyorum
Greg B

2
Greg B - i özellikle DB kendisi değil, ön uç yükseltme dedi. Açıkladığım senaryoda, DB değişmeden kalır. Geçiş sırasında kimsenin erişmediğinden emin olmak çevrimdışı olur.
mfinni

18

Geliştirme / hazırlama ortamlarında, uygulamada veritabanının doğru örneğine bağlandığınızdan ve herhangi bir yerde jaklı bağlantı dizeniz olmadığından emin olmak için bazen bir veritabanını çevrimdışına almak yararlı olabilir.

Bununla birlikte, bu durumda farklı ortamlar için farklı veritabanı adlarına ve bağlantı dizelerinizi otomatik olarak yapılandıracak bir oluşturma işlemine sahip olmak çok daha iyi bir fikirdir ...

Benzer şekilde, bazı nedenlerden dolayı tekrar çevrimiçi olmaları gerektiği için veritabanlarını devre dışı bırakmadan önce bir süre çevrimdışına almayı seviyorum. Onlardan kurtulmak istediğimde veritabanlarımdan birine girmediğim kancaları olan devs tarafından birkaç kez ısırıldım. Çevrimdışı olması, silmek ve gerekirse geri yüklemekten çok daha az zorlayıcı ve daha az zaman alıcıdır.

Başka bir şey acil durum koruması olacaktır. Bunu daha önce yapmak zorundaydım. Bazen uygulamanızda kötü amaçlı olmasa bile, veritabanınızdaki verileri bozmayacak kötü bir hata bulunur. Veritabanını çevrimdışına almak, hatayı tanımlayana kadar kanamayı durdurmanın hızlı bir yoludur. Daha sonra, veritabanındaki hasarı değerlendirmek için çevrimiçi duruma getirebilirsiniz.


2
Silmeden önce çevrimdışı olma fikrini seviyorum
Greg B

8
Aynen. Üretim öncesi ortamlarımızda dört bin-ish veritabanım var. Kimin neye sahip olduğunu bilmek bazen zor olabilir. Çevrimdışı olmak ve gıcırtıları beklemek bazen tek seçenektir.
Michael Green

6

Buradaki yanıtların bazıları size erişimi kısıtlı bir veritabanı ile neler yapabileceğiniz konusunda bazı fikirler verebilirken, çevrimdışı olan bir veritabanı ile pek bir şey yapılamaz. Verileri güncelleyemez, yükseltemez, ekleyemez veya silemezsiniz.


2
Doğru. Veritabanıyla çok şey yapabilmek istiyorsanız, onu tek kullanıcı moduna sokmanız daha iyi olur. Sonra yine de erişimi kısıtlarsınız ama çok daha fazlasını yapabilirsiniz.
Sean Howat

Yeniden adlandıramazsınız!
Dima Fomin

0

Genel nedenim, DBA'lara numaralandırmak istediğimden daha sık satmam gereken sebep ...

"SAN'ın onarılması gerekiyor ... ve hayır sadece bir sürücüyü çalışırken değiştiremiyorum, arka panel / denetleyiciler hatalı."

DB örnekleri diskleri kaybolduğunda çok kötü davranır.

Bu nedenle, SAN'ı çevrimdışına almadan önce SQL örneklerini kapattım ve ardından kaynaklara karşı çıkmamaları için bunları teker teker geri getirdim - ilk örnek yukarı tüm küme kaynaklarını alır ve Active DB düğümü haline gelir, sonraki örnekler çalışır Pasif düğümler olarak.


-3

Bunu yapmanız için birçok neden var ..

Örneğin,

consider changing or upgrading the actual database program/binary...
consider changing or upgrading the schema or tables..
consider changing or upgrading index's..

En önemli nokta ..

Is taking a backup.. to get a perfect snapshot in time.. 

(bazı DB'lerde tüm tablolarda bir kilit oluşturursunuz)


+1, ayrıca DB'yi birleştirmek veya küçültmek için eski DBMS.
Chris S

1
re: "şemayı değiştirme veya yükseltme", çevrimiçi kitaplardan "ÇEVRİMDIŞI Veritabanı kapatıldı, temiz bir şekilde kapatıldı ve çevrimdışı olarak işaretlendi. Veritabanı çevrimdışıyken değiştirilemez." Bu durumda şemayı nasıl yükseltebilirsiniz?
Greg B

Özür dilerim ... etkin olmayan bir veritabanında değişiklik yapmaya atıfta bulunuyorum .. MySQL takipçisiyim, bir yükseltme, çevrimdışı olarak işaretlenmiş bir veritabanında gerçekleşecekti, bu yüzden gerekli değişiklikten başka herhangi bir şeyle ilgili herhangi bir eşzamanlılık problemi yoktu. Belki bunu o zaman bırakabiliriz ..: D
Arenstar

2
Gerçek veritabanları, gerçek yedeklemeleri destekler. Zaman içinde mükemmel bir yedekleme yapmak için nything almanız gerekmez, ancak bir oyuncak ofline. Bir kilit veya başka bir aptal mekanizma gerektiren bir db bir oyuncaktır. Gerçekten mi. Tüm büyük veritabanlarının yoğun kullanımda olduğu gibi tam yedeklemelerle ilgili bir sorunu yoktur.
TomTom
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.