Вы можете вручную перебалансировать файлы в группе дисков с помощью предложения REBALANCE
оператора ALTER DISKGROUP
. Обычно этого не требуется, поскольку Oracle ASM автоматически перебалансирует дисковые группы при изменении их конфигурации. Возможно, вы захотите выполнить операцию ручной перебалансировки, чтобы контролировать скорость того, что в противном случае было бы операцией автоматической перебалансировки.
Предложение POWER
оператора ALTER DISKGROUP REBALANCE
определяет степень параллелизма и, следовательно, скорость операции перебалансировки. Он может быть установлен на минимальное значение 0, что останавливает операцию перебалансировки до тех пор, пока оператор не будет явно или неявно повторно запущен. Более высокое значение увеличивает скорость операции перебалансировки.
Мощность перебалансировки по умолчанию устанавливается параметром инициализации ASM_POWER_LIMIT
. Диапазон значений для предложения POWER
такой же, как и для параметра инициализации ASM_POWER_LIMIT
. Для получения информации о параметре инициализации ASM_POWER_LIMIT
см. «ASM_POWER_LIMIT настройка параметра инициализации».
Уровень мощности текущей операции перебалансировки можно изменить, введя в отчет о перебалансировке новый уровень.
Команда ALTER DISKGROUP ... REBALANCE
по умолчанию возвращается немедленно, поэтому вы можете запускать другие команды, пока операция перебалансировки выполняется асинхронно в фоновом режиме. Вы можете запросить представление V$ASM_OPERATION
о состоянии операции перебалансировки.
Чтобы команда ALTER DISKGROUP ... REBALANCE
ожидала завершения операции перебалансировки перед возвратом, добавьте ключевое слово WAIT
в предложение REBALANCE
. Функция ожидания особенно полезна в скриптах. Команда также принимает ключевое слово NOWAIT
, которое вызывает поведение по умолчанию - асинхронное выполнение операции перебалансировки. Вы можете прервать выполнение ребалансировки в режиме ожидания, набрав CTRL+C
на большинстве платформ. Это приводит к немедленному возврату команды с сообщением ORA-01013:
user requested cancel of current operation
(пользователь запросил отмену текущей операции), а затем асинхронно продолжает операцию перебалансировки.
Дополнительные правила для операции перебалансировки включают следующее:
- Текущая команда перебалансировки перезапускается, если конфигурация хранилища изменяется либо при изменении конфигурации, либо при изменении конфигурации из-за сбоя или сбоя. Кроме того, если новая перебалансировка не удалась из-за ошибки пользователя, то может потребоваться ручная перебалансировка.
- Оператор
ALTER DISKGROUP ... REBALANCE
выполняется на одном узле, даже если вы используете Oracle Real Application Clusters (Oracle RAC). - Oracle ASM может выполнять перебалансировку одной дисковой группы за раз на данном экземпляре. Если вы инициировали несколько перебалансировок на разных дисковых группах на одном узле, Oracle обрабатывает эти операции параллельно на дополнительных узлах, если они доступны; в противном случае перебалансировка выполняется последовательно на одном узле. Вы можете явно инициировать перебалансировку на разных дисковых группах на разных узлах параллельно.
- Повторная балансировка продолжается после сбоя экземпляра Oracle ASM, выполняющего повторную балансировку.
- Предложение
REBALANCE
(со связанными с ним ключевыми словамиPOWER
иWAIT
/NOWAIT
) также может использоваться в командахALTER DISKGROUP
, которые добавляют, отбрасывают или изменяют размер дисков.
На заметку!
Oracle перезапускает обработку текущей операции перебалансировки, если конфигурация хранилища изменяется. Если следующая операция перебалансировки не удалась из-за ошибки пользователя, то может потребоваться ручная перебалансировка.
В следующем примере выполняется повторная балансировка дисковой группы data2
вручную. Команда не возвращается, пока операция перебалансировки не будет завершена.
Для получения дополнительной информации об операциях перебалансировки см. «Настройка операций перебалансировки».
Пример Ручная перебалансировка дисковой группы
ALTER DISKGROUP data2 REBALANCE POWER 5 WAIT;