Olá pessoal, estou trazendo aqui uma dica bem rápida de como iniciar o ACFS no caso de ele não estar habilitado.
Inicialmente vou alternar minha sessão para o usuário grid:
[root@exadb01 ~]# su - grid
Defino as variáveis de ambiente para apontar para o ASM:
[grid@exadb01 ~]$ . oraenv ORACLE_SID = [grid] ? +ASM The Oracle base has been set to /u01/app/grid
Acesso o asmcmd para listar os diskgroups presentes na minha configuração:
[grid@exadb01 ~]$ asmcmd ASMCMD> lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED NORMAL N 512 4096 4194304 17280 10392 720 4836 0 N DATA/ MOUNTED NORMAL N 512 4096 2097152 1152 940 48 446 0 N DBFS/ MOUNTED NORMAL N 512 4096 2097152 4224 2744 176 1284 0 N RECO/
Tento criar um volume para usar no ACFS:
ASMCMD> volcreate -G DBFS -s 100M acfsvol01 ORA-15032: not all alterations performed ORA-15477: cannot communicate with the volume driver (DBD ERROR: OCIStmtExecute)
O erro é reportado, pois o módulo do ACFS não está carregado.
Novamente como root, veja que o módulo não é nem listado:
[root@exadb01 ~]# lsmod |grep -i acfs [root@exadb01 ~]# lsmod |grep -i oracle
Sendo assim preciso carregar o módulo do ACFS e do ADVM e para isso se suceder executo:
[root@exadb01 ~]# acfsload start ACFS-9391: Checking for existing ADVM/ACFS installation. ACFS-9392: Validating ADVM/ACFS installation files for operating system. ACFS-9393: Verifying ASM Administrator setup. ACFS-9308: Loading installed ADVM/ACFS drivers. ACFS-9154: Loading 'oracleoks.ko' driver. ACFS-9154: Loading 'oracleadvm.ko' driver. ACFS-9154: Loading 'oracleacfs.ko' driver. ACFS-9327: Verifying ADVM/ACFS devices. ACFS-9156: Detecting control device '/dev/asm/.asm_ctl_spec'. ACFS-9156: Detecting control device '/dev/ofsctl'. ACFS-9322: completed
Agora sim consigo listar os módulos:
[root@exadb01 ~]# lsmod |grep acfs oracleacfs 1933804 0 oracleoks 420760 2 oracleacfs,oracleadvm [root@exadb01 ~]# lsmod |grep oracle oracleacfs 1933804 0 oracleadvm 243697 1 oracleoks 420760 2 oracleacfs,oracleadvm
Alterno novamente para o usuário grid e defino as variáveis de ambiente para o ASM:
[root@exadb01 ~]# su - grid [grid@exadb01 ~]$ . oraenv ORACLE_SID = [grid] ? +ASM The Oracle base has been set to /u01/app/grid
Acesso o asmcmd:
[grid@exadb01 ~]$ asmcmd
Crio o volume desejado:
ASMCMD> volcreate -G DBFS -s 100M acfsvol01
Listo o volume criado:
ASMCMD> volinfo -a Diskgroup Name: DBFS Volume Name: ACFSVOL01 Volume Device: /dev/asm/acfsvol01-41 State: ENABLED Size (MB): 128 Resize Unit (MB): 32 Redundancy: MIRROR Stripe Columns: 4 Stripe Width (K): 128 Usage: Mountpath:
Pronto, agora é só criar o diretório, formatar o volume e montar como ACFS.
Abraços e até mais,
Franky
Outros artigos sobre ACFS: Primeiros passos com o Automatic Storage Management Cluster FileSystem (ACFS) e ACFS para banco de dados e Flex ASM.