kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 binOr
binOr
Вопрос

Какая самая страшная авария с базой данных произошла с вами на производстве?

Например: Обновление всех строк таблицы customer, потому что вы забыли добавить предложение where.

  1. Каково это было, осознать это и сообщить об этом коллегам или клиентам?
  2. Какие уроки были извлечены?
5 2008-08-15T11:13:53+00:00 18
 Abbas
Abbas
Редактировал вопрос 31-го января 2012 в 4:47
Программирование
production
database
Surgical Coder
Surgical Coder
15-го августа 2008 в 11:28
2008-08-15T11:28:08+00:00
Дополнительно
Источник
Редактировать
#8415768

Я думаю, что моя худшая ошибка была

truncate table Customers
truncate table Transactions

Я не видел, в какой сервер MSSQL я был зарегистрирован, я хотел убрать свою местную копию... Знакомый " О, s ** t" когда это брало значительно дольше, чем о половине секунды, чтобы удалить, мой босс заметил, что я пошел visibily белый, и спросил, что я просто сделал. О половину минуты спустя, наш монитор места сошел с ума и начал посылать нам по электронной почте говорящий, что место снизилось.

Урок учился? Никогда не сохраняйте связь открытой, чтобы жить DB дольше, чем необходимый absolutly.

Был только до 4:00, восстанавливая данные из резервных копий также! Мой босс чувствовал жалость ко мне и купил меня ужин...

Surgical Coder
Surgical Coder
Редактировал ответ 15-го августа 2008 в 11:38
11
0
 Marshall
Marshall
15-го августа 2008 в 1:17
2008-08-15T13:17:26+00:00
Дополнительно
Источник
Редактировать
#8415770

Я работаю на небольшую компанию электронной коммерции, there' s 2 разработчика и DBA, я являющийся одним из разработчиков. I' m обычно не в привычке к обновлению производственных данных на лету, если у нас есть хранимые процедуры we' ve изменился, мы проводим их через исходный контроль и имеем официально установка режима развертывания.

Хорошо так или иначе пользователь приехал ко мне нуждающийся в обновлении, сделанном к нашей базе данных контакта, групповое обновление связка средств. Таким образом, я выписал вопрос в наших условиях испытаний, чем-то как

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

Что-то как этот. Управлял им в тесте, 3 обновленные ряда. Скопированный это к клипборду, приклеиваемому это в предельных услугах на наше производство sql коробка, управляло им, с ужасом наблюдаемый, поскольку это заняло 5 секунд, чтобы выполнить и обновило 100 000 рядов. Так или иначе я скопировал первую линию а не второе, и wasn' t обращающий внимания как я < kbd> CTRL + < kbd> V < kbd> CTRL + < kbd> E ' d.

Мой DBA, греческий джентльмен старшего возраста, вероятно, самый сварливый человек I' встреченный ve не был взволнован. К счастью у нас были резервная копия и это didn' t ломают любые страницы, к счастью та область только действительно в целях показа (и объявляющий/отправляющий).

Извлеченный урок был, обращают внимание на какой you' ре, копирующее и приклеивающее, вероятно, некоторые другие также.

Valery Viktorovsky
Valery Viktorovsky
Редактировал ответ 20-го августа 2015 в 10:23
5
0
Jordan Stewart
Jordan Stewart
23-го ноября 2008 в 10:20
2008-11-23T22:20:58+00:00
Дополнительно
Источник
Редактировать
#8415782

Что-то к эффекту:

'электронная почта обновления установила processedTime=null, sentTime=null'

на производственной базе данных информационного бюллетеня, отправляя каждую электронную почту в базе данных.

4
0
 Keith
Keith
15-го августа 2008 в 11:20
2008-08-15T11:20:21+00:00
Дополнительно
Источник
Редактировать
#8415766

Младший DBA должен был сделать:

delete from [table] where [condition]

Вместо этого они напечатали:

delete [table] where [condition]

Что является правильным T-Sql, но, по сути, полностью игнорирует бит where [условие] (по крайней мере, так было тогда на MSSQL 2000/97 - я забыл, на каком именно) и стирает всю таблицу.

Это было весело :-/

 Keith
Keith
Редактировал ответ 15-го августа 2008 в 11:37
4
0
 travis
travis
15-го августа 2008 в 3:46
2008-08-15T15:46:59+00:00
Дополнительно
Источник
Редактировать
#8415774

Приблизительно 7 лет назад я производил сценарий изменения для client' s DB после работы поздно. Я только изменил хранимые процедуры, но когда я произвел SQL, у меня был " иждивенец сценария objects" проверенный. Я управлял им на своей местной машине, и все, казалось, работали хорошо. Я управлял им на client' s сервер и сценарий имел успех.

Тогда я загрузил веб-сайт, и место было пусто. К моему ужасу, " иждивенец сценария objects" урегулирование сделало 'СТОЛ СНИЖЕНИЯ' для каждого стола, которого коснулись мои хранимые процедуры.

Я немедленно назвал лидерство dev и босса, сообщающего им, что произошло и выяснение, где последняя резервная копия DB могла быть расположена. 2 других devs были conferenced в и заключением, в которое мы приехали, был то, что никакая резервная система не была даже на месте, и никакие данные не могли быть восстановлены. Клиент потерял их весь website' s содержание и я был первопричиной. Результат был 5 000$ кредит, данный нашему клиенту.

Для меня это был большой урок, и теперь я суперосторожен относительно управления любыми сценариями изменения и поддержки DBs сначала. I' m все еще с той же компанией сегодня, и каждый раз, когда шутки подходят о резервных копиях или сценариях базы данных, кто-то всегда поднимает известный " СНИЖЕНИЕ TABLE" инцидент.

4
0
 Stu
Stu
15-го августа 2008 в 2:39
2008-08-15T14:39:26+00:00
Дополнительно
Источник
Редактировать
#8415773

Мне когда-то удалось написать курсор обновления, который никогда не выходил. На 2M + стол ряда. Замки просто возросли и возросли до этой RAM на 8 ГБ, с 16 ядрами (в 2002!) коробка на самом деле прекратила работу (разнообразия «синего» экрана).

3
0
 Seibar
Seibar
15-го августа 2008 в 2:20
2008-08-15T14:20:12+00:00
Дополнительно
Источник
Редактировать
#8415772
update Customers set ModifyUser = 'Terrapin'

Я забыл, где пункт - довольно невинный, но на столе с 5 000 + клиенты, мое имя будет на каждом отчете некоторое время...

Урок учился: сделка использования передает и обратная перемотка!

2
0
Mark Harrison
Mark Harrison
15-го августа 2008 в 6:02
2008-08-15T18:02:40+00:00
Дополнительно
Источник
Редактировать
#8415776

Мы пытались закрепить разоренный узел на группе Oracle.

У модуля управления хранением были проблемы, таким образом, мы нажали деинсталлировать кнопку с намерением повторно установить и скопировать конфигурацию с другого узла.

Хм, оказывается, что деинсталлировать кнопка относилась ко всей группе, таким образом, это бодро удалило модуль управления хранением из всех узлов в системе.

Порождение каждого узла в производственной группе потерпеть крах. И так как ни у одного из узлов не было менеджера по хранению, они wouldn' t подходят!

Here' s интересный факт о резервных копиях... самые старые резервные копии получают вращаемый прилегающий объект, и Вы знаете, каковы Ваши самые старые файлы на базе данных? Конфигурационные файлы, которые разбудили набор, когда система была установлена.

Таким образом, мы должны были сделать, чтобы удаленные люди послали курьера с той лентой, и несколько часов спустя нам повторно установили все и управление. Теперь мы держим местные копии установки и конфигурационных файлов!

2
0
 Oli
Oli
24-го сентября 2008 в 4:58
2008-09-24T16:58:55+00:00
Дополнительно
Источник
Редактировать
#8415779

Я don' t помнят все sql заявления, которые вышли из-под контроля, но мне изучили один урок - , делают это в сделке , если Вы можете (остерегаться большого logfiles!).

В производстве, если Вы можете, продолжаются старомодный путь:

  1. Используйте окно обслуживания
  2. Резервная копия
  3. Выполните свое изменение
  4. проверьте
  5. восстановите, если что-то пошло не так, как надо

Довольно распущенный, но вообще рабочий и даже возможный дать эту процедуру кому-то еще, чтобы управлять им во время их ночной смены, в то время как you' ре, получающее Ваш хорошо заслуженный сон:-)

1
0
 sven
sven
15-го августа 2008 в 4:00
2008-08-15T16:00:13+00:00
Дополнительно
Источник
Редактировать
#8415775

Я думал, что работал в DB тестирования (который wasn' t случай, по-видимому), поэтому когда я закончил ' testing' я управляю сценарием, чтобы перезагрузить все данные назад к стандартным данным испытаний, которые мы используем... ай!
К счастью это произошло на базе данных, которая имела в распоряжении резервные копии, поэтому после выяснения, что я сделал что-то не так, что мы могли легко возвратить оригинальную базу данных.

Однако этот инцидент действительно учил компанию, что я работал на к действительно, отделяют производство и условия испытаний.

1
0
 MBCook
MBCook
23-го ноября 2008 в 9:59
2008-11-23T21:59:26+00:00
Дополнительно
Источник
Редактировать
#8415781

Я сделал точно, что Вы предложили. Я обновил все ряды в столе, который вместил потребительские документы, потому что я забыл добавлять " где ID = 5" в конце. Это было ошибкой.

Но я был умен и параноиком. Я знал, что вверну один день. Я выпустил " начните transaction". я выпустил обратную перемотку и затем проверил, что стол был в порядке.

Это wasn' t.

Урок учился в производстве: несмотря на факт нам нравится использовать таблицы InnoDB в MySQL для многих МНОГО причин... быть УВЕРЕННЫМИ Вы haven' t удалось найти одну из нескольких таблиц MyISAM этим doesn' t уважают сделки и Вас can' t откатываются назад на. Don' t доверяют MySQL при любых обстоятельствах и обычно изданию " начните transaction" хорошая вещь. Даже в худшем варианте развития событий (что произошло здесь), это didn' t повреждают что-либо, и это защитило бы меня на таблицах InnoDB.

Я должен был восстановить стол из резервной копии. К счастью у нас есть ночные резервные копии, данные почти никогда не изменяются, и стол - несколько дюжин рядов, таким образом, это было почти мгновенно. Для справки никто не знал, что у нас все еще были non-InnoDB столы вокруг, мы думали, что преобразовали их всех давно. Никто не сказал мне высматривать этот gotcha, никто не знал, что это было там. Мой босс сделал бы ту же точную вещь (если бы он совершил нападки, входят слишком рано прежде, чем напечатать где пункт также).

1
0
Mike Woodhouse
Mike Woodhouse
15-го августа 2008 в 11:22
2008-08-15T11:22:33+00:00
Дополнительно
Источник
Редактировать
#8415767

Я обнаружил, что не понимаю файлы повторного журнала Oracle (терминология? это было давно) и потерял торговые данные за неделю, которые пришлось вручную переписывать из бумажных билетов.

Была и положительная сторона - во время выходных, которые я провел за вводом данных, я узнал много нового об удобстве использования моего экрана ввода торговых данных, который после этого значительно улучшился.

0
0
 ninesided
ninesided
15-го августа 2008 в 11:30
2008-08-15T11:30:17+00:00
Дополнительно
Источник
Редактировать
#8415769

Худший вариант развития событий для большинства людей - производственная потеря данных, но если they' ре, не бегущее ночью, делает копию или копирующий данные на сайт DR, тогда они заслуживают всего, что они получают!

Кит в T-SQL, isn' t ОТ ключевого слова, дополнительного для УДАЛЕНИЯ? Оба из тех заявлений делают точно то же самое...

 Community
Community
Редактировал ответ 23-го мая 2017 в 12:19
0
0
Jedi  Master Spooky
Jedi Master Spooky
15-го августа 2008 в 1:23
2008-08-15T13:23:23+00:00
Дополнительно
Источник
Редактировать
#8415771

Худшая вещь, которая произошла со мной, состояла в том, что Рабочий сервер занимает все место в HD. Я использовал SQL-сервер, таким образом, я вижу файлы базы данных и вижу, что регистрация составляла приблизительно 10 ГБ, таким образом, я решаю сделать то, что я всегда делаю, когда я хочу к trunc Файл системного журнала. Я сделал Отделение удаления файла системного журнала и затем свойственен снова. Хорошо я понимаю, что, если файл системного журнала не близок правильно, эта процедура не работает. таким образом, я заканчиваю с mdf файлом и никаким файлом системного журнала. К счастью я пошел на территорию Microsoft, которую я получаю способ восстановить базу данных как восстановление и переместить в другую базу данных.

0
0
Анонимный пользователь
15-го августа 2008 в 11:15
2008-08-15T11:15:45+00:00
Дополнительно
Источник
Редактировать
#8415764

Я сбросил живую базу данных и удалил ее.

Извлеченный урок: убедитесь, что вы знаете свой SQL - и убедитесь, что вы делаете резервные копии, прежде чем трогать что-то.

 splattne
splattne
Редактировал ответ 9-го ноября 2008 в 5:24
0
0
 vikramjb
vikramjb
22-го августа 2008 в 5:23
2008-08-22T05:23:10+00:00
Дополнительно
Источник
Редактировать
#8415777

Обновление всех рядов потребительского стола, потому что Вы забыли добавлять где пункт.

Это было точно, я сделал: |. Я обновил колонку пароля для всех пользователей к типовой последовательности, которую я напечатал на пульт. Худшая часть его была, я получал доступ к рабочему серверу, и я проверял некоторые вопросы, когда я сделал это. Мои старшие тогда должны были вернуться старая резервная копия и должны были выставить некоторые требования от некоторых действительно раздраженных клиентов. Конечно, есть другое время, когда я действительно использовал удалить заявление, который я don' t даже хочу говорить о;-)

0
0
 Telcontar
Telcontar
31-го августа 2008 в 7:38
2008-08-31T07:38:55+00:00
Дополнительно
Источник
Редактировать
#8415778

Усеченный стол T_DAT_STORE

T_DAT_STORE был таблицей факта отдела, в котором я работаю. Я думаю, что был связан с базой данных развития. К счастью, у нас есть ежедневная резервная копия, который hasn' t используемый до того дня и данных был восстановлен за шесть часов.

С тех пор я пересматриваю все перед усеченным, и периодически я прошу резервное восстановление незначительных столов только проверять, что резервная копия преуспевает (Сделайте копию isn' t сделанный моим отделом)

 WebDevBooster
WebDevBooster
Редактировал ответ 23-го февраля 2018 в 12:41
0
0
Анонимный пользователь
23-го ноября 2008 в 8:48
2008-11-23T20:48:57+00:00
Дополнительно
Источник
Редактировать
#8415780

Этот didn' t происходят со мной, просто нашим клиентом, который является беспорядком, который я должен был очистить.

У них был SQL-сервер, работающий на дисковом множестве RAID5 - хорошие двигатели hotswap вместе с освещенными дисковыми индикаторами статуса. Зеленый = Хороший, Красный = Плохо.

Один из их двигателей повернулся от зеленого до красного и гения, которому сказали потянуть и заменить (Красный) плохой двигатель, вынимает (Зеленый) хороший вместо этого. Хорошо этот didn' t вполне умеют снизить набор набега полностью - выбирающий несколько удобочитаемого (Красного) против недоступного (Зеленого) в течение нескольких минут.. после понимания ошибки и обмена двигателей назад любые блоки данных, которые были написаны в это время, стали jyberish, поскольку дисковая синхронизация была потеряна)... Несколько 24-прямых часы спустя сочиняя meta программы, чтобы возвратить удобочитаемые данные и восстановить схему среднего размера они назад были в порядке.

Нравы этой истории включают... Никогда не используйте RAID5, всегда ведите резервные копии, тщательные, кого Вы нанимаете.

Я сделал главную ошибку на потребительской производственной системе однажды - к счастью, задаваясь вопросом, почему команда занимала много времени, чтобы выполнить реализованный, что я сделал и отменил ее, прежде чем мир закончился.

Мораль этой истории включает... всегда начинают новую сделку прежде, чем изменить ЧТО-ЛИБО, проверяют результаты, то, что Вы ожидаете и затем и только тогда передаете сделку.

Как общее наблюдение много классов комнаты-rf / ошибки типа могут быть предотвращены, правильно определив ограничения внешнего ключа на Вашу схему и оставшись далеко от любой команды labled ' CASCADE'

0
0
Похожие сообщества 4
DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
3 542 пользователей
Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.
Открыть telegram
dbGeeks
dbGeeks
764 пользователей
Чат про базы данных, их устройство и приемы работы с ними. Разрешаются любые адеватные дискуссии в рамках тематики чата.
Открыть telegram
Разработка СУБД
Разработка СУБД
209 пользователей
Это чат о разработке СУБД - реляционных, распределенных, и вообще каких угодно. Здесь обсуждаются пейперы, архитектура, доклады, и т.д. Если у вас вопросы по использованию какой-то СУБД, это не сюда.
Открыть telegram
Разработка СУБД
Разработка СУБД
35 пользователей
Рассуждаем о подходах к организации систем управления базами данных.
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Ilya Smirnov
Зарегистрирован 5 дней назад
2
Денис Васьков
Зарегистрирован 1 неделю назад
3
Dima Patrushev
Зарегистрирован 1 неделю назад
4
sirojidddin otaboyev
Зарегистрирован 2 недели назад
5
Елена Гайдамамакинат
Зарегистрирован 2 недели назад
ID
KO
RU
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией