Встретил в инете рассказик. Позаимствовал, читаем :)
Это была первая неделя Теда на новом месте. Он пришел на смену одному начальнику, который отправился на больничный и больше не вернулся. Хотя Тед и подозревал, что его предшественник ушел или его ушли по каким-то причинам, он проигнорировал свои догадки, вместе с первоначальным желанием спасаться в панике бегством.
Компания, в которой теперь работал Тед, очень серьезно относилась к своим данным. Не в смысле серьезно, как при нормализации базы данных. И не так серьезно, как при создании легко управляемой и масштабируемой базы. Даже не настолько, как при хранении действительно жизненно важной информации, за которой стоят кубометры денег. Компания просто категорически не желала потерять ни кванта своих данных. Никогда.
К счастью этой непростой и дорогостоящей цели уже удалось достичь предшественнику Теда. Предыдущий начальник, которого все называли просто «Мензуркин», внедрил непрошибаемый план предотвращения любых потерь данных.
Как выяснил Тед, несколько лет назад подконтрольная Мензуркину система рухнула. В самую бездну. База данных пошла ко дну, куда за ней последовали и резервные копии, не оставалось другого выбора, кроме как восстанавливаться из копии, чей возраст перевалил через несколько месяцев отыскавшейся у разработчика. Начальство неистовствовало, весь Отдел ИТ уволили, а «Мензуркин» дал клятву на крови – Больше никогда.
Вскоре после катастрофы «Мензуркин» собрал своих людей. «Что будет, если основной сервер с базой рухнет?», задал он риторический вопрос. «Тогда нам понадобится резервный сервер»! Его люди понимающе кивнули и, повинуясь долгу, приобрели сервер, настроив на нем репликацию в реальном времени.
«Однако», снизошла затем благодать на Мензуркина, «нам надо хранить копии базы на случай порчи самих данных и последующей репликации этих испорченных данных на оба сервера»! Его люди покорно кивнули и, повинуясь долгу, купили ленточный накопитель, подключив его к основному серверу с базой. Так было положено начало еженощному резервному копированию.
«Это нас тоже не спасет», объяснял Мензуркин, «а что, если копии испортятся? Надо их проверять»! Его люди кивнули и добыли еще один сервер с еще одной копией SQL Server и еще одним ленточным накопителем. Теперь копии можно было восстанавливать независимо от основного сервера.
Пока что Теда все устраивало, вероятность потери данных была микроскопическая. Тут тебе и репликация, и проверка, и политика использования лент. И если бы на этом все закончилось, это был бы образцовый пример, а не статья на WTF.
«А как же реплика сервера», затем выдал Мензуркин, “разве не должны мы его тоже копировать? Что если на основном восстановится испорченная копия, искаженные данные попадут в базу, и вот мы уже не можем восстанавливаться вообще». Люди кивнули и, повинуясь долгу, купили еще один ленточный накопитель, подключив его к реплицирующему серверу.
Опасаясь худшего, Мензуркин снова собрал своих людей и возвестил «А случись так, что основной, реплицирующий и резервный сервера разом дадут сбой при резервном копировании, а нам надо будет восстановиться? И что тогда»? Так как на этот раз ему не удалось убедить начальство на покупку железа, Мензуркин велел своим людям реквизировать обычный компьютер и сделать из него сервер. Так был рожден четвертый сервер баз данных.
К этому моменту Тед уже начал сомневаться насчет всей это авантюры, в которую он ввязался. То, что казалось отличным планом предотвращения потерь данных, превращалось в очковтирательство, предназначенное скорее для прикрытия собственной задницы, чем для сохранения данных. И вот тут Теду открылись самая суть этого процесса.
Беспокоясь о состоянии пленок, Мензуркин снова собрал своих людей и предложил, «Давайте при резервном копировании делать полную копию базы каждую ночь. Будем хранить на сервере копии за неделю, а при восстановлении нам придется просто восстановить всю базу целиком, если копия будет слишком старой». Его люди, повинуясь долгу, создали на сервере папку, в которой хранились полные копии базы за неделю. Так как имена файлов всегда были разными, у них не оставалось другого выбора (во всяком случае, так им внушили) кроме как копировать на ленту всю папку целиком.
Но Мензуркин все не унимался. «Раз уж мы сохраняем полные копии на основном сервере, то и на реплике должны делать то же самое»! И снова его люди, повинуясь долгу, исполнили волю вождя и создали папку на сервере с репликой, дабы хранила она в себе базу семь ночей и переписывалась на ленту единой и неделимой.
На этой части повествования Тед вжался в спинку кресла и вздохнул. Он быстро подсчитал, что на каждую неделю приходилось до шестнадцати полных копий базы сделанных в любую из семи прошедших ночей раскиданных по шестнадцати кассетам. За неделю набиралось сто двенадцать полных копий базы на лентах, шестнадцать копий на дисках и четыре работающих копии на четырех серверах. Таким образом, существовало 132 копии с базой не старше недели.
А потом Тед свалял дурака. Он спросил, «Сколько запросов в среднем делается к базе за час»?
На что теперь уже люди Теда ответили, «Около 60».
Автор: Алекс Пападимулис
Оригинал: http://worsethanfailure.com/Articles/A-Backups-Backups-Backup.aspx
One Comment