Зависит от того, что вы имеете в виду или включаете в «схему».
Если вы хотите добавить или удалить индекс, это можно сделать «в полете», хотя для этого потребуется блокировка, которая может временно приостановить активность. В последних версиях Oracle не требуется удерживать блокировку все время, необходимое для построения индекса, только на мгновение, чтобы зафиксировать изменение. Если у вас есть краткосрочные транзакции, это не должно быть заметно.
В некоторых случаях это относится и к таблицам (например, добавление столбца, который может иметь значение NULL) или * по умолчанию.
Если вы используете PL / SQL (особенно пакеты), все может быть немного сложнее. Усовершенствования были предложены для 11gR1, чтобы включить обновление приложения в полете, но оно вышло из-под контроля и теперь ожидается в 11gR2 (вероятно, в первой половине следующего года).
Между тем, обходной путь - это решение с несколькими схемами. Допустим, ваши данные располагаются в одной схеме («желтая»), а код текущего приложения выполняется в «синей» схеме, вы загружаете новое приложение в «зеленую схему». Вы переключаете свои соединения, одно за другим, с синего на зеленый. Когда все ваши соединения используют «зеленый», вы можете удалить «синий» до следующего обновления (когда «синий» станет новым приложением, а «зеленый» удален).
Если у вас подлинная система 24/7, вам, вероятно, всегда придется проводить некоторые обновления. Например, добавьте новый столбец как необязательный, обновите приложение, чтобы установить его, а затем сделайте его обязательным (возможно, с некоторым сценарием изменения данных для уже существующих строк).