Вы можете использовать предложение ADD DISK
оператора ALTER DISKGROUP
, чтобы добавить диск или группу отказов (сбоев) в группу дисков. Вы можете использовать тот же синтаксис с оператором ALTER DISKGROUP
, который вы используете для добавления диска или группы сбоев с помощью оператора CREATE DISKGROUP
. После добавления новых дисков новые диски постепенно начинают распределять свою долю рабочей нагрузки по мере выполнения перебалансировки.
Операторы SQL, представленные в следующем примере, демонстрируют поэтапные действия по обнаружению и добавлению нового диска в группу командой ADD DISK
в Oracle ASM.
Предположим, что Вы обнаружили следующие диски в каталоге /devices
вашей *nix операционной системы:
/devices/diska1 -- member of data1
/devices/diska2 -- member of data1
/devices/diska3 -- member of data1
/devices/diska4 -- member of data1
/devices/diska5 -- candidate disk
/devices/diska6 -- candidate disk
/devices/diska7 -- candidate disk
/devices/diska8 -- candidate disk
/devices/diskb1 -- member of data1
/devices/diskb2 -- member of data1
/devices/diskb3 -- member of data1
/devices/diskb4 -- member of data2
/devices/diskc1 -- member of data2
/devices/diskc2 -- member of data2
/devices/diskc3 -- member of data3
/devices/diskc4 -- candidate disk
/devices/diskd1 -- candidate disk
/devices/diskd2 -- candidate disk
/devices/diskd3 -- candidate disk
/devices/diskd4 -- candidate disk
/devices/diskd5 -- candidate disk
/devices/diskd6 -- candidate disk
/devices/diskd7 -- candidate disk
/devices/diskd8 -- candidate disk
Вы можете запросить представление V$ASM_DISK
, чтобы отобразить состояние дисков Oracle ASM.
Следующая инструкция завершится ошибкой, потому что диски с /devices/diska1
по /devices/diska4
в настоящее время уже принадлежат дисковой группе data1
.
ALTER DISKGROUP data1 ADD DISK
'/devices/diska*';
А вот следующий оператор успешно добавит диски с /devices/diska5
по /devices/diska8
в группу data1
. Поскольку в оператор ALTER DISKGROUP
не включены предложения FAILGROUP
, каждому диску назначается собственная группа отказов. Предложения NAME
присваивают дискам имена, в противном случае им были бы присвоены имена, созданные системой.
ALTER DISKGROUP data1 ADD DISK
'/devices/diska5' NAME diska5,
'/devices/diska6' NAME diska6,
'/devices/diska7' NAME diska7,
'/devices/diska8' NAME diska8;
Следующая SQL команда завершится ошибкой, потому что строка поиска соответствует дискам, содержащимся в других дисковых группах. В частности, /devices/diska4
принадлежит дисковой группе data1
, а /devices/diskb4
принадлежит дисковой группе data2
.
ALTER DISKGROUP data1 ADD DISK
'/devices/disk*4';
Следующий оператор успешно добавит диски с /devices/diskd1
по /devices/diskd8
в группу дисков data1
. Этот оператор выполняется в режиме перебалансировки 5-го уровня (POWER 5
) и не возвращается, пока операция перебалансировки не будет завершена.
ALTER DISKGROUP data1 ADD DISK
'/devices/diskd*'
REBALANCE POWER 5 WAIT;
Если /devices/ iskc3
ранее был членом группы дисков, которая больше не существует, вы можете использовать параметр FORCE
, чтобы добавить диск в качестве члена другой группы дисков. Например, следующее использование предложения FORCE
позволяет добавить /devices/diskc3
в группу data2
, даже если он является текущим членом data3
. Для успешного выполнения этого оператора data3
не должен быть смонтирован на момент запуска этой команды.
ALTER DISKGROUP data2 ADD DISK
'/devices/diskc3' FORCE;
Надеюсь, приведенные примеры дали четкое представление о работе команды ADD DISK
в SQL операторе ALTER DISKGROUP
для добавления новых дисков в группы в Oracle ASM. Ставим лайки, не стесняемся! ;-)