Olá pessoal, o objetivo aqui é apresentar como criar um disk group com um dos novos recursos do Oracle ASM na versão 12.2.0.1, o Flex Redundancy ou Flex Disk Group.
Este novo tipo de redundância do Disk Group no ASM nos permite isolar bancos de dados em níveis de redundância diferentes. Por exemplo, o PROD_PDB terá High Redundancy, enquanto o HML_PDB e o DEV_PDB terão Normal Redundancy.
Como é agora com Flex Redundancy:
Vamos ao passo-a-passo…
Inicialmente eu apresento novos discos ao ASM utilizando o Filter Driver, assim como vimos neste outro artigo.
[root@london1 ~]# . oraenv ORACLE_SID = [root] ? +ASM1 The Oracle base has been set to /u01/app/oracle [root@london1 ~]# asmcmd ASMCMD> afd_label FLEX01 /dev/sdg ASMCMD> afd_label FLEX02 /dev/sdh ASMCMD> afd_label FLEX03 /dev/sdi ASMCMD> afd_label FLEX04 /dev/sdj ASMCMD> afd_label FLEX05 /dev/sdk
Listamos os discos para verificar os recém adicionados:
ASMCMD> afd_lslbl -------------------------------------------------------------------------------- Label Duplicate Path ================================================================================ CONFIG01 /dev/sdb CONFIG02 /dev/sdc CONFIG03 /dev/sdd CONFIG04 /dev/sde DATA01 /dev/sdf FLEX01 /dev/sdg FLEX02 /dev/sdh FLEX03 /dev/sdi FLEX04 /dev/sdj FLEX05 /dev/sdk ASMCMD> exit
Ao sair do ASMCMD alterne sua sessão para o usuário oracle e defina novamente as variáveis de ambiente apontando para a instância +ASM1 e acesse o SQL*Plus:
[root@london1 ~]# su - oracle Last login: Mon Jul 31 23:22:56 BRT 2017 [oracle@london1 ~]$ . oraenv ORACLE_SID = [orcl1] ? +ASM1 The Oracle base remains unchanged with value /u01/app/oracle [oracle@london1 ~]$ sqlplus / as sysasm SQL*Plus: Release 12.2.0.1.0 Production on Mon Jul 31 23:23:24 2017 Copyright (c) 1982, 2016, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Feito isso, vamos criar um novo disk group com estes discos:
SQL> create diskgroup FLEX flex redundancy disk 'AFD:FLEX01', 'AFD:FLEX02', 'AFD:FLEX03'; Diskgroup created.
Para utilizar a redundância Flex é necessário no mínimo 3 Failure Groups, portanto 3 discos.
Observe que no comando de criação não informei nenhum Failure Group, mas por padrão o ASM cria um para cada um dos discos. Vejamos:
SQL> select group_number, name, path, label, state, mount_status, header_status, total_mb, free_mb, library, failgroup, voting_file from v$asm_disk; GROUP_NUMBER NAME PATH LABEL STATE MOUNT_S HEADER_STATU TOTAL_MB FREE_MB LIBRARY FAILGROUP V ------------ ---------- --------------- ---------- -------- ------- ------------ ---------- ---------- ---------------------------------------------------------------- ------------------------------ - 0 AFD:FLEX04 FLEX04 NORMAL CLOSED PROVISIONED 0 0 AFD Library - Generic , version 3 (KABI_V3) N 0 AFD:FLEX05 FLEX05 NORMAL CLOSED PROVISIONED 0 0 AFD Library - Generic , version 3 (KABI_V3) N 1 CONFIG01 AFD:CONFIG01 CONFIG01 NORMAL CACHED MEMBER 10240 1724 AFD Library - Generic , version 3 (KABI_V3) CONFIG01 N 1 CONFIG02 AFD:CONFIG02 CONFIG02 NORMAL CACHED MEMBER 10240 1696 AFD Library - Generic , version 3 (KABI_V3) CONFIG02 Y 1 CONFIG03 AFD:CONFIG03 CONFIG03 NORMAL CACHED MEMBER 10240 1732 AFD Library - Generic , version 3 (KABI_V3) CONFIG03 N 1 CONFIG04 AFD:CONFIG04 CONFIG04 NORMAL CACHED MEMBER 10240 1716 AFD Library - Generic , version 3 (KABI_V3) CONFIG04 N 2 DATA01 AFD:DATA01 DATA01 NORMAL CACHED MEMBER 12288 8160 AFD Library - Generic , version 3 (KABI_V3) DATA01 N 3 FLEX01 AFD:FLEX01 FLEX01 NORMAL CACHED MEMBER 1024 920 AFD Library - Generic , version 3 (KABI_V3) FLEX01 N 3 FLEX02 AFD:FLEX02 FLEX02 NORMAL CACHED MEMBER 1024 920 AFD Library - Generic , version 3 (KABI_V3) FLEX02 N 3 FLEX03 AFD:FLEX03 FLEX03 NORMAL CACHED MEMBER 1024 920 AFD Library - Generic , version 3 (KABI_V3) FLEX03 N 10 rows selected.
E o Disk Group ficou assim:
SQL> select GROUP_NUMBER, NAME, STATE, TYPE, TOTAL_MB, FREE_MB, REQUIRED_MIRROR_FREE_MB, USABLE_FILE_MB from v$asm_diskgroup; GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB ------------ -------- ----------- ------ ---------- ---------- ----------------------- -------------- 1 CONFIG MOUNTED EXTERN 40960 6868 0 6868 2 DATA MOUNTED EXTERN 12288 8160 0 8160 3 FLEX MOUNTED FLEX 3072 2760 0 0 3 rows selected.
Vamos excluir o Disk Group para criá-lo novamente:
SQL> drop diskgroup FLEX; Diskgroup dropped.
Veja que ao tentar criar com 4 discos, mas apenas 2 Failure Groups ocorre o erro:
SQL> create diskgroup FLEX flex redundancy 2 failgroup FG_A disk 'AFD:FLEX01', 'AFD:FLEX03' 3 failgroup FG_B disk 'AFD:FLEX02', 'AFD:FLEX04'; create diskgroup FLEX flex redundancy * ERROR at line 1: ORA-15018: diskgroup cannot be created ORA-15167: command requires at least 3 failure groups; found only 2
Então incluímos os 3 discos e criamos novamente especificando o path de cada disco e também seus respectivos Failure Groups:
SQL> create diskgroup FLEX flex redundancy 2 failgroup FG_A disk 'AFD:FLEX01' 3 failgroup FG_B disk 'AFD:FLEX02' 4 failgroup FG_C disk 'AFD:FLEX03'; Diskgroup created.
Como temos 5 discos vamos utilizar os 2 restantes e adicioná-los em Failure Groups separados:
SQL> alter diskgroup FLEX add 2 failgroup FG_D disk 'AFD:FLEX04' 3 failgroup FG_E disk 'AFD:FLEX05'; Diskgroup altered.
Listamos os discos novamente para ver como ficou depois de utilizarmos todos eles:
SQL> select group_number, name, path, label, state, mount_status, header_status, total_mb, free_mb, library, failgroup, voting_file from v$asm_disk; GROUP_NUMBER NAME PATH LABEL STATE MOUNT_S HEADER_STATU TOTAL_MB FREE_MB LIBRARY FAILGROUP V ------------ ---------- --------------- ---------- -------- ------- ------------ ---------- ---------- ---------------------------------------------------------------- ------------------------------ - 1 CONFIG01 AFD:CONFIG01 CONFIG01 NORMAL CACHED MEMBER 10240 1724 AFD Library - Generic , version 3 (KABI_V3) CONFIG01 N 1 CONFIG02 AFD:CONFIG02 CONFIG02 NORMAL CACHED MEMBER 10240 1696 AFD Library - Generic , version 3 (KABI_V3) CONFIG02 Y 1 CONFIG03 AFD:CONFIG03 CONFIG03 NORMAL CACHED MEMBER 10240 1732 AFD Library - Generic , version 3 (KABI_V3) CONFIG03 N 1 CONFIG04 AFD:CONFIG04 CONFIG04 NORMAL CACHED MEMBER 10240 1716 AFD Library - Generic , version 3 (KABI_V3) CONFIG04 N 2 DATA01 AFD:DATA01 DATA01 NORMAL CACHED MEMBER 12288 8160 AFD Library - Generic , version 3 (KABI_V3) DATA01 N 3 FLEX01 AFD:FLEX01 FLEX01 NORMAL CACHED MEMBER 1024 952 AFD Library - Generic , version 3 (KABI_V3) FG_A N 3 FLEX02 AFD:FLEX02 FLEX02 NORMAL CACHED MEMBER 1024 948 AFD Library - Generic , version 3 (KABI_V3) FG_B N 3 FLEX03 AFD:FLEX03 FLEX03 NORMAL CACHED MEMBER 1024 956 AFD Library - Generic , version 3 (KABI_V3) FG_C N 3 FLEX04 AFD:FLEX04 FLEX04 NORMAL CACHED MEMBER 1024 952 AFD Library - Generic , version 3 (KABI_V3) FG_D N 3 FLEX05 AFD:FLEX05 FLEX05 NORMAL CACHED MEMBER 1024 952 AFD Library - Generic , version 3 (KABI_V3) FG_E N 10 rows selected.
Por fim verificamos como ficou a distribuição do espaço nos Disk Groups:
SQL> select GROUP_NUMBER, NAME, STATE, TYPE, TOTAL_MB, FREE_MB, REQUIRED_MIRROR_FREE_MB, USABLE_FILE_MB from v$asm_diskgroup; GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB ------------ ---------- ----------- ------ ---------- ---------- ----------------------- -------------- 1 CONFIG MOUNTED EXTERN 40960 6868 0 6868 2 DATA MOUNTED EXTERN 12288 8160 0 8160 3 FLEX MOUNTED FLEX 5120 4760 0 0 3 rows selected.
Por hoje é só pessoal. Se gostou inscreva-se no blog e compartilhe com os amigos. No próximo post veremos como utilizar esse Flex Disk Group.
Abraços e até mais,
Franky
Referências
http://www.oracle.com/ocom/groups/public/@otn/documents/webcontent/3611943.pdf