Re[3]: Страшно ли вам апдейтить продуктивную базу без бекапов?
От: · Великобритания  
Дата: 04.04.17 11:56
Оценка:
Здравствуйте, turbocode, Вы писали:

AN>>БД и любые важные данные нужно бэкапить.

AN>>Прежде, чем накатывать изменения на продуктивную БД, нужно проверить на тестовой БД, какое влияние окажет обновление.
AN>>Постарайся делать коммит только после всех изменений (без промежуточных коммитов).
AN>>Прежде чем накатывать изменения, подготовь скрипт для отката сделанных изменений.

T>Теоретик? На практике базы могут быть такого огромного размера что для тестовой БД нужно новый датацентр строить.

Если данные важные, то
— либо апдейты накатывают по частям, инкрементально: изменять не все записи, а только по 0.1% из них, с возможностью отката в виде бэкапов, проверяя корректность данных на каждом шагу.
— либо делают поэтапно, через неломающие совместимые изменения: добавить новое поле с новым значением, обновить все системы, чтобы они стали использовать новое поле вместо старого, грохнуть старое поле.

А просто набирать код SQL-скрипта прямо на прод базе — это просто цирк.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[7]: Страшно ли вам апдейтить продуктивную базу без бекапов?
От: AleksandrN Россия  
Дата: 04.04.17 11:56
Оценка:
Здравствуйте, turbocode, Вы писали:

AN>>Самолётов нет, а какой-нибудь имитатор, моделирующий входные данные для диспетчерской системы, наверняка есть.

T>Вот видишь если начать думать то оказывается что всё можно делать.

Можно. Если подумать, то окажется, что развернуть тестовую систему можно. Будут ли в тестовой системе реальные данные или их имитация — вопрос, решаемый в каждом случае отдельно, исходя из важности системы, особенностей реализации, возможностей по развёртыванию тестовой системы и допустимой степени похожести тестовой системы на продуктивную.
Re[8]: Страшно ли вам апдейтить продуктивную базу без бекапов?
От: turbocode  
Дата: 04.04.17 12:05
Оценка:
AN>Можно. Если подумать, то окажется, что развернуть тестовую систему можно. Будут ли в тестовой системе реальные данные или их имитация — вопрос, решаемый в каждом случае отдельно, исходя из важности системы, особенностей реализации, возможностей по развёртыванию тестовой системы и допустимой степени похожести тестовой системы на продуктивную.

Тестовая не актуальна, запрос который на первый взгляд шустро работает на тестовом может реально медленно работать в реале.
Re[6]: Страшно ли вам апдейтить продуктивную базу без бекапов?
От: turbocode  
Дата: 04.04.17 12:30
Оценка:
_AB>В целом же авиадиспетчеры являются не администраторами системы, не создателями, а всего лишь операторами, пользователями.
Тогда почему их судят за авиакатастрофы? Они ж всего лишь пользователи.
_AB>Поэтому твой пример абсолютно нерелевантен и показывает твоё полное непонимание сути вопроса.
Иди полетай.
Re[7]: Страшно ли вам апдейтить продуктивную базу без бекапов?
От: _ABC_  
Дата: 04.04.17 14:42
Оценка:
Здравствуйте, turbocode, Вы писали:

T>Тогда почему их судят за авиакатастрофы? Они ж всего лишь пользователи.

Пользователя медицинской системы, неправильно использовавшего её, тоже засудят.
Как и оператора АЭС, например.

T>Иди полетай.

К чему тут этот совет?
Re[2]: Страшно ли вам апдейтить продуктивную базу без бекапов?
От: opt1k США  
Дата: 04.04.17 15:06
Оценка:
Здравствуйте, _ABC_, Вы писали:

_AB>Это в какой среде управления БД такое?


AS400
Коплю на ланцер
Re[2]: Страшно ли вам апдейтить продуктивную базу без бекапов?
От: opt1k США  
Дата: 04.04.17 15:07
Оценка:
Здравствуйте, Gradiens, Вы писали:

G>Во-первых, транзакции — наше все. Как уже написали выше — все и всегда заворичивай в транзакции.


Что в данном случае имеется ввиду под транзакциями?
Коплю на ланцер
Re[9]: Страшно ли вам апдейтить продуктивную базу без бекапов?
От: AleksandrN Россия  
Дата: 04.04.17 15:28
Оценка:
Здравствуйте, turbocode, Вы писали:

T>Тестовая не актуальна, запрос который на первый взгляд шустро работает на тестовом может реально медленно работать в реале.


Может быть и такое. Например — в тестовой таблице намного меньше данных, отличаются индексы или нагрузка на БД. Результаты тестирования производительности нужно правильно пересчитать из параметров тестовой системы на продуктивную. Тестирование, в том числе нагрузочное, это отдельная сложная задача.
Re[10]: Страшно ли вам апдейтить продуктивную базу без бекапов?
От: opt1k США  
Дата: 04.04.17 16:17
Оценка:
В общем я так понимаю, что у более современных систем писать в базу напрямую нельзя? Или всё-таки можно при наличии должных прав? Странно мне всё это. Одно неловкое движение и пиши пропало.
Коплю на ланцер
Re[3]: Страшно ли вам апдейтить продуктивную базу без бекапов?
От: _ABC_  
Дата: 04.04.17 16:23
Оценка:
Здравствуйте, opt1k, Вы писали:

_AB>>Это в какой среде управления БД такое?

O>AS400
А AS400 — это разве не аппаратный комплекс?
Re[4]: Страшно ли вам апдейтить продуктивную базу без бекапов?
От: opt1k США  
Дата: 04.04.17 19:04
Оценка:
_AB>А AS400 — это разве не аппаратный комплекс?

Это основа основ нашей корпорации. На ней всё и крутится. А рассказывать про софт, который написан только под нашу контору и только в оной и существует смысла нету.
Коплю на ланцер
Re[5]: Страшно ли вам апдейтить продуктивную базу без бекапов?
От: _ABC_  
Дата: 05.04.17 04:30
Оценка:
Здравствуйте, opt1k, Вы писали:

O>А рассказывать про софт, который написан только под нашу контору и только в оной и существует смысла нету.

Самописная РСУБД с SQL синтаксисом? Ну да, ну да.
Re[3]: Страшно ли вам апдейтить продуктивную базу без бекапов?
От: Gradiens  
Дата: 05.04.17 07:03
Оценка:
Здравствуйте, opt1k, Вы писали:

O>Здравствуйте, Gradiens, Вы писали:


G>>Во-первых, транзакции — наше все. Как уже написали выше — все и всегда заворичивай в транзакции.


O>Что в данном случае имеется ввиду под транзакциями?


Я имею в виду, что в начале любого разрабатываемого скрипта должна начитаться транзакция, а в конце — транзакция должна откатываться.
одно неловкое движение, и... ничего, транзакция откатилась.
А после того, как все отлажено и проверено — откат транзакции заменить на накат.
Например, в сиквеле любой скрипт писать внутри конструкции
BEGIN TRY
    BEGIN TRAN
    
    -- Тут пишем всякое опасное

    ROLLBACK TRAN
END TRY

BEGIN CATCH
    ROLLBACK TRAN
    THROW
END CATCH

А потом, когда все отлажено и проверено, первый ROLLBACK заменить на COMMIT
Re[2]: Страшно ли вам апдейтить продуктивную базу без бекапов?
От: Mr.Delphist  
Дата: 05.04.17 08:41
Оценка:
Здравствуйте, TMU_1, Вы писали:

TMU>Отлаживаешь скрипт на тестовом окружении и запускаешь уже проверенный код на продуктиве.


А там у клиента фамилия с хитрым юникодом, который SQL Engine вдруг решает заменить на кавычку или апостроф. Или рекордсет, который недавно импортировали из БД партнёров и он чутка более "вольный" чем ожидаемая структура данных, причём Ваш отдел про это никто не удосужился оповестить. И всё, приплыли, скрипт прокатался без ошибки, но не так как надо — база неконсистентна, система не взлетает.

В общем, бэкапить, бэкапить и ещё раз бэкапить, как говорил В.И.Ленин.
Re[6]: Страшно ли вам апдейтить продуктивную базу без бекапов?
От: opt1k США  
Дата: 05.04.17 15:11
Оценка:
Здравствуйте, _ABC_, Вы писали:

_AB>Самописная РСУБД с SQL синтаксисом? Ну да, ну да.


База DB2. Но писать в базу можно как раз через нашу ERP через консоль. Конечно, есть и более человеческие методы, но в данном случае вопрос именно про запись в лоб.
Коплю на ланцер
Re[4]: Страшно ли вам апдейтить продуктивную базу без бекапов?
От: opt1k США  
Дата: 05.04.17 15:13
Оценка:
Здравствуйте, Gradiens, Вы писали:

G>Например, в сиквеле любой скрипт писать внутри конструкции

G>
G>BEGIN TRY
G>    BEGIN TRAN
    
G>    -- Тут пишем всякое опасное

G>    ROLLBACK TRAN
G>END TRY

G>BEGIN CATCH
G>    ROLLBACK TRAN
G>    THROW
G>END CATCH
G>

G>А потом, когда все отлажено и проверено, первый ROLLBACK заменить на COMMIT

И всё это я могу провернуть прямо в консоли?
Коплю на ланцер
Re: Страшно ли вам апдейтить продуктивную базу без бекапов?
От: Cyberax Марс  
Дата: 06.04.17 02:06
Оценка:
Здравствуйте, opt1k, Вы писали:

O>В который раз ловлю себя на мысли, что мне страшно апдейтить продуктивную базу. У вас есть такое?

Не, не бывает. Вот например, мы в Амазоне не так давно базу биллинга для S3 правили. Ой....
Sapienti sat!
Re[2]: Страшно ли вам апдейтить продуктивную базу без бекапов?
От: opt1k США  
Дата: 06.04.17 02:18
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, opt1k, Вы писали:


O>>В который раз ловлю себя на мысли, что мне страшно апдейтить продуктивную базу. У вас есть такое?

C>Не, не бывает. Вот например, мы в Амазоне не так давно базу биллинга для S3 правили. Ой....

Ну и каков результат? Полетели головы? Я для себя решил поуменьшить писанину в базу, буду только в экстренных ситуациях этим заниматься, а остальное пусть через джиру идёт, с бэкапами и недельными ожиданиями. Мне такой гемор ни к чему, рука дрогнет и готово. Хотя можно использовать эккаунт срини.
Коплю на ланцер
Re[5]: Страшно ли вам апдейтить продуктивную базу без бекапов?
От: Gradiens  
Дата: 06.04.17 07:11
Оценка:
Здравствуйте, opt1k, Вы писали:

O>Здравствуйте, Gradiens, Вы писали:


G>>Например, в сиквеле любой скрипт писать внутри конструкции

G>>
G>>BEGIN TRY
G>>    BEGIN TRAN
    
G>>    -- Тут пишем всякое опасное

G>>    ROLLBACK TRAN
G>>END TRY

G>>BEGIN CATCH
G>>    ROLLBACK TRAN
G>>    THROW
G>>END CATCH
G>>

G>>А потом, когда все отлажено и проверено, первый ROLLBACK заменить на COMMIT

O>И всё это я могу провернуть прямо в консоли?


Я приводил пример для сиквела. Там нет нужды что-то проворачивать в консоли.
Допускаю, что для вашей СУБД нет нормальных IDE. Это было бы странно, но допускаю. Но это же не повод апдейтить боевую базу прямо из консоли! Написать скрипт, отладить его на тесте, откатывая транзакцию (или в вашей субд нет транзакций?). Потом накатить на тест. И только потом накатывать на прод.

Допускаю также, что начальство требует результатов прямо здесь и сейчас. Тогда — мои сочувствия.
Но это ваше начальство — вам его и обучать. Начальство же не хочет обедать у повора, который руки после туалета не моет? Ну так объясните ему, что в разработке также нужо соблюдать гигиену.
Re[7]: Страшно ли вам апдейтить продуктивную базу без бекапов?
От: Gradiens  
Дата: 06.04.17 07:29
Оценка:
Здравствуйте, opt1k, Вы писали:

O>Здравствуйте, _ABC_, Вы писали:


_AB>>Самописная РСУБД с SQL синтаксисом? Ну да, ну да.


O>База DB2. Но писать в базу можно как раз через нашу ERP через консоль. Конечно, есть и более человеческие методы, но в данном случае вопрос именно про запись в лоб.


Дам-с, месье знает толк в извращениях!
Тыкать льва палочкой тоже можно, но зачем?
А в чем проблема использовать "более человеческие методы"?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.