Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Есть задача организовать предрелизный сервер, на котором будут процедуры и код, которые надо будет после тестирования выкладывать на прод. Но он должен работать с реальными данными прод сервера. Поэтому надо разнести процедуры и таблицы. Единственный из вариантов, который пришел ко мне в голову, связать два сервера и по всем таблицам на предрелизном сервере создать вьюхи с именами таблиц, которые будут ссылаться на прод сервер. Может у кого-нибудь более интересные и простые варианты есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 11:24 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Alex1975, авторЕдинственный из вариантов, который пришел ко мне в голову, связать два сервера и по всем таблицам на предрелизном сервере создать вьюхи с именами таблиц, которые будут ссылаться на прод сервер. зачем такие сложности, сразу на прод и накатывайте чё уж черезь вьюхи всё ломать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 11:34 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
т.е. вы хотите не тестированным кодом лезть в прод? бэкап прода на "предрелиз" развернуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 11:36 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
На прод сейчас накатывается сразу, но опасно. Если что не учлось, то получается что мы тестим сейчас на живых клиентах. А они обижаются. Бэкап тоже не вариант, т.к. данные должны быть живыми и обновляемыми. Это не тестовый сервер разработчиков. И к нему будут подключены клиенты согласившиеся стать бета-тестерами. Но их результат должен менять боевую базу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 12:19 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Alex1975, разворачивайте боевой бэкап на тестовом сервере. Но для чего это? Нагрузочное тестирование? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 12:20 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Alex1975Бэкап тоже не вариант, т.к. данные должны быть живыми и обновляемыми. Это не тестовый сервер разработчиков. И к нему будут подключены клиенты согласившиеся стать бета-тестерами. Но их результат должен менять боевую базу.На боевом сервере создаете отдельную БД, содержащую только код, вместо таблиц синонимы на таблицы основной БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 12:31 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Владислав КолосовAlex1975, разворачивайте боевой бэкап на тестовом сервере. Но для чего это? Нагрузочное тестирование? Не вариант. Клиенты торгуют акциями. Все их результаты попадают в боевую. Задача выделить отдельный сервер, на котором бета тестеры (обычные клиенты, согласные за некие плюшки на возможные баги) будут работать, но все их результаты должны быть в боевой. Откуда бэк берет все данные, считает отчеты, меняет в обратку деньги и т.п. Задача этого предрелизного сервера, окончательно оттестить какие-то баги, которые прошли мимо разработчиков и отдела тестирования на тестовом сервере. Аналог мне показывали на Postgree. Там в базе только таблицы лежат, а весь код на PHP. И можно к боевой базе пробросить сколько угодно внешних сервисов, которые чем-то отличаются. Но исторически сложилось что вся бизнес-логика зашита в процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 12:35 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Alex1975, два отдельных сервера, но данные ездят репликацией? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 12:37 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Alex1975Задача выделить отдельный сервер, на котором бета тестеры (обычные клиенты, согласные за некие плюшки на возможные баги) будут работать, но все их результаты должны быть в боевой. Откуда бэк берет все данные, считает отчеты, меняет в обратку деньги и т.п. Задача этого предрелизного сервера, окончательно оттестить какие-то баги, которые прошли мимо разработчиков и отдела тестирования на тестовом сервереОтличная идея, хорошо придумали. Но зачем другой сервер? Можно сделать отдельную базу с процедурами, и синонимы на боевые таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 12:48 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
invm, Спасибо. Хороший вариант. А в плане производительности как синонимы себя ведут в сложных запросах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 12:53 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Alex1975invm, Спасибо. Хороший вариант. А в плане производительности как синонимы себя ведут в сложных запросах? пробросятся на оригиналы. При такой схеме можно как через синонимы, так и через представления (на них можно к оригиналам права вообще не давать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 12:55 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Спасибо всем за советы. Буду копать в сторону внедрения синонимов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 12:56 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Alex1975Бэкап тоже не вариант, т.к. данные должны быть живыми и обновляемыми. Это не тестовый сервер разработчиков. И к нему будут подключены клиенты согласившиеся стать бета-тестерами. Но их результат должен менять боевую базу.если ваши клиенты не изолированны друг от друга, то что про это думают другие, не согласившиеся стать бета-тестерами? :) если же изолированны, то заведите этих бета-тестеров на копию системы и всё (а нагрузочное тестирование делается по другому). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 13:05 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Дедушкаесли ваши клиенты не изолированны друг от друга, то что про это думают другие, не согласившиеся стать бета-тестерами? :) если же изолированны, то заведите этих бета-тестеров на копию системы и всё (а нагрузочное тестирование делается по другому). Ничего не думают. Если не хотят напарываться на баги, работают в боевой системе. Если не против багов могут на бете поработать, найти баг, получить плюшку за это. Копия тянет за собой кучу проблем синхронизации данных. А так вариант что если предрелиз не рабочий по каким-то причинам, то могут перейти на боевую и спокойно работать до момента багфикса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 14:47 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Alex1975, выглядит как какая-то безумная экономия на QA c ещё более странными оправданиями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 14:52 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
TaPaKAlex1975, выглядит как какая-то безумная экономия на QA c ещё более странными оправданиямиВыглядит как стандартное решение для ответственных проектов, с большим количеством пользователей. После тестирования на девелоперском окружении тестируется на стабильной тестовой системе, потом на версию переводится часть пользователей, и только потом уже все остальные. Тестовые системы не абсолютно адекватны боевым, вон, даже производители машин делают отзывы, а уж в софтостроении бета-версии вообще стандартная практика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 15:32 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
alexeyvgПосле тестирования на девелоперском окружении тестируется на стабильной тестовой системе, потом на версию переводится часть пользователей, и только потом уже все остальные.ну, собственно это я и написал Дедушкато заведите этих бета-тестеров на копию системы но у ТСа Alex1975Копия тянет за собой кучу проблем синхронизации данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 15:37 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
alexeyvgTaPaKAlex1975, выглядит как какая-то безумная экономия на QA c ещё более странными оправданиямиВыглядит как стандартное решение для ответственных проектов, с большим количеством пользователей. После тестирования на девелоперском окружении тестируется на стабильной тестовой системе, потом на версию переводится часть пользователей, и только потом уже все остальные. Тестовые системы не абсолютно адекватны боевым, вон, даже производители машин делают отзывы, а уж в софтостроении бета-версии вообще стандартная практика. всё звучит не плохо до того момента, что они всё это делают на одних и тех же объектах, что значить как минимум 1. Таблицы они никогда не меняют 2. Соотвественно триггеры/представления А что они тогда делают? Отчёты? Есть вариант что накатывают объекты сразу на прод, остальное на препрод, но тут ещё больше удивления, ну и так далее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 15:40 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Alex1975Копия тянет за собой кучу проблем синхронизации данных.т.е. у вас пользователи не изолированны и состояние системы для одних зависит от действий других. в таком случае у вас только один путь - эмулировать нагрузку на копии боевой системы где проводится финальное тестирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 15:42 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
TaPaKвсё звучит не плохо до того момента, что они всё это делают на одних и тех же объектах, что значить как минимум 1. Таблицы они никогда не меняют 2. Соотвественно триггеры/представления А что они тогда делают? Отчёты? Есть вариант что накатывают объекты сразу на прод, остальное на препрод, но тут ещё больше удивления, ну и так далее Структура таблиц меняется очень редко. И понятно что изменение таблиц после тестового сервера сразу попадут в бой без предрелизного сервера. Это минимальный риск. Триггеров тоже мало Представления также через синонимы использовать. Меняются постоянно процедуры в которых обрабатываются данные из таблиц. Их и надо через разные уровни тестирования провести. Дедушкат.е. у вас пользователи не изолированны и состояние системы для одних зависит от действий других. в таком случае у вас только один путь - эмулировать нагрузку на копии боевой системы где проводится финальное тестирование. А смысл? Это же обычные пользователи, которые работают как и на боевом и выйти за рамки и похерить данные никак не могут. И нагрузочное тестирование не нужно. Нужно вылавливание мелких багов, которые можно ловить вылизанным ТЗ, юнит тестами и хорошей и дорогой командой тестеров. Либо так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 16:09 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
какие синонимы?! а если у вас какой-нибудь delete/update будет над синонимом? только один вариант: поднимать копию каждый день, возможно, копию на "почти прямо сейчас", после чего накатывать туда релиз, заказчиков проинформировать о том, что на предрелизном сервере будет такая-то задержка относительно боевого, поэтому смотреть нужно не самые свежие данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 18:20 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Я с подобной задачей справлялся следующим образом: восстанавливал базу из боевого бэкапа, удалял скриптом весь программный код и накатывал его с помощью liquibase из соответствующей ветки в SVN. Получалось довольно быстро это делать. Тем более, что таковые манипуляции обычно не приходится проделывать каждый день. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 20:18 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Очень лысыйЯ с подобной задачей справлялся следующим образом: восстанавливал базу из боевого бэкапа, удалял скриптом весь программный код и накатывал его с помощью liquibase из соответствующей ветки в SVN. Получалось довольно быстро это делать. Тем более, что таковые манипуляции обычно не приходится проделывать каждый день. Ах, да. Бэкап не канает, ибо данные должны быть живыми и тестеры ещё и менять их дожны иметь возможность. Или не должны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 20:24 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
Но вообще сама схема тестирования выглядит как-то стрёмно. Я бы такое точно не разрешил делать. Хочешь работать на боевых данных - поднимай базу из бэкапов, или пользуй стендбай для чтения. Что за писание работы тестеров в боевую базу? Мало ли что там кодеры накодят, и, при доступе на прод, этот код там что-то похерит ненароком? Или, если есть доступ на чтение основных данных на проде, кодеры напишут неудачный запрос, который нагнёт прод на некоторое время? Кто будет убытки компенсировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 20:30 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#18+
TaPaKalexeyvgпропущено... Выглядит как стандартное решение для ответственных проектов, с большим количеством пользователей. После тестирования на девелоперском окружении тестируется на стабильной тестовой системе, потом на версию переводится часть пользователей, и только потом уже все остальные. Тестовые системы не абсолютно адекватны боевым, вон, даже производители машин делают отзывы, а уж в софтостроении бета-версии вообще стандартная практика. всё звучит не плохо до того момента, что они всё это делают на одних и тех же объектах, что значить как минимум 1. Таблицы они никогда не меняют 2. Соотвественно триггеры/представления А что они тогда делают? Отчёты? Есть вариант что накатывают объекты сразу на прод, остальное на препрод, но тут ещё больше удивления, ну и так далееТак ТС пишет - "только для процедур". Когда планируется менять модель, то действуют так, как предполагаете вы и Дедушка - то есть тестируют на тестовых системах, потом заливают на прод, минуя стадию бета-тестирования. Собственно, модель данных ведь намного стабильнее кода, так что в принципе это работающая, годная стратегия. Дедушкану, собственно это я и написал Дедушкато заведите этих бета-тестеров на копию системыНужно же на реальных данных тестировать. Иначе это не называют "бета-тестированием". Как могут часть пользователей работать в системе, вместе с остальными пользователями, но не на реальных данных? 10 кассиров из ста работают со своей базой??? Бета тестеры - это обычные работающие с продуктом люди, но работающие не с текущей стабильной версией, а с кандидатом на неё. Да, репликациями так можно сделать, но распределённая система сама по себе нетривиальна, слишком сложна, что бы делать её только для тестирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 00:46 |
|
||
|
Разделить процедуры и таблицу
|
|||
|---|---|---|---|
|
#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?all=1&fid=46&tid=1689813]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 284ms |
| total: | 400ms |

| 0 / 0 |
