YandexDirect

06 февраля 2019

HPUX. Oracle ASM добавить диск в дисковую группу

Одна из распространенных операций с ASM, это добавление диска в дисковую группу.
Для того, чтобы добавить диск в дисковую группу, необходимо:
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/ и проверяем права, владельца объекта и группы.

Комментариев нет:

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

Общее·количество·просмотров·страницы