Üretimde başına gelen en kötü veritabanı kazası nedir?

oy
5

Örneğin: nereye madde eklemek unuttum çünkü müşteri tablonun tüm satırları güncellenmesi.

  1. o farkında ve iş arkadaşlarınızla veya müşterilere raporlama, nasıl biriydi?
  2. Öğrenilen dersler nelerdir idi?
Oluştur 15/08/2008 saat 10:13
kullanıcı
Diğer dillerde...                            


18 cevaplar

oy
0

Ben canlı bir veritabanı düştü ve onu sildi.

Ders: Eğer SQL biliyorum sağlamak - ve size şeyler dokunmak yedekleme önce emin olun.

Cevap 15/08/2008 saat 10:15
kaynak kullanıcı

oy
4

Bir genç DBA yapmak anlamına geliyordu:

delete from [table] where [condition]

Bunun yerine yazdığınız:

delete [table] where [condition]

Hangi geçerli T-SQL ama temelde tamamen bit yerde [koşul] görmezden (o MSSQL 2000/97 üzerinde ve eskiye kıyasla en azından - Ben hangi unutmak) ve tüm tabloyu siliyor.

Bu eğlenceliydi :-/

Cevap 15/08/2008 saat 10:20
kaynak kullanıcı

oy
0

Ben Oracle dosyaları (terminoloji? O uzun zaman önce oldu) log ve elle kağıt bilet tekrar yazılmasındaki gerekiyordu bir hafta ticaret verilerini, kayıp yinelemek anlamadı keşfetti.

Orada was bir umut ışığı - Ben girilmesi geçirdiği hafta sonu boyunca, ben dramatik bundan sonra geliştirilmiş benim ticaret girişi ekranının useability, hakkında çok şey öğrendim.

Cevap 15/08/2008 saat 10:22
kaynak kullanıcı

oy
11

Ben en kötü hata olduğunu düşünüyorum

truncate table Customers
truncate table Transactions

Ben yaklaşık yarım silmek için ikinci, patronum gittim farkettim ... Ben dışarı benim yerel kopyasını silmek istedim, oturum ne MSSQL sunucusu önemli ölçüde daha uzun alıyordu tanıdık "ler OH ** t" görmedik visibily beyaz ve sadece ne yaptığını sordu. Yaklaşık yarım mintue sonra sitemiz monitör fındık gitti ve bize site kapalı olduğunu söyleyerek e-posta göndererek başladı.

Ders öğrenildi? Hiçbir zaman uzun absolutly gerekenden daha DB yaşamak açık bir bağlantı tutun.

Sadece çok yedeklerden veri geri 4 am kadar kadar oldu! Patronum benim için üzüldü ve bana yemek aldım ...

Cevap 15/08/2008 saat 10:28
kaynak kullanıcı

oy
0

çoğu insan için en kötü durum senaryosu üretim veri kaybı olduğunu, ancak gece yedekleri çalışan veya DR sitesine veri kopyalayan değilseniz, o zaman onlar olsun her şeyi hak!

@ Keith T-SQL, bir DELETE için anahtar kelime GELEN isteğe bağlı değildir? Bu tabloların her ikisi de aynı şeyi yapmak ...

Cevap 15/08/2008 saat 10:30
kaynak kullanıcı

oy
5

Ben küçük bir e-ticaret şirketi için çalışan, 2 geliştiriciler var ve DBA bana geliştiricileri biri olarak. biz kaynak denetimi yoluyla koymak biz değiştirdik prosedürleri saklanan ve resmi olarak dağıtım rutin kurulum varsa ben anında üretim verilerini güncelleme alışkanlığı normal değilim.

neyse Eh, bir kullanıcı toplu tesislerinin bir demet güncellenmesi, lütfen iletişim veritabanına yapılan bir güncelleme ihtiyacı bana geldi. Bu yüzden gibi, test ortamımızda şey sorgusu yazdı

update facilities set address1 = '123 Fake Street'
    where facilityid in (1, 2, 3)

Bunun gibi bir şey. Testte bunu Ran, 3 satır güncellendi. O 100000 satırları yürütmek ve güncellenen 5 saniye sürdü gibi üretim sql kutuyu Terminal hizmetlerinde yapıştırılan, panoya kopyalanan, dehşet içinde izledi, koştum. Bir türlü ilk satırı değil ikinci kopyalanamaz ve ben olarak dikkat etmiyordum CTRL+ V, CTRL+ E'd.

Benim DBA eski Yunan beyefendi, muhtemelen tanıştım grumpiest kişi heyecan değildi. Neyse neyse o alan görüntüleme amacıyla (ve fatura / nakliye) için sadece gerçekten, biz bir yedek vardı ve herhangi bir sayfayı kırmadılar.

öğrenilen Ders muhtemelen bazı diğerleri de kopyalama ve yapıştırma şeyle ödeme dikkat edildi.

Cevap 15/08/2008 saat 12:17
kaynak kullanıcı

oy
0

Başıma gelen en kötü şey, bir üretim sunucusu HD tüm alanı tüketmek olmasıydı. Ben veritabanı dosyaları görmek ve günlük yaklaşık 10 Gb yüzden ben bir günlük dosyası trunc istediğinizde hep ne yapmaya karar olduğunu görmek yüzden SQL Server kullanıyordum. Ben günlük dosyasını silip yeniden takmak bir Ayrıl 'yaptı. Eh ben günlük dosyası düzgün kapatmak değilse bu prosedür çalışmaz farkındayız. bu yüzden bir mdf dosyası ve hiçbir günlük dosyası ile bitirmek. Neyse ki ben kurtarma olarak veritabanını geri ve başka bir veritabanına taşımak için bir yol olsun, Microsoft sitesine gitti.

Cevap 15/08/2008 saat 12:23
kaynak kullanıcı

oy
2
update Customers set ModifyUser = 'Terrapin'

Nerede maddesini unuttum - oldukça masum, ama 5000+ müşterilerle masaya, benim adım bir süre her kayıt üzerinde olacak ...

Ders: Kullanım işlem işlemek ve geri alma!

Cevap 15/08/2008 saat 13:20
kaynak kullanıcı

oy
3

Bir keresinde çıkıldı asla bir güncelleme imleci yazmayı başardı. 2M + Satır tabloda. kilitler sadece artıran ve bu 16 çekirdekli kadar 8GB RAM yükseltilmiş (2002!) kutu aslında (mavi ekran çeşitli) durma noktasına.

Cevap 15/08/2008 saat 13:39
kaynak kullanıcı

oy
4

Yaklaşık 7 yıl önce, geç çalıştıktan sonra bir müşterinin DB için bir değişiklik komut dosyası üretiyordu. Ben sadece depolanmış prosedürleri değişmişti ama SQL oluştururken kontrol ettim "komut dosyası bağımlı nesneleri" vardı. Benim yerel makinede koştum ve tüm iyi çalıştığı görüldü. Ben müşterinin sunucuda koştum ve senaryo başarılı oldu.

Sonra web sitesine yüklenen ve site boştu. Benim korku, "komut dosyası bağımlı nesneler" ayarı bir yaptılar DROP TABLEbenim saklı yordamları dokundu her tablo için.

Ben hemen onları ne bildirerek ve DB son yedekleme yer nerede soran kurşun dev ve patron aradı. 2 diğer Devs yapılan konferansa ve biz gelen sonuç hiçbir yedekleme sistemi bile yerdeydi ve hiçbir veri restore edilebilir olmasıydı. İstemci onların tüm web sitesinin içeriğini kaybetti ve ben kök neden oldu. Sonuç olarak 5000 $ müşterimize verilen kredi.

Benim için büyük bir dersti ve şimdi herhangi bir değişiklik komut dosyalarını çalıştıran ve ilk DBS yedekleme hakkında süper tedbirli değilim. Aynı firma ile bugün hala, ve şakalar yedeklemeler veya veritabanı komut hakkında gelip her biri her zaman ünlü "DROP TABLE" olayı gündeme getiriyor.

Cevap 15/08/2008 saat 14:46
kaynak kullanıcı

oy
1

Ben 'test' bittiğinde ben sıfırlamak için bir komut dosyası çalıştırın (görünüşte böyle değildi) test DB çalıştığımı sanıyordum tüm ah ... Kullandığımız standart test verilerine geri verileri!
Neyse ki bu yerde yedeklerini vardı bir veritabanı üzerinde oldu böylece endam sonra kolayca orijinal veritabanı geri getirebilir yanlış bir şey yaptı.

Ancak bu olay ben çalıştı şirketi öğrettin gerçekten üretim ve test ortamı ayırmak.

Cevap 15/08/2008 saat 15:00
kaynak kullanıcı

oy
2

Biz Oracle küme üzerinde bir baskın düğümü çözmek için çalışıyorlardı.

Depolama yönetimi modülü sorunlarınız oldu, bu yüzden yeniden takÕlmasÕ niyetiyle un-install butonuna tıkladım ve başka düğümden yapılandırmayı kopyalayarak.

Hmm, tüm kümeye uygulanan un-install butonuna çıkıyor, bu yüzden neşeyle sistemdeki tüm düğümlerden depolama yönetimi modülü kaldırıldı.

Üretim kümedeki her düğüm Neden Olan çökmesine. düğümlerin hiçbiri bir depolama yöneticisi beri, onlar gelip olmaz!

İşte yedekleri ilgili ilginç bir gerçek ... eski yedekleri site dışında döndürülmüş olsun ve bir veritabanı üzerinde en eski dosyalar nesin biliyor musun? Sistem kurulduğunda kurmak var konfigürasyon dosyaları.

Bu yüzden insanlar bu bantla kurye göndermek dışına olması gerekiyordu ve birkaç saat sonra biz her şeyi yeniden ve çalışan vardı. Şimdi kurulum ve konfigürasyon dosyalarının yerel kopyalarını tutmak!

Cevap 15/08/2008 saat 17:02
kaynak kullanıcı

oy
0

Müşteri tablonun tüm satırları güncellenmesi nereye madde eklemek unuttum çünkü.

Yani tam olarak yaptım: | . Ben konsolun üzerine yazmışsınız örnek bir dizeye tüm kullanıcılar için şifre sütunu güncellenen vardı. İşin en kötü kısmı, tıpkı üretim sunucusuna erişim ve ben bu yaptığımız zaman ben birkaç sorgu kontrol ediyordu oldu. Benim yaşlılar daha sonra eski yedeği dönmek vardı ve bazı gerçekten hoşnutsuz müşterilerden bazı telefon görüşmeleri alanına zorunda kaldı. Tabii ben bile bahsetmek istemiyorum silme deyimini kullanmak yaptığı başka zaman vardır ;-)

Cevap 22/08/2008 saat 04:23
kaynak kullanıcı

oy
0

masa T_DAT_STORE kesecek

T_DAT_STORE ben çalışmak bölümün özellik tablosu oldu. Ben geliştirme veritabanına bağlı düşünüyorum. Neyse ki, o güne kadar kullanılmamış olan bir günlük yedeği var ve veri altı saat içinde restore edilmiştir.

O zamandan beri bir kesik önce her şeyi revize ve sadece yedekleme kontrol etmek iyi yapıyor minör tabloların bir yedek restorasyonu için sormak periyodik (yedekle departmanı tarafından yapılmazsa)

Cevap 31/08/2008 saat 06:38
kaynak kullanıcı

oy
1

Kontrolden bitti tüm sql ifadeleri hatırlamıyorum ama bir ders öğrendim - bir işlemde bunu (! Büyük günlük dosyalarından dikkat) sen eğer.

üretimde, eğer yapabilirsen, eski moda şekilde ilerleyin:

  1. Bir bakım penceresini kullanın
  2. yedek
  3. Yaptığınız değişikliği gerçekleştirin
  4. DOĞRULAYIN
  5. bir şeyler ters giderse geri

Oldukça daha rezil, ama genel olarak size iyi uykular hak alıyoruz ederken :-) onların gece vardiyası sırasında çalıştırmak için başkasına bu prosedürü vermek bile mümkündür çalışma ve

Cevap 24/09/2008 saat 15:58
kaynak kullanıcı

oy
0

Bu, bana ben temizlemek zorunda bizim kim karışıklık sadece bir müşteri olmadı.

yanan disk durumu göstergeleriyle birlikte güzel çalışırken değiştirilebilen sürücüler - Bir RAID5 disk dizisi üzerinde çalışan SQL sunucu vardı. Yeşil = İyi, Kötü Kırmızı =.

Onların sürücülerden biri yeşilden kırmızıya döndü ve çekin ve (Kırmızı) kötü sürücüyü yerine söylendi dahi yerine (Yeşil) iyi birini alır. geri bu sırasında yazıldığı herhangi bir veri bloklarını sürücüleri hata anlayarak ve takas sonra birkaç dakika boyunca unavaliable (Yeşil) vs biraz okunabilir (Kırmızı) için gözle .. - Eh bu oldukça tamamen set baskını çökertmek için başaramadı disk senkronizasyonu kayıp olduğu gibi zaman 24 saat aralıksız sonra onlar tekrar çalışır olduğu bir orta ölçekli şema okunabilir verileri kurtarmak ve yeniden meta program yazmaya ...) jyberish oldu.

Bu hikayenin Ahlak, RAID5'den kullanmak her zaman işe kim dikkatli, yedekleri sağlarsın ... sayılabilir.

Bir keresinde bir müşterilerin üretim sistemi üzerinde önemli bir hata yaptı - komut yaptım ve dünya sona erdi önce iptal anladı yürütmek için bu kadar uzun sürdüğünü neden merak Neyse iken.

Bu hikayenin Moral daima HİÇBİRŞEY değiştirmeden önce yeni bir hareketi başlatmak sonuçlar beklediğinizden olan test etmek ve daha sonra ve ancak o zaman hareketi tamamlamak ... sayılabilir.

rm-rf genel gözlem birçok sınıflar gibi / tür hatalar düzgün şema üzerinde yabancı anahtar kısıtlamaları tanımlayan ve uzak 'BASAMAKLA' etiketli herhangi bir komut kalarak önlenebilir

Cevap 23/11/2008 saat 19:48
kaynak kullanıcı

oy
1

Ne önerdi tam olarak ne yaptı. Ben eklemek unuttum çünkü müşteri belgelerini düzenlenen bir tablodaki tüm satırları updated "nerede kimliği = 5" ucunda. O bir hataydı.

Ama akıllı ve paranoyak oldu. Ben bir gün berbat biliyordum. Ben bir "başlangıç ​​işlemi" olduğunu açıkladı. Bir geri alma verilmiş ve daha sonra tablo Tamam oldu kontrol etti.

Değildi.

Üretimde öğrenilen Ders: Size işlemleri saygı duymayan birkaç MyISAM tablolarını bulmak için yönetilen değil EMİN olabilir ve rulo olamaz ... Birçok BİRÇOK nedenlerle MySQL InnoDB tabloları kullanmak ister rağmen geri. hiçbir koşulda MySQL güven ve mutad olarak "start işlemi" veren etmeyin iyi bir şeydir. Hatta en kötü ihtimalle (burada olanları) 'de bir şey zarar yoktu ve InnoDB tabloları beni korumalı olurdu.

Bir yedekten tablo geri kaldı. Neyse ki veriler hemen hiç değişmez ve tablo o anlık yakındı birkaç düzine satır böyledir, gece yedekleri var. Referans için, hiç kimse biz hala olmayan InnoDB tablolar etrafında, biz uzun zaman önce hepsini dönüştürülen düşünce olduğunu biliyordu. Hiç kimse bu Yakaladım dışarı bakmak söyledi, hiç kimse orada olduğunu biliyordum. (O nerede fıkra çok yazmadan önce çok erken girmek çarpsaydı) Patronum tamamen aynı şeyi yapardı.

Cevap 23/11/2008 saat 20:59
kaynak kullanıcı

oy
4

etkisiyle şey:

update email set processedTime=null,sentTime=null

Bir üretim bülten veritabanında, veritabanında her e-postayı tekrar göndermeyi.

Cevap 23/11/2008 saat 21:20
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more