Одна из распространенных операций с ASM, это добавление диска в дисковую группу.
Для того, чтобы добавить диск в дисковую группу, необходимо:
1. С массива подключить диски ко всем нодам кластера Oracle
2. Создать диск видимый для Oracle командой mknod
3. Выдать разрешения
4. В sqlplus добавить диск в дисковую группу
Первый пункт в данной статье рассматриваться не будет, начнем сразу со второго.
2. Для начала нужно определить под каким именем диски видны на каждой ноде кластера, для этого я использую SAM. Заходим в sam:
SMH->Disks and File Systems->Disks
Далее находим нужный нам диск и заходим на него:
Для того, чтобы добавить диск в дисковую группу, необходимо:
1. С массива подключить диски ко всем нодам кластера Oracle
2. Создать диск видимый для Oracle командой mknod
3. Выдать разрешения
4. В sqlplus добавить диск в дисковую группу
Первый пункт в данной статье рассматриваться не будет, начнем сразу со второго.
2. Для начала нужно определить под каким именем диски видны на каждой ноде кластера, для этого я использую SAM. Заходим в sam:
SMH->Disks and File Systems->Disks
Далее находим нужный нам диск и заходим на него:
Нас интересует Persistent Device File и Serial Number, записываем их значения на первой ноде.
Таким же способом заходим в sam на второй ноде и смотрим те же параметры:
Самое главное в данном случае это серийный номер, он определяет один диск, который виден на разных нодах под разными именами. В нашем случае серийный номер заканчивается на 3E3C, а диски видны под именами disk34 и disk176 на первой и второй ноде соответственно.
Теперь нам необходимо создать видимый для Oracle диск, для этого под пользователем root:
a) Смотрим какие диски существуют у нас в системе:
# ll /dev/oracle
total 0
crw-rw---- 1 grid asmadmin 13 0x000010 Feb 6 09:46 asmdisk1
crw-rw---- 1 grid asmadmin 13 0x00001b Feb 6 09:46 asmdisk10
crw-rw---- 1 grid asmadmin 13 0x00001c Feb 6 09:45 asmdisk11
crw-rw---- 1 grid asmadmin 13 0x00000d Feb 6 09:45 asmdisk13
crw-rw---- 1 grid asmadmin 13 0x00000e Feb 6 09:45 asmdisk14
crw-rw---- 1 grid asmadmin 13 0x00000f Feb 6 09:40 asmdisk15
crw-rw---- 1 grid asmadmin 13 0x000011 Feb 6 09:45 asmdisk2
crw-rw---- 1 grid asmadmin 13 0x000012 Feb 6 09:45 asmdisk3
crw-rw---- 1 grid asmadmin 13 0x000013 Feb 6 09:45 asmdisk4
crw-rw---- 1 grid asmadmin 13 0x000015 Feb 6 09:45 asmdisk5
crw-rw---- 1 grid asmadmin 13 0x000017 Feb 6 09:44 asmdisk6
crw-rw---- 1 grid asmadmin 13 0x000018 Feb 6 09:45 asmdisk7
crw-rw---- 1 grid asmadmin 13 0x000019 Feb 6 09:46 asmdisk8
crw-rw---- 1 grid asmadmin 13 0x00001a Feb 6 09:45 asmdisk9
crw-rw---- 1 grid asmadmin 13 0x00000c Feb 6 09:46 voting
Последний диск asmdisk15 значит будем создавать asmdisk16
b) Смотрим параметры диска:
# ll /dev/rdisk/disk176
crw-r----- 1 bin sys 13 0x000042 Jan 31 14:42 disk176
c) Теперь в директории /dev/oracle/ нам необходимо создать диск asmdisk16
mknod /dev/oracle/asmdisk16 c 13 0x000042
13 и 0x000042 мы взяли из пункта b)
3) Выдаем разрешения диску
cd /dev/oracle
chown grid:asmadmin asmdisk16
chmod 660 asmdisk16
Также аналогичную операцию необходимо проделать на второй ноде с диском disk34
4) Добавляем диск в дисковую группу:
su - grid
sqlplus / as sysasm
SQL> set lines 120 pages 100
SQL> column path format a40
--проверяем какие диски у нас есть в системе:
SQL> SELECT name, path, mode_status, state, header_status, os_mb, free_mb FROM v$asm_disk ORDER BY name, path;
NAME PATH MODE_ST STATE HEADER_STATU OS_MB FREE_MB
------------------------------ ---------------------------------------- ------- -------- ------------ ---------- ----------
DATA_0000 /dev/oracle/asmdisk1 ONLINE NORMAL MEMBER 2097151 2096975
DATA_0001 /dev/oracle/asmdisk10 ONLINE NORMAL MEMBER 2097151 2096975
DATA_0002 /dev/oracle/asmdisk11 ONLINE NORMAL MEMBER 2097151 2096975
DATA_0003 /dev/oracle/asmdisk13 ONLINE NORMAL MEMBER 2097151 2096977
DATA_0004 /dev/oracle/asmdisk14 ONLINE NORMAL MEMBER 2097151 2096977
DATA_0005 /dev/oracle/asmdisk15 ONLINE NORMAL MEMBER 2097151 2096976
DATA_0006 /dev/oracle/asmdisk2 ONLINE NORMAL MEMBER 2097151 2096978
DATA_0007 /dev/oracle/asmdisk3 ONLINE NORMAL MEMBER 2097151 2096976
DATA_0008 /dev/oracle/asmdisk4 ONLINE NORMAL MEMBER 2097151 2096976
DATA_0009 /dev/oracle/asmdisk5 ONLINE NORMAL MEMBER 2097151 2096977
DATA_0010 /dev/oracle/asmdisk6 ONLINE NORMAL MEMBER 2097151 2096976
DATA_0011 /dev/oracle/asmdisk7 ONLINE NORMAL MEMBER 2097151 2096976
DATA_0012 /dev/oracle/asmdisk8 ONLINE NORMAL MEMBER 2097151 2096977
DATA_0013 /dev/oracle/asmdisk9 ONLINE NORMAL MEMBER 2097151 2096976
VOTING_0000 /dev/oracle/voting ONLINE NORMAL MEMBER 51200 51041
15 rows selected.
--проверяем какие дисковые группы у нас есть
SQL> select GROUP_NUMBER,NAME,STATE,TOTAL_MB,FREE_MB from v$asm_diskgroup;
GROUP_NUMBER NAME STATE TOTAL_MB FREE_MB
------------ ------------------------------ ----------- ---------- ----------
1 DATA MOUNTED 29360114 29357513
2 VOTING MOUNTED 51200 51041
-- добавляем диск
SQL> alter diskgroup DATA add disk '/dev/oracle/asmdisk16';
Diskgroup altered.
-- проверяем добавился ли диск
SQL> SELECT name, path, mode_status, state, header_status, os_mb, free_mb FROM v$asm_disk ORDER BY name, path;
NAME PATH MODE_ST STATE HEADER_STATU OS_MB FREE_MB
------------------------------ ---------------------------------------- ------- -------- ------------ ---------- ----------
DATA_0000 /dev/oracle/asmdisk1 ONLINE NORMAL MEMBER 2097151 2096975
DATA_0001 /dev/oracle/asmdisk10 ONLINE NORMAL MEMBER 2097151 2096975
DATA_0002 /dev/oracle/asmdisk11 ONLINE NORMAL MEMBER 2097151 2096975
DATA_0003 /dev/oracle/asmdisk13 ONLINE NORMAL MEMBER 2097151 2096977
DATA_0004 /dev/oracle/asmdisk14 ONLINE NORMAL MEMBER 2097151 2096977
DATA_0005 /dev/oracle/asmdisk15 ONLINE NORMAL MEMBER 2097151 2096976
DATA_0006 /dev/oracle/asmdisk2 ONLINE NORMAL MEMBER 2097151 2096978
DATA_0007 /dev/oracle/asmdisk3 ONLINE NORMAL MEMBER 2097151 2096976
DATA_0008 /dev/oracle/asmdisk4 ONLINE NORMAL MEMBER 2097151 2096976
DATA_0009 /dev/oracle/asmdisk5 ONLINE NORMAL MEMBER 2097151 2096977
DATA_0010 /dev/oracle/asmdisk6 ONLINE NORMAL MEMBER 2097151 2096976
DATA_0011 /dev/oracle/asmdisk7 ONLINE NORMAL MEMBER 2097151 2096976
DATA_0012 /dev/oracle/asmdisk8 ONLINE NORMAL MEMBER 2097151 2096977
DATA_0013 /dev/oracle/asmdisk9 ONLINE NORMAL MEMBER 2097151 2096976
DATA_0017 /dev/oracle/asmdisk16 ONLINE NORMAL MEMBER 2097151 2096977
VOTING_0000 /dev/oracle/voting ONLINE NORMAL MEMBER 51200 51041
16 rows selected.
Немного об ошибках:
Если возникла ошибка:
SQL> alter diskgroup DATA add disk '/dev/oracle/asmdisk16';
alter diskgroup DATA add disk '/dev/oracle/asmdisk16'
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15075: disk(s) are not visible cluster-wide
Она говорит о том, что диск не виден со всех нод кластера, для проверки можно использовать команду со всех нод:
$GRID_HOME/bin/kfed read /dev/oracle/asmdisk16
Иногда бывает такая ошибка:
SQL> alter diskgroup DATA add disk '/dev/oracle/asmdisk16';
alter diskgroup DATA add disk '/dev/oracle/asmdisk16'
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15031: disk specification '/dev/oracle/asmdisk16' matches no disks
ORA-15025: could not open disk "/dev/oracle/asmdisk16"
ORA-15056: additional error message
HPUX-ia64 Error: 13: Permission denied
Additional information: 42
Идем в /dev/oracle/ и проверяем права, владельца объекта и группы.



Комментариев нет:
Отправить комментарий