Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Очень лысыйЧто за писание работы тестеров в боевую базу? Мало ли что там кодеры накодят, и, при доступе на прод, этот код там что-то похерит ненароком?Не тестеров, а пользователей. Вы подготовили версию, она должна утром появиться на компах 10 000 сотрудников. Но вам стрёмно, 10 000!!! Вас же порвут, а вдруг что то не так? Вы думаете, "а не залить ли эту версию на компы отдела маркетинга, всё равно их никто не слушает, да и их всего сотня? Если что, откатим." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 00:50 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Alex1975, дам ссылку на такой опыт компании Авито: https://habrahabr.ru/company/avito/blog/342946/ Смысл в том, что каждый релиз ХП льется в отдельную схему - для переключения с одной версии кода на другую достаточно в настройках приложения указать схему, на которую он смотрит, название хранимых процедур менять не надо. Так, боевое и тестовое окружение может смотреть на одну и ту же базу, но в разные схемы. При выкатке релиза в прод достаточно просто поменять имя схемы в боевом приложении (или сделать TRANSFER всем объектам). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 10:16 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
alexeyvgНе тестеров, а пользователей. Вы подготовили версию, она должна утром появиться на компах 10 000 сотрудников. Но вам стрёмно, 10 000!!! Вас же порвут, а вдруг что то не так? Вы думаете, "а не залить ли эту версию на компы отдела маркетинга, всё равно их никто не слушает, да и их всего сотня? Если что, откатим." Все именно так. Схема рабочая, обсуждена с заказчиком. Риски и пути их минимизации все понимают. alexeyvgСмысл в том, что каждый релиз ХП льется в отдельную схему - для переключения с одной версии кода на другую достаточно в настройках приложения указать схему, на которую он смотрит, название хранимых процедур менять не надо. Так, боевое и тестовое окружение может смотреть на одну и ту же базу, но в разные схемы. При выкатке релиза в прод достаточно просто поменять имя схемы в боевом приложении (или сделать TRANSFER всем объектам). Из минусов что я вижу, в базе появляется куча процедур от разных версий. И если их сейчас тысяча штук, то будет ад. И вызов функций требует указания схемы. А т.к. схема будет меняться, то непонятно как быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 14:08 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Alex1975Из минусов что я вижу, в базе появляется куча процедур от разных версий. Зато по названию схемы (если правильно именовать) сразу понятно, что это за версия, найти этот релиз, найти время его выпуска. Alex1975И вызов функций требует указания схемы. А т.к. схема будет меняться, то непонятно как быть. С функциями проблема, да. Если в них у вас много логики и она часто меняется - то вариант скорее не подходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 14:23 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
alexeyvgОчень лысыйЧто за писание работы тестеров в боевую базу? Мало ли что там кодеры накодят, и, при доступе на прод, этот код там что-то похерит ненароком?Не тестеров, а пользователей. Вы подготовили версию, она должна утром появиться на компах 10 000 сотрудников. Но вам стрёмно, 10 000!!! Вас же порвут, а вдруг что то не так? Вы думаете, "а не залить ли эту версию на компы отдела маркетинга, всё равно их никто не слушает, да и их всего сотня? Если что, откатим." Ясно, я просто не до конца понял идею. Оно, конечно, прикольно, но несмотря на все согласования и пути минимизации, возможные издержки выглядят гораздо более внушительными, нежели предполагаемый профит. Я имею в виду в случае размещения в одной базе. Тем не менее, скорее всего условный "маркетинг" меняет лишь ограниченное количество данных. Посему, возможно, получится держать "маркетологов" в отдельной базе, куда подливать данные из постоянно изменяемых больших таблиц репликацией, а то, что они там нагерерируют, время от времени сливать в основную боевую базу провереным скриптом. А утром пересобирать для них новую базу из свежено бэкапа с основного прода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 21:28 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Alex1975, create sysnonym ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 07:56 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Очень лысыйПосему, возможно, получится держать "маркетологов" в отдельной базе, куда подливать данные из постоянно изменяемых больших таблиц репликацией, а то, что они там нагерерируют, время от времени сливать в основную боевую базу провереным скриптом. А утром пересобирать для них новую базу из свежено бэкапа с основного прода.Я про этот вариант писал, и не только я. Но это черезмерно сложно для такой задачи. Сделать для тестирования распределённую систему из продакшена и теста - нереально, это будет по стоимости сравнимо с созданием всей системы. Для очень больших и ответственных систем, которые уже сделаны распределёнными, можно (и обязательно нужно) предусматривать работу разных частей системы в разных версиях, это при той же сложности хотя бы даст дополнительные плюсы, эта адская работа хотя бы не будет сделана только для тестирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 09:46 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
alexeyvgОчень лысыйПосему, возможно, получится держать "маркетологов" в отдельной базе, куда подливать данные из постоянно изменяемых больших таблиц репликацией, а то, что они там нагерерируют, время от времени сливать в основную боевую базу провереным скриптом. А утром пересобирать для них новую базу из свежено бэкапа с основного прода.Я про этот вариант писал, и не только я. Но это черезмерно сложно для такой задачи. Сделать для тестирования распределённую систему из продакшена и теста - нереально, это будет по стоимости сравнимо с созданием всей системы. Для очень больших и ответственных систем, которые уже сделаны распределёнными, можно (и обязательно нужно) предусматривать работу разных частей системы в разных версиях, это при той же сложности хотя бы даст дополнительные плюсы, эта адская работа хотя бы не будет сделана только для тестирования. На самом деле, в общем случае реализовать такую схему, как я описал, не так уж трудно и дорого, если база не слишком сложная по структуре и таблиц в ней не сотни. Ибо она не является в полном смысле слова распределённой системой. Другое дело, что если восстановление из бэкапа будет занимать несколько дней, то тогда, конечно, не вариант. Но поставить диагноз по фотографии, не видя исходный солюшен, понятно, задача неблагодарная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 17:31 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Очень лысыйНа самом деле, в общем случае реализовать такую схему, как я описал, не так уж трудно и дорого, если база не слишком сложная по структуре и таблиц в ней не сотни. Ибо она не является в полном смысле слова распределённой системой.Не вижу, почему "не является". Совершенно бескомпромиссно-полноценная распределённая система. Разве что одно упрощение - 2 узла, а не произвольное количество. Представьте, что у вас, например, 1С база, и поставили задачу "держать "маркетологов" в отдельной базе, куда подливать данные из постоянно изменяемых больших таблиц репликацией, а то, что они там нагерерируют, время от времени сливать в основную боевую базу провереным скриптом" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 23:57 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Очень лысыйНа самом деле, в общем случае реализовать такую схему, как я описал, не так уж трудно и дорого, если база не слишком сложная по структуре и таблиц в ней не сотни. Ибо она не является в полном смысле слова распределённой системой. Другое дело, что если восстановление из бэкапа будет занимать несколько дней, то тогда, конечно, не вариант. Но поставить диагноз по фотографии, не видя исходный солюшен, понятно, задача неблагодарная. Может в каких-то не сильно больших системах где десяток транзакций в секунду и можно реализовать. Но в больших тяжело. Я даже представить боюсь трудозатраты и количество багов которые огребем при реализации такой схемы. А все для того чтобы исключить гипотетическую вероятность того что кто-то через процедуры сможет покосить много не своих данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 17:33 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
а как много процедур должны отличаться от боевых? что насчет дополнительной прослойки по вызову процедур (и в ней проверять юзера и какую процедуру ему вызывать боевую или бета)? но это все места где идет вызов процедур боевых должны переписаться.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 18:35 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Guest993что насчет дополнительной прослойки по вызову процедур (и в ней проверять юзера и какую процедуру ему вызывать боевую или бета)? но это все места где идет вызов процедур боевых должны переписаться..Зачем такие сложности? Уже подсказали простое и надёжное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2018, 02:21 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Alex1975Очень лысыйНа самом деле, в общем случае реализовать такую схему, как я описал, не так уж трудно и дорого, если база не слишком сложная по структуре и таблиц в ней не сотни. Ибо она не является в полном смысле слова распределённой системой. Другое дело, что если восстановление из бэкапа будет занимать несколько дней, то тогда, конечно, не вариант. Но поставить диагноз по фотографии, не видя исходный солюшен, понятно, задача неблагодарная. Может в каких-то не сильно больших системах где десяток транзакций в секунду и можно реализовать. Но в больших тяжело. Я даже представить боюсь трудозатраты и количество багов которые огребем при реализации такой схемы. А все для того чтобы исключить гипотетическую вероятность того что кто-то через процедуры сможет покосить много не своих данных.Мало того, непонятна идея Очень лысый, как можно таким образом уберечь данные. Кривая процедура накосячит в данных, и они перенесутся репликацией в рабочую базу. Результат тот же, но с адской работой и дополнительными ошибками от самой распределённой схемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2018, 02:23 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
alexeyvgAlex1975пропущено... Может в каких-то не сильно больших системах где десяток транзакций в секунду и можно реализовать. Но в больших тяжело. Я даже представить боюсь трудозатраты и количество багов которые огребем при реализации такой схемы. А все для того чтобы исключить гипотетическую вероятность того что кто-то через процедуры сможет покосить много не своих данных.Мало того, непонятна идея Очень лысый, как можно таким образом уберечь данные. Кривая процедура накосячит в данных, и они перенесутся репликацией в рабочую базу. Результат тот же, но с адской работой и дополнительными ошибками от самой распределённой схемы. Ну я реплицировать предполагал из боевой в тестовую наоборот. Но оно, конечно, не для всякого случая подойдёт и вообще уже подсказали хороший вариант, так что извините, если что не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2018, 19:05 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39635787&tid=1689813]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 263ms |
| total: | 400ms |

| 0 / 0 |
