|
|
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
Интересно кто как решает проблему синхронизации тестовой базы и боевой. Вы работаете сразу на боевой? У вас куча скриптов по переносу и синхронизации? Вы на автомате запускаете скрипты на двух базах и точно также дублируете все изменения структуры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2007, 10:08 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
А зачем тогда тестовая,если все катить на боевую?Куча скриптов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2007, 15:23 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
>>Вы работаете сразу на боевой? Это шутка ???? Конечно на бекапе. И потом.. "работаете" в смысле разрабатываете ? >>У вас куча скриптов по переносу и синхронизации? Да. >>Вы на автомате запускаете скрипты на двух базах и точно также дублируете все изменения структуры? Почему на двух ? Почему на автомате ? В тестовой уже есть изменения. Главное получить правильный скрипт "тест" -> "продакшн". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2007, 15:26 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
LSVЭто шутка ???? Нет, почему же. Во-первых, бывают довольно простые действия, где негде ошибиться. Во-вторых, бывают люди, которые не нуждаются в тестах. LSVКонечно на бекапе. И потом.. "работаете" в смысле разрабатываете ? В смысле разрабатываете, у нас всё-таки форум разработчиков. LSV >>Вы на автомате запускаете скрипты на двух базах и точно также дублируете все изменения структуры? Почему на двух ? Почему на автомате ? В тестовой уже есть изменения. Главное получить правильный скрипт "тест" -> "продакшн". Мои вопросы это лишь варианты того, как может быть. В общем, понятно... Похоже всё-таки скрипты переноса.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2007, 16:04 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
Нет, почему же. Во-первых, бывают довольно простые действия, где негде ошибиться. Во-вторых, бывают люди, которые не нуждаются в тестах. Ох-х-х... 1. ошибится можно всегда, даже ложку пронести мимо рта, если сильно задуматься 2. бывают люди, которые не нуждаются в тестах см. п. 1 Кроме того, если вести разработку на продакшн (скажу про Oracle, полагаю, что подобные аспекты есть и в других базах): 1. если делается DDL объекта (например, изменяется процедура), то все зависисмые объекты инвалидируются и требуют перекомпиляции. Если таких объектов много и они взаимозависимы, то этот процесс может быть не таким коротким, при этом пользователе, работающие с этими объектами, отдыхают 2. если инвалидируется объект, то инвалидируются все SQL и PL/SQL предложения, которые к этому моменту уже использовались и лежат в shared pool. При очередном обращении к ним они должны подвергнуться новому разбору, соответственно, эффективность работы кэшей снижается 3. если изменяется таблица (например, меняем параметры колонки), то она на момент выполнения операции блокируется в монопольном режиме, соответственно, остальные ждут 4. если уже кто-то из пользователей уже использует эту таблицу, то придется ждать, когда ее отпустят или срубать сессии пользователей Поэтому перенос изменений на продакшн делается в нерабочее время или в момент наименьшей загрузки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2007, 16:25 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
tru55 Как же в Oracle всё сложно! MSSQL в этом тут явно выигрывает. И в случае блокировок, кстати, блокирует только часть записей, а не все. Изменение структуры таблицы - да, но это наиболее редкое из всех возможных изменений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2007, 18:12 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
MSSQL в этом тут явно выигрывает. И в случае блокировок, кстати, блокирует только часть записей, а не все. Изменение структуры таблицы - да, но это наиболее редкое из всех возможных изменений 1. А в каких пунктах из перечисленных мной и как выигрывает? 2. Про блокировку таблицы при изменении ее структуры я и говорил (кстати, при разработке это не такое уж и редкое изменение). При обычной DML-операции вообще блокируется не часть строк, а только одна строка (ну или только те строки, которые попадают под эту операцию) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2007, 18:18 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
Frankie wrote: > Как же в Oracle всё сложно! > > MSSQL в этом тут явно выигрывает. вот ЭТО - точно выигрывает Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2007, 18:23 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
tru551. А в каких пунктах из перечисленных мной и как выигрывает? 1 и 2. Никакой перекомпиляции связанных процедур не нужно, а про shared pool в MSSQL вообще не слышал. lockyвот ЭТО - точно выигрывает Хороший пример. Кстати, мне совершенно непонятен смысл операций IF EXISTS DROP потом CREATE, ведь логичнее делать IF NOT EXISTS CREATE потом ALTER. При таком варианте не слетают права. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 15:18 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
FrankieИнтересно кто как решает проблему синхронизации тестовой базы и боевой. Я бы начал с того, что баз должно быть не две, а как минимум три - разработка, тестирование и продакшн. FrankieКак же в Oracle всё сложно! "Тяжело в учении - легко в бою". FrankieMSSQL в этом тут явно выигрывает. Спорно. На эту тему был большой топик, в котором tygra как отстаиватель преимуществ MSSQL так и не смог нарисовать цельную картину "каким образом я накатываю онлайн патчи так, что все замечательно". lockyвот ЭТО - точно выигрывает use tempdb go if object_id('test_proc','P') is not null drop procedure test_proc go create proc test_proc Хм. Точно? Ну ладно. Правда, лично я по-прежнему буду делать Код: plaintext Frankie1 и 2. Никакой перекомпиляции связанных процедур не нужно, Это не совсем так, но в чем-то. Возможность незаметно положить в базу некорректную процедуру - я бы не считал преимуществом, но вопрос вкусов. Frankie а про shared pool в MSSQL вообще не слышал. "Не слышал" - это сильный аргумент. Тем не менее, он там есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 15:53 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
Frankie wrote: > locky > вот ЭТО - точно выигрывает > > > Хороший пример. Кстати, мне совершенно непонятен смысл операций IF > EXISTS DROP потом CREATE, ведь логичнее делать IF NOT EXISTS CREATE > потом ALTER. При таком варианте не слетают права. Я знаю, что не слетают :-) Смысл был в простое примера. А глубинный смысл примера: если при последовательном обновлении процедур на очередной из них произошла ошибка - один rollback вертает взад все ранее залитые процедуры. Softwarer - Вас касается :-) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 17:43 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
lockyА глубинный смысл примера: если при последовательном обновлении процедур на очередной из них произошла ошибка - один rollback вертает взад все ранее залитые процедуры. Признаться, этот аспект меня крайне мало беспокоит. Впрочем, если хотите риторики - учитывая отсутствие контроля ошибок, "на очередной из них произошла ошибка" - событие, мягко говоря, не очень вероятное. Реальным исходом будет успешный commit и массовое выпадание ошибок у пользователей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 17:46 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
softwarer wrote: > Признаться, этот аспект меня крайне мало беспокоит. Впрочем, если хотите > риторики - учитывая отсутствие контроля ошибок, "на очередной из них > произошла ошибка" - событие, мягко говоря, не очень вероятное. Реальным > исходом будет успешный commit и массовое выпадание ошибок у пользователей. Меня такой аспект беспокоит, и очень :-) Частенько необходимо бывает "пакетная" заливка взаимосвязанных процедур вкупе с изменением схемы. Для контроля ошибок можно вставить set xact_abort on и будет щастие. кроме того - это ведь демонстрация возможности, а не реальный скрипт накатывания патча и/или сорс код патч-инсталлера. А вероятное событие, невероятное - понятие философическое. В идеале ваще не нужны ни rollback, ни транзакции как таковые - приложения (в т.ч. сервера) должны быть написаны без ошибок и должны работать без ошибок. Одно токо непонятно - кому должны :-( Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 18:02 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
lockyМеня такой аспект беспокоит, и очень :-) Частенько необходимо бывает "пакетная" заливка взаимосвязанных процедур вкупе с изменением схемы. При этом "частенько" таки приходится выгонять пользователей, работающих с этой частью приложения. Во всяком случае, tygra так и не смог рассказать, за счет чего в нетривиальных случаях можно обойтись и без выгоняния пользователей, и без риска для данных. Раз пользователей выгнали, значит первое и основное преимущество транзакции - невидимость изменений для пользователей - становится безразличным. Возможность отката одним rollback-ом - не спорю, удобна. Но чего-то принципиального я в ней не вижу. В любом случае по-хорошему нужно делать инсталлятор, который берет на себя кучу технических моментов и в том числе может делать откат. rollback лишь делает сомнительную практику наката патчей голыми скриптами несколько менее сомнительной. lockyДля контроля ошибок можно вставить set xact_abort on и будет щастие. Не вижу разницы и щастия соответственно. lockyА вероятное событие, невероятное - понятие философическое. Только до тех пор, пока рассуждения идут на "принципиально качественном" уровне. Как только делается хотя бы самая грубая количественная оценка - насколько поможет эта фича - понятие становится сугубо прагматичным. Скажем, по моим ощущениям, в подавляющем большинстве случаев "наката у клиентов присланного им скрипта" такой скрипт ошибку в процедуре не обнаружит и выполнит commit. Соответственно, привлекательность rollback-а (который все равно не будет исполнен) несколько блекнет.... lockyВ идеале ваще не нужны ни rollback, ни транзакции как таковые - приложения (в т.ч. сервера) должны быть написаны без ошибок и должны работать без ошибок. Глупость, уж извини. Транзакции защищают вовсе не от "написаны с ошибками". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 18:39 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
softwarer wrote: > При этом "частенько" таки приходится выгонять пользователей, работающих > с этой частью приложения. Во всяком случае, *tygra* так и не смог > рассказать, за счет чего в нетривиальных случаях можно обойтись и без > выгоняния пользователей, и без риска для данных. Никто и не спорит, что иногда (не всегда, но - бывает!) нужно выгнать юзеров. > Раз пользователей выгнали, значит первое и основное преимущество > транзакции - невидимость изменений для пользователей - становится > безразличным. Главное преимущество транзакции, как мне кажется - она "или всё, или ничего". > Возможность отката одним rollback-ом - не спорю, удобна. Но чего-то > принципиального я в ней не вижу. В любом случае по-хорошему нужно делать > инсталлятор, который берет на себя кучу технических моментов и в том > числе может делать откат. rollback лишь делает сомнительную практику > наката патчей голыми скриптами несколько менее сомнительной. Да, очень удобно перед накатываем патча делать полный бэкап, а затем - в случае "облома" - выгонять тех, кого не выгнал и тратить N времени на restore. > > locky > Для контроля ошибок можно вставить set xact_abort on и будет щастие. > Не вижу разницы и щастия соответственно. Разница в том, что при xact_abort on в случае ошибки транзакция откатится и все изменения внесенные патчем тоже будут откачены, т.е. - патч и не накатывался. и инсталлеру не надо анализировать "если произошла ошибка на шаге X - rollback". Но это - на любителя, кто как пишет. Кто Xact_abort ставит, кто анализирует шаги - дело вкуса, наверное. > Только до тех пор, пока рассуждения идут на "принципиально качественном" > уровне. Как только делается хотя бы самая грубая количественная оценка - > насколько поможет эта фича - понятие становится сугубо прагматичным. очень прагматично. У меня синхронно с внутренними метаданными системы регенерируется код обработчиков. И мне не хотелось бы, дабы метаданные с обработчиками расходились. Хотя - зависит от дизайна системы. > Скажем, по моим ощущениям, в подавляющем большинстве случаев "наката у > клиентов присланного им скрипта" такой скрипт ошибку в процедуре не > обнаружит и выполнит commit. Соответственно, привлекательность > rollback-а (который все равно не будет исполнен) несколько блекнет.... Обнаружит, и откатит (см. выше про xact_abort). точнее - ошибку во внутренней логике процедуры - нет, не найдет. а вот ошибку при накатывании патча - найдет вполне. И откатится. > locky > В идеале ваще не нужны ни rollback, ни транзакции как таковые - > приложения (в т.ч. > сервера) должны быть написаны без ошибок и должны работать без ошибок. > > Глупость, уж извини. Транзакции защищают вовсе не от "написаны с ошибками". В случае с неправильно написанным патчем - защищают и от этого тоже. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 18:58 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
Немного соврал. xact_abort не всегда спасает. всегда спасает - инсталлер, ловящий ошибки и делающий rollback. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 19:05 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
lockyГлавное преимущество транзакции, как мне кажется - она "или всё, или ничего". Само по себе это ничего особого не стоит. Грубо говоря, представьте себе многопользовательскую СУБД с поддержкой транзакций и умеющую только грязное чтение. Давайте договоримся, что блокировок в ней нет - чтобы не было соблазна руками эмулировать более высокие уровни изоляции. Ну и представьте себе решение практических задач в такой ситуации. Итого - получим, что если изоляции нет, то поддержка транзакций в общем-то и ничего интересного не дает. Обратную ситуацию (изоляция без возможности отката) - представить и использовать можно. locky> Возможность отката одним rollback-ом - не спорю, удобна. Но чего-то > принципиального я в ней не вижу. В любом случае по-хорошему нужно делать > инсталлятор, который берет на себя кучу технических моментов и в том > числе может делать откат. rollback лишь делает сомнительную практику > наката патчей голыми скриптами несколько менее сомнительной. Да, очень удобно перед накатываем патча делать полный бэкап, а затем - в случае "облома" - выгонять тех, кого не выгнал и тратить N времени на restore. Хм. У меня такое впечатление, что Вы попытались проявить иронию. Желание безусловно хорошее, но не в том случае, когда оно заменяет такие шаги алгоритма как Прочитать сказанное Подумать Применить имеющиеся знания Сугубо ради примера - давайте даже представим, что мы зачем-то решили идти бредовым путем восстановления. И зачем полный бэкап? MSSQL что, не умеет откатываться к заданной точке? А теперь предлагаю сделать rollback и выполнить таки вышеописанные шаги. locky > Не вижу разницы и щастия соответственно. Разница в том, что при xact_abort on в случае ошибки транзакция откатится и все изменения внесенные патчем тоже будут откачены, Для того, чтобы xact_abort откатил транзакцию, нужно, чтобы сервер зафиксировал ошибку. А поскольку сервер ошибку не зафиксирует - xact_abort ни на что не влияет. Процедура спокойно закоммитится, патч завершится, пользователи вернутся в базу - и только тут посыпятся ошибки. lockyочень прагматично. У меня синхронно с внутренними метаданными системы регенерируется код обработчиков. И мне не хотелось бы, дабы метаданные с обработчиками расходились. Хотя - зависит от дизайна системы. Я понимаю это "не хотелось бы", но в данном случае это выбор между "хорошим" и "нормальным". lockyОбнаружит, и откатит (см. выше про xact_abort). Не обнаружит и не откатит. lockyточнее - ошибку во внутренней логике процедуры - нет, не найдет. Вот именно что. Скажем, если патч номер 28 по каким-то причинам не накатился - патч номер 29 скорее всего накатится, и проявится только когда пользователи вернутся в базу, выполнят процедуру и получат какой-нибудь table not found. lockyа вот ошибку при накатывании патча - найдет вполне. И откатится. А что это за "ошибка при накатывании патча"? Синтаксическая ошибка в скрипте, какой-нибудь там UNSERT вместо INSERT-а? Имхо - 95% ошибок, которые могли бы обнаружиться на этом этапе, неизбежно будут найдены раньше, при тестировании патча (я не имею в виду некоего специального особо качественного тестирования, но скорее что-то типа "хоть раз прогнать у себя перед тем как отправлять пользователям"). Конечно, есть некоторые случаи, когда будет шанс - но полагаться на то, что такой защиты хватит, мягко говоря, несерьезно. lockyВ случае с неправильно написанным патчем - защищают и от этого тоже. Это мы обсуждаем выше. Ты выдвинул весьма универсальное утверждение (в идеале - транзакции вообще не будут нужны). Так вот: даже в идеале, когда железо никогда не будет ломаться, электричество никогда не будет отключаться, а пользователи никогда не будут ошибаться - транзакции будут нужны. Ради изоляции. Единственно, в этом идеальном случае отпадет потребность в rollback. Ну а если счесть идеальной программой ту, которая хорошо работает и с неидеальными пользователями - так и rollback пригодится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 22:08 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
Как интересно, а использовать репликацию для синхронизации серверов -- не модно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2007, 05:17 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
LSV>>Вы работаете сразу на боевой? Это шутка ???? Конечно на бекапе. И потом.. "работаете" в смысле разрабатываете ? >>У вас куча скриптов по переносу и синхронизации? Да.. Да. Берешь из бекапа копию для тестирования и работаешь на ней. Скрипт только для восстановления лога ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2007, 06:21 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
Я так приспособился: Ввод/редактирование данных на клиенте в момент разработки и отладки клиента - на тестовой БД. Дополнение структуры БД - новые таблицы, новые поля в старых - на основной. После этого бэкап основной и рестор в тестовую. Подозрительно опасные изменения в БД - перенос сущностей из одной таблицы в другую, переходот 1:М ко М:М - отлаживаю на тестовой, делаю скрипты, которые потом накатываю на штатную, когда она без пользователей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2007, 19:29 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
softwarer wrote: Многое (точнее - всё) поскипано :) Дабы не разводить беседу в неподходящем топике, позволю себе резюмировать: возможность откатывать DDL - штука полезная, и иногда очень даже может пригодится и/или помочь. Остальное - дело вкуса. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2007, 12:43 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
softwarer FrankieИнтересно кто как решает проблему синхронизации тестовой базы и боевой. Я бы начал с того, что баз должно быть не две, а как минимум три - разработка, тестирование и продакшн. У нас весь отдел автоматизации - три человека + аналитик! Не те масштабы. Ещё раз спасибо за мнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2007, 18:19 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
Frankie softwarerЯ бы начал с того, что баз должно быть не две, а как минимум три - разработка, тестирование и продакшн. У нас весь отдел автоматизации - три человека + аналитик! Не те масштабы. Количество людей тут не при чем. Названное - минимум, который потребуется даже если вообще один человек на все. Смотрите сами: Production - не место для экспериментов. Туда должны попадать только полностью протестированные решения (нет, конечно при десятке пользователей и некритичной задаче это не так, но мы же не об этом случае?). Development - наоборот, место для экспериментов. Он практически никогда не соответствует production-у, поскольку в нем остаются "хвосты" - то, что так и не попало в версию, заделы на будущее, которые пока рано выпускать, а как правило еще и изменения, которые прямо на ходу вносят другие разработчики. Вывод: грамотное тестирование на Development сервере практически невозможно. Код, который работает на development-е запросто может свалиться на production например потому, что опирается на чужую функцию, которая еще не попала в релиз. Вывод: нужен еще один экземпляр БД, точная копия Production, на котором будут тестироваться как скрипты, так и собственно приложение перед попаданием на боевой. Вот и все - даже если один человек. Без тестового сервера можно обойтись только в одном случае: если во-первых, постоянно заливать Development с Production-а, во-вторых, выпускать в версию только "все изменения на Development одновременно", при этом тщательно следя за отсутствием хвостов, ну а в-третьих, перед началом тестирования убивать development (перезаливать его с production-а) и накатывать на него все те скрипты, которыми потом будет догоняться боевой. Но это - экстремально неудобный режим, завести еще один экземпляр намного проще и удобнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2007, 19:40 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
softwarerProduction - не место для экспериментов. Туда должны попадать только полностью протестированные решения (нет, конечно при десятке пользователей и некритичной задаче это не так, но мы же не об этом случае?). Тестированием у нас занимаются пользователи. База достаточно хорошо разделена по областям использования, возможно независимо модифицировать отдельные участки без всякого страха. Кроме того, на production существуют тестовые объекты - например я могу скопировать боевую процедуру, перенаправить клиента на неё, менять и отлаживать на актуальных данными (речь идёт естественно о select-процедурах). Кстати, тестовая база на боевом сервере у нас есть и используется, когда пользователи тестируют какой-то большой новый блок. А поддержание двух баз для тестирования с данными, актуальными production опять-таки в нашем случае просто накладно. Вот и все - даже если один человек. Без тестового сервера можно обойтись только в одном случае: если во-первых, постоянно заливать Development с Production-а Чаще всего нужно переписывать только таблицу с константами айдишников. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2007, 16:42 |
|
||
|
Тестовая БД vs Боевая БД
|
|||
|---|---|---|---|
|
#18+
FrankieТестированием у нас занимаются пользователи. Я понимаю, что случаи бывают разные, но в ответ на эту фразу так и просится картинка с гробом ;-) Пусть занимаются пользователи. Но это не отменяет необходимости в тестовой базе, на которой можно проверить версию, не рискуя поломать боевые данные. Если, конечно, эти данные важны. FrankieБаза достаточно хорошо разделена по областям использования, возможно независимо модифицировать отдельные участки без всякого страха. Я... рад за Вас, но сказанному мной это коллинеарно. FrankieКроме того, на production существуют тестовые объекты - например я могу скопировать боевую процедуру, перенаправить клиента на неё, менять и отлаживать на актуальных данными Можете, если конечно наплевать на то, что из-за этой процедуры production может встать раком, например, по производительности. Непонятно, правда, зачем так хитрить, но это мелочи. Frankie(речь идёт естественно о select-процедурах). Мнение softwarer-а о select-процедурах skipped FrankieКстати, тестовая база на боевом сервере у нас есть и используется, когда пользователи тестируют какой-то большой новый блок. Замечательно. Тогда в чем вопрос, почему Вы убеждаете меня, что она не нужна? И зачем вам тогда калечить боевой вышеописанным образом? FrankieА поддержание двух баз для тестирования Каких двух? Откуда двух? Разве у меня где-нибудь было сказано про необходимость двух тестовых баз? Frankieс данными, актуальными production опять-таки в нашем случае просто накладно. Вот этого я, уж извините, не понимаю. У вас с одной стороны тестирование пользователями на боевых данных, а с другой стороны терабайтная база? Да и даже ладно, собственно, полной копии не требуется (хотя обычно полную копию делать проще и дешевле). С боевой нужны DDL и справочники, остальное можно резать. FrankieЧаще всего нужно переписывать только таблицу с константами айдишников. Ну если это действие поможет убить все левые модификации, которые успели наплодить девелоперы, то этого хватит.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2007, 18:25 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=121&tid=1544574]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
77ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 526ms |

| 0 / 0 |
