powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Тестовая БД vs Боевая БД
25 сообщений из 54, страница 1 из 3
Тестовая БД vs Боевая БД
    #34454975
Frankie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно кто как решает проблему синхронизации тестовой базы и боевой.

Вы работаете сразу на боевой?
У вас куча скриптов по переносу и синхронизации?
Вы на автомате запускаете скрипты на двух базах и точно также дублируете все изменения структуры?
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34456431
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем тогда тестовая,если все катить на боевую?Куча скриптов.
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34456450
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Вы работаете сразу на боевой?

Это шутка ????
Конечно на бекапе. И потом.. "работаете" в смысле разрабатываете ?

>>У вас куча скриптов по переносу и синхронизации?

Да.

>>Вы на автомате запускаете скрипты на двух базах и точно также дублируете все изменения структуры?

Почему на двух ? Почему на автомате ? В тестовой уже есть изменения. Главное получить правильный скрипт "тест" -> "продакшн".
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34456595
Frankie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVЭто шутка ????
Нет, почему же. Во-первых, бывают довольно простые действия, где негде ошибиться. Во-вторых, бывают люди, которые не нуждаются в тестах.

LSVКонечно на бекапе. И потом.. "работаете" в смысле разрабатываете ?
В смысле разрабатываете, у нас всё-таки форум разработчиков.

LSV
>>Вы на автомате запускаете скрипты на двух базах и точно также дублируете все изменения структуры?

Почему на двух ? Почему на автомате ? В тестовой уже есть изменения. Главное получить правильный скрипт "тест" -> "продакшн".
Мои вопросы это лишь варианты того, как может быть.

В общем, понятно... Похоже всё-таки скрипты переноса....
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34456680
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, почему же. Во-первых, бывают довольно простые действия, где негде ошибиться. Во-вторых, бывают люди, которые не нуждаются в тестах.

Ох-х-х...
1. ошибится можно всегда, даже ложку пронести мимо рта, если сильно задуматься
2. бывают люди, которые не нуждаются в тестах
см. п. 1

Кроме того, если вести разработку на продакшн (скажу про Oracle, полагаю, что подобные аспекты есть и в других базах):
1. если делается DDL объекта (например, изменяется процедура), то все зависисмые объекты инвалидируются и требуют перекомпиляции. Если таких объектов много и они взаимозависимы, то этот процесс может быть не таким коротким, при этом пользователе, работающие с этими объектами, отдыхают
2. если инвалидируется объект, то инвалидируются все SQL и PL/SQL предложения, которые к этому моменту уже использовались и лежат в shared pool. При очередном обращении к ним они должны подвергнуться новому разбору, соответственно, эффективность работы кэшей снижается
3. если изменяется таблица (например, меняем параметры колонки), то она на момент выполнения операции блокируется в монопольном режиме, соответственно, остальные ждут
4. если уже кто-то из пользователей уже использует эту таблицу, то придется ждать, когда ее отпустят или срубать сессии пользователей


Поэтому перенос изменений на продакшн делается в нерабочее время или в момент наименьшей загрузки...
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34457175
Frankie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tru55
Как же в Oracle всё сложно!

MSSQL в этом тут явно выигрывает. И в случае блокировок, кстати, блокирует только часть записей, а не все. Изменение структуры таблицы - да, но это наиболее редкое из всех возможных изменений.
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34457191
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSSQL в этом тут явно выигрывает. И в случае блокировок, кстати, блокирует только часть записей, а не все. Изменение структуры таблицы - да, но это наиболее редкое из всех возможных изменений

1. А в каких пунктах из перечисленных мной и как выигрывает?
2. Про блокировку таблицы при изменении ее структуры я и говорил (кстати, при разработке это не такое уж и редкое изменение). При обычной DML-операции вообще блокируется не часть строк, а только одна строка (ну или только те строки, которые попадают под эту операцию)
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34457221
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
use tempdb
go
if object_id('test_proc','P') is not null drop procedure test_proc
go
create proc test_proc
as select 'old proc'
go
exec test_proc
go

begin tran
go
if object_id('test_proc','P') is not null drop procedure test_proc
go
create proc test_proc
as select 'new proc'
go
exec test_proc
go
rollback
go

exec test_proc


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
--------
old proc

( 1  row(s) affected)


--------
new proc

( 1  row(s) affected)


--------
old proc

( 1  row(s) affected)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34459646
Frankie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tru551. А в каких пунктах из перечисленных мной и как выигрывает?
1 и 2. Никакой перекомпиляции связанных процедур не нужно, а про shared pool в MSSQL вообще не слышал.

lockyвот ЭТО - точно выигрывает
Хороший пример. Кстати, мне совершенно непонятен смысл операций IF EXISTS DROP потом CREATE, ведь логичнее делать IF NOT EXISTS CREATE потом ALTER. При таком варианте не слетают права.
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34459822
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
create or replace procedure test_proc .....

Frankie1 и 2. Никакой перекомпиляции связанных процедур не нужно,
Это не совсем так, но в чем-то. Возможность незаметно положить в базу некорректную процедуру - я бы не считал преимуществом, но вопрос вкусов.

Frankie а про shared pool в MSSQL вообще не слышал.
"Не слышал" - это сильный аргумент. Тем не менее, он там есть.
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34460214
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frankie wrote:
> locky
> вот ЭТО - точно выигрывает
>
>
> Хороший пример. Кстати, мне совершенно непонятен смысл операций IF
> EXISTS DROP потом CREATE, ведь логичнее делать IF NOT EXISTS CREATE
> потом ALTER. При таком варианте не слетают права.
Я знаю, что не слетают :-)
Смысл был в простое примера.

А глубинный смысл примера: если при последовательном обновлении процедур
на очередной из них произошла ошибка - один rollback вертает взад все
ранее залитые процедуры.
Softwarer - Вас касается :-)
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34460228
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyА глубинный смысл примера: если при последовательном обновлении процедур
на очередной из них произошла ошибка - один rollback вертает взад все
ранее залитые процедуры.
Признаться, этот аспект меня крайне мало беспокоит. Впрочем, если хотите риторики - учитывая отсутствие контроля ошибок, "на очередной из них произошла ошибка" - событие, мягко говоря, не очень вероятное. Реальным исходом будет успешный commit и массовое выпадание ошибок у пользователей.
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34460268
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer wrote:
> Признаться, этот аспект меня крайне мало беспокоит. Впрочем, если хотите
> риторики - учитывая отсутствие контроля ошибок, "на очередной из них
> произошла ошибка" - событие, мягко говоря, не очень вероятное. Реальным
> исходом будет успешный commit и массовое выпадание ошибок у пользователей.
Меня такой аспект беспокоит, и очень :-)
Частенько необходимо бывает "пакетная" заливка взаимосвязанных процедур
вкупе с изменением схемы.
Для контроля ошибок можно вставить set xact_abort on и будет щастие.
кроме того - это ведь демонстрация возможности, а не реальный скрипт
накатывания патча и/или сорс код патч-инсталлера.
А вероятное событие, невероятное - понятие философическое. В идеале ваще
не нужны ни rollback, ни транзакции как таковые - приложения (в т.ч.
сервера) должны быть написаны без ошибок и должны работать без ошибок.
Одно токо непонятно - кому должны :-(
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34460346
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyМеня такой аспект беспокоит, и очень :-)
Частенько необходимо бывает "пакетная" заливка взаимосвязанных процедур
вкупе с изменением схемы.
При этом "частенько" таки приходится выгонять пользователей, работающих с этой частью приложения. Во всяком случае, tygra так и не смог рассказать, за счет чего в нетривиальных случаях можно обойтись и без выгоняния пользователей, и без риска для данных.

Раз пользователей выгнали, значит первое и основное преимущество транзакции - невидимость изменений для пользователей - становится безразличным.

Возможность отката одним rollback-ом - не спорю, удобна. Но чего-то принципиального я в ней не вижу. В любом случае по-хорошему нужно делать инсталлятор, который берет на себя кучу технических моментов и в том числе может делать откат. rollback лишь делает сомнительную практику наката патчей голыми скриптами несколько менее сомнительной.

lockyДля контроля ошибок можно вставить set xact_abort on и будет щастие.
Не вижу разницы и щастия соответственно.

lockyА вероятное событие, невероятное - понятие философическое.
Только до тех пор, пока рассуждения идут на "принципиально качественном" уровне. Как только делается хотя бы самая грубая количественная оценка - насколько поможет эта фича - понятие становится сугубо прагматичным.

Скажем, по моим ощущениям, в подавляющем большинстве случаев "наката у клиентов присланного им скрипта" такой скрипт ошибку в процедуре не обнаружит и выполнит commit. Соответственно, привлекательность rollback-а (который все равно не будет исполнен) несколько блекнет....

lockyВ идеале ваще не нужны ни rollback, ни транзакции как таковые - приложения (в т.ч.
сервера) должны быть написаны без ошибок и должны работать без ошибок.
Глупость, уж извини. Транзакции защищают вовсе не от "написаны с ошибками".
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34460381
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34460394
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного соврал.
xact_abort не всегда спасает. всегда спасает - инсталлер, ловящий ошибки
и делающий rollback.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34460628
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 пригодится.
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34460791
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как интересно, а использовать репликацию для синхронизации серверов -- не модно?
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34460798
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSV>>Вы работаете сразу на боевой?

Это шутка ????
Конечно на бекапе. И потом.. "работаете" в смысле разрабатываете ?

>>У вас куча скриптов по переносу и синхронизации?

Да..

Да.
Берешь из бекапа копию для тестирования и работаешь на ней.
Скрипт только для восстановления лога
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34461338
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так приспособился:

Ввод/редактирование данных на клиенте в момент разработки и отладки клиента - на тестовой БД.
Дополнение структуры БД - новые таблицы, новые поля в старых - на основной. После этого бэкап основной и рестор в тестовую.
Подозрительно опасные изменения в БД - перенос сущностей из одной таблицы в другую, переходот 1:М ко М:М - отлаживаю на тестовой, делаю скрипты, которые потом накатываю на штатную, когда она без пользователей.
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34463182
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer wrote:
Многое (точнее - всё) поскипано :)

Дабы не разводить беседу в неподходящем топике, позволю себе
резюмировать: возможность откатывать DDL - штука полезная, и иногда
очень даже может пригодится и/или помочь.
Остальное - дело вкуса.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34467458
Frankie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer FrankieИнтересно кто как решает проблему синхронизации тестовой базы и боевой.
Я бы начал с того, что баз должно быть не две, а как минимум три - разработка, тестирование и продакшн.
У нас весь отдел автоматизации - три человека + аналитик! Не те масштабы.

Ещё раз спасибо за мнения.
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34467675
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frankie softwarerЯ бы начал с того, что баз должно быть не две, а как минимум три - разработка, тестирование и продакшн.
У нас весь отдел автоматизации - три человека + аналитик! Не те масштабы.
Количество людей тут не при чем. Названное - минимум, который потребуется даже если вообще один человек на все. Смотрите сами:

Production - не место для экспериментов. Туда должны попадать только полностью протестированные решения (нет, конечно при десятке пользователей и некритичной задаче это не так, но мы же не об этом случае?).

Development - наоборот, место для экспериментов. Он практически никогда не соответствует production-у, поскольку в нем остаются "хвосты" - то, что так и не попало в версию, заделы на будущее, которые пока рано выпускать, а как правило еще и изменения, которые прямо на ходу вносят другие разработчики.

Вывод: грамотное тестирование на Development сервере практически невозможно. Код, который работает на development-е запросто может свалиться на production например потому, что опирается на чужую функцию, которая еще не попала в релиз.

Вывод: нужен еще один экземпляр БД, точная копия Production, на котором будут тестироваться как скрипты, так и собственно приложение перед попаданием на боевой.

Вот и все - даже если один человек. Без тестового сервера можно обойтись только в одном случае: если во-первых, постоянно заливать Development с Production-а, во-вторых, выпускать в версию только "все изменения на Development одновременно", при этом тщательно следя за отсутствием хвостов, ну а в-третьих, перед началом тестирования убивать development (перезаливать его с production-а) и накатывать на него все те скрипты, которыми потом будет догоняться боевой. Но это - экстремально неудобный режим, завести еще один экземпляр намного проще и удобнее.
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34470389
Frankie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerProduction - не место для экспериментов. Туда должны попадать только полностью протестированные решения (нет, конечно при десятке пользователей и некритичной задаче это не так, но мы же не об этом случае?).
Тестированием у нас занимаются пользователи. База достаточно хорошо разделена по областям использования, возможно независимо модифицировать отдельные участки без всякого страха. Кроме того, на production существуют тестовые объекты - например я могу скопировать боевую процедуру, перенаправить клиента на неё, менять и отлаживать на актуальных данными (речь идёт естественно о select-процедурах).

Кстати, тестовая база на боевом сервере у нас есть и используется, когда пользователи тестируют какой-то большой новый блок.

А поддержание двух баз для тестирования с данными, актуальными production опять-таки в нашем случае просто накладно.

Вот и все - даже если один человек. Без тестового сервера можно обойтись только в одном случае: если во-первых, постоянно заливать Development с Production-а
Чаще всего нужно переписывать только таблицу с константами айдишников.
...
Рейтинг: 0 / 0
Тестовая БД vs Боевая БД
    #34470870
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FrankieТестированием у нас занимаются пользователи.
Я понимаю, что случаи бывают разные, но в ответ на эту фразу так и просится картинка с гробом ;-)

Пусть занимаются пользователи. Но это не отменяет необходимости в тестовой базе, на которой можно проверить версию, не рискуя поломать боевые данные. Если, конечно, эти данные важны.

FrankieБаза достаточно хорошо разделена по областям использования, возможно независимо модифицировать отдельные участки без всякого страха.
Я... рад за Вас, но сказанному мной это коллинеарно.

FrankieКроме того, на production существуют тестовые объекты - например я могу скопировать боевую процедуру, перенаправить клиента на неё, менять и отлаживать на актуальных данными
Можете, если конечно наплевать на то, что из-за этой процедуры production может встать раком, например, по производительности. Непонятно, правда, зачем так хитрить, но это мелочи.

Frankie(речь идёт естественно о select-процедурах).
Мнение softwarer-а о select-процедурах skipped

FrankieКстати, тестовая база на боевом сервере у нас есть и используется, когда пользователи тестируют какой-то большой новый блок.
Замечательно. Тогда в чем вопрос, почему Вы убеждаете меня, что она не нужна? И зачем вам тогда калечить боевой вышеописанным образом?

FrankieА поддержание двух баз для тестирования
Каких двух? Откуда двух? Разве у меня где-нибудь было сказано про необходимость двух тестовых баз?

Frankieс данными, актуальными production опять-таки в нашем случае просто накладно.
Вот этого я, уж извините, не понимаю. У вас с одной стороны тестирование пользователями на боевых данных, а с другой стороны терабайтная база?

Да и даже ладно, собственно, полной копии не требуется (хотя обычно полную копию делать проще и дешевле). С боевой нужны DDL и справочники, остальное можно резать.

FrankieЧаще всего нужно переписывать только таблицу с константами айдишников.
Ну если это действие поможет убить все левые модификации, которые успели наплодить девелоперы, то этого хватит....
...
Рейтинг: 0 / 0
25 сообщений из 54, страница 1 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Тестовая БД vs Боевая БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]