ACFS para banco de dados e Flex ASM - Parte II
Por Franky Weber ,
Postado em Dezembro 2016
Revisado por Marcelo Pivovar - Solution Architect
Objetivo: Explicar e demonstrar o uso do ACFS para o armazenamento dos binários do Oracle Home e o próprio banco de dados, registrar o filesystem ACFS para iniciar automaticamente, configurar os logs para serem gerados em um diretório unificado e apresentar o comportamento do ACFS com a arquitetura Flex ASM.
Esta é a segunda parte do conteúdo que estou trazendo sobre o ACFS. Leia o primeiro artigo deste conteúdo aqui: http://www.oracle.com/technetwork/pt/articles/database-performance/primeiros-passos-com-acfs-part1-3310211-ptb.html
No primeiro artigo abordei os benefícios, um pouco da arquitetura do ACFS e também demonstrei como configurá-lo. Neste vamos ver como instalar e criar um banco de dados no ACFS, como registrar o ACFS para iniciar automaticamente e montar seus filesystems, como unificar os logs e traces e também o funcionamento do ACFS na arquitetura Flex ASM.
Para que este artigo não fique tão extenso vou abordar os seguintes tópicos:
- ACFSUtil to mount ACFS;
- Shared Oracle Home;
- Database on ACFS;
- Unifying diagnostic files;
- ACFS on Flex ASM Architecture.
ACFSUtil to mount ACFS
Terminei o artigo anterior montando o ACFS com o comando mount do próprio Linux e passando o parâmetro “-t acfs”. Vou demonstrar aqui o uso do utilitário do ACFS para montar e registrar a montagem dos Filesystems ACFS automaticamente no boot do Clusterware.
Execute o comando abaixo para registrar o filesystem ACFS:
[root@srv1 ~]# acfsutil registry -a /dev/asm/advmvol1-301 /mnt/advm/fs1
acfsutil registry: mount point /mnt/advm/fs1 successfully added to Oracle Registry
Se tentarmos fazer o mesmo para o nosso volume EXT4 veja o que acontece:
CRS-2674: Start of 'ora.advm.advmvol2.acfs' on 'srv1' failed CRS-2674: Start of 'ora.advm.advmvol2.acfs' on 'srv2' failed
[root@srv1 ~]# acfsutil registry -a /dev/asm/advmvol2-301 /mnt/advm/fs2
acfsutil registry: mount point /mnt/advm/fs2 successfully added to Oracle Registry
CRS-5016: Process "/bin/mount" spawned by agent "ORAROOTAGENT" for action "start" failed:
details at "(:CLSN00010:)" in "/u01/app/oracle/diag/crs/srv2/crs/trace/crsd_orarootagent_root.trc"
Error mounting file system '/dev/asm/advmvol2-301' on '/mnt/advm/fs2': mount.acfs: ACFS-00591:
error found in volume disk header
mount.acfs: ACFS-02037: File system not created on a Linux system. Cannot mount.
CRS-5016: Process "/bin/mount" spawned by agent "ORAROOTAGENT" for action "start" failed:
details at "(:CLSN00010:)" in "/u01/app/oracle/diag/crs/srv1/crs/trace/crsd_orarootagent_root.trc"
Error mounting file system '/dev/asm/advmvol2-301'
on '/mnt/advm/fs2': mount.acfs: ACFS-00591: error found in volume disk header
mount.acfs: ACFS-02037: File system not created on a Linux system. Cannot mount.
CRS-2674: Start of 'ora.advm.advmvol2.acfs' on 'srv1' failed
CRS-2674: Start of 'ora.advm.advmvol2.acfs' on 'srv2' failed
Veja os erros, o ACFS reclama que é um filesystem EXT4. Então montamos do jeito correto para um EXT4:
[root@srv1 ~]# mount /dev/asm/advmvol2-301 /mnt/advm/fs2
Vamos efetuar reboot nos servidores para ver se os filesystems voltam montados no boot:
[root@srv1 ~]# reboot
Broadcast message from root@srv1.localdomain
(/dev/pts/1) at 19:06 ...
The system is going down for reboot NOW!
[root@srv1 ~]# Connection to 192.168.2.124 closed by remote host.
Connection to 192.168.2.124 closed.
Frankys-MacBook-Pro:~ frankyweber$ ssh root@192.168.2.124
root@192.168.2.124's password:
Last login: Sat Nov 12 18:46:49 2016 from 192.168.2.101
[root@srv1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_srv1-lv_root
50G 21G 26G 45% /
tmpfs 2.0G 1.2G 755M 62% /dev/shm
/dev/sda1 485M 78M 382M 17% /boot
/dev/mapper/vg_srv1-lv_home
45G 199M 43G 1% /home
/dev/asm/advmvol1-301
512M 206M 307M 41% /mnt/advm/fs1
Veja que o filesystem ACFS está montado corretamente após o boot, porém para o filesystem EXT4 precisamos criar algum script para montá-lo automaticamente depois que o ASM e o ADVM iniciarem, pois não temos como incluí-lo no arquivo /etc/fstab devido a este arquivo ser lido no momento do boot do servidor quando o ASM ainda não está disponível.
Shared Oracle Home
Agora vou demonstrar como instalar o seu banco de dados num Oracle Home compartilhado e depois como criar o seu banco de dados sobre o mesmo filesytem.
Para esta atividade vou adicionar novos discos e criar um novo diskgroup, pois para algumas atividades que serão apresentadas precisaremos de um diskgroup maior.
Vou pular a parte de particionar o disco e de adicioná-lo no ASM e só apresentar o que interessa, então com o disco já apresentado ao servidor e criado na ASM Library vou criar um novo diskgroup. Desta vez vou efetuar o procedimento via ASMCA para vocês observarem que também é possível trabalhar com GUI.
Clique em “Create” para criar um novo diskgroup:
Dê um nome para o seu diskgroup, no meu caso coloquei o nome “DB”, então altere os parâmetros de compatibilidade acessando as opções avançadas para pelo menos “12.1.0.0.0”, desta maneira teremos acesso às funcionalidades avançadas do ACFS que vou apresentar no próximo artigo. Se quiser dê um nome ao disco que você está usando para criar o novo diskgroup, selecione o tipo de redundância, no meu caso estou escolhendo “external”, pois não quero redundância no ASM para este diskgroup. O “Allocation Unit” pode ser deixado com o tamanho padrão de 1MB neste cenário. Então depois de tudo ajustado é só clicar em “OK”, você deverá receber uma mensagem de que o diskgroup foi criado com sucesso.
Feito isso temos o novo diskgroup criado. Agora vamos acessar o asmcmd para criar nosso novo volume.
[oracle@srv1 ~]$ asmcmd -p
ASMCMD [+] > volcreate -G DB -s 12G DBVOL1
ASMCMD [+] > volinfo -G DB -a
Diskgroup Name: DB
Volume Name: DBVOL1
Volume Device: /dev/asm/dbvol1-423
State: ENABLED
Size (MB): 12288
Resize Unit (MB): 64
Redundancy: UNPROT
Stripe Columns: 8
Stripe Width (K): 1024
Usage:
Mountpath:
Com o volume DBVOL1 criado agora vamos criar um diretório para o nosso Shared Oracle Home e lembre-se de criá-lo em todos os servidores onde esse diretório será compartilhado, no meu cluster tenho somente 2 nodes, então criarei nos 2:
[oracle@srv1 ~]$ mkdir –p /u01/app/oracle/product/12.1.0/shared_dbhome
[oracle@srv2 ~]$ mkdir -p /u01/app/oracle/product/12.1.0/shared_dbhome
Agora vamos voltar ao ASMCA para configurar nosso novo ACFS. Acessamos a aba “ASM Cluster File Systems” ainda no ASMCA para criar nosso filesystem.
Clique em “Create” e preencha os campos de acordo com o seu ambiente.
Se você clicar em “Show Command” a sequência de comandos necessários será exibida. Este será o script gerado quando clicarmos também em “OK”:
Create ACFS Command:
/sbin/mkfs -t acfs /dev/asm/dbvol1-423
Following commands should be run as privileged user :
/u01/app/12.1.0/grid/bin/srvctl add filesystem -d /dev/asm/dbvol1-423 -m /u01/app/oracle/product/12.1.0/shared_dbhome
-u oracle -fstype ACFS -description 'Shared Oracle Home' -autostart ALWAYS
/u01/app/12.1.0/grid/bin/srvctl start filesystem -d /dev/asm/dbvol1-423
chown oracle:oinstall /u01/app/oracle/product/12.1.0/shared_dbhome
chmod 775 /u01/app/oracle/product/12.1.0/shared_dbhome
Clique em “OK”.
Execute o script gerado pelo ASMCA como root:
[root@srv1 ~]# /u01/app/oracle/cfgtoollogs/asmca/scripts/acfs_script.sh
ACFS file system /u01/app/oracle/product/12.1.0/shared_dbhome is mounted on nodes srv1,srv2
[root@srv1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_srv1-lv_root
50G 21G 26G 45% /
tmpfs 2.0G 1.2G 759M 62% /dev/shm
/dev/sda1 485M 78M 382M 17% /boot
/dev/mapper/vg_srv1-lv_home
45G 199M 43G 1% /home
/dev/asm/advmvol1-301
512M 206M 307M 41% /mnt/advm/fs1
/dev/asm/dbvol1-423 12G 101M 12G 1% /u01/app/oracle/product/12.1.0/shared_dbhome
[oracle@srv2 ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_srv1-lv_root
50G 21G 27G 45% /
tmpfs 2.0G 1.3G 751M 63% /dev/shm
/dev/sda1 485M 78M 382M 17% /boot
/dev/mapper/vg_srv1-lv_home
45G 181M 43G 1% /home
/dev/asm/advmvol1-301
512M 206M 307M 41% /mnt/advm/fs1
/dev/asm/dbvol1-423 12G 101M 12G 1% /u01/app/oracle/product/12.1.0/shared_dbhome
Agora só precisamos instalar nosso software neste Oracle Home compartilhado e depois criar nosso novo banco de dados.
Só irei mostrar aqui o que muda de uma instalação normal para esta com Shared Oracle Home, pois não se trata de um artigo sobre a instalação do Oracle Database em si e sim das funcionalidades do ACFS.
Nesta tela apresentada abaixo você deve inserir o diretório criado no ACFS. Esta é a única diferença na instalação do software Oracle Database.
Se aparecer uma mensagem como a apresentada na figura abaixo, certifique-se de que não há nada dentro do diretório e se houver que seja somente o diretório lost+found do Linux, sendo assim clique em “Yes”.
Feito isso prossiga na sua instalação até que a mesma finalize. Assim você terá os seus binários compartilhados e também todo o seu Oracle Home.
Database on ACFS
Vamos então criar nosso banco de dados. Vou criá-lo dentro deste mesmo filesystem, mas você pode criar um novo filesystem se quiser. Vou utilizar o DBCA para criar o banco de dados para facilitar a demonstração; novamente só vou apresentar o que muda na criação do banco de dados sobre o ACFS.
Crie o diretório onde o banco de dados será armazenado e também a Fast Recovery Area:
[oracle@srv2 ~]$ mkdir /u01/app/oracle/product/12.1.0/shared_dbhome/oradata
[oracle@srv2 ~]$ mkdir /u01/app/oracle/product/12.1.0/shared_dbhome/fra
Como agora o filesystem é compartilhado só é necessário criar os diretórios a partir de um dos nós. Ele é um único filesystem apresentado para todos os nós do meu cluster.
Veja como ficou a configuração no DBCA:
Agora é só prosseguir com a instalação até o final e aguardar concluir. Desta maneira o seu banco de dados ficará armazenado sobre um filesystem ACFS. Observe que só apontamos o diretório onde os arquivos do banco de dados são armazenados e no “drop-down box” selecionamos “File System” ao invés do padrão “ASM”. Este tipo de implementação é bastante comum para bancos de dados de aplicações SAP. O próprio SAP precisa de diretórios compartilhados nos servidores de bancos de dados quando temos um cluster.
Vamos verificar como ficou nosso banco de dados e onde os arquivos foram armazenados:
[oracle@srv1 ~]$ . oraenv
ORACLE_SID = [oracle] ? orcl1
ORACLE_HOME = [/home/oracle] ? /u01/app/oracle/product/12.1.0/shared_dbhome
The Oracle base has been set to /u01/app/oracle
[oracle@srv1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Tue Nov 22 19:54:56 2016
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Advanced Analytics
and Real Application Testing options
SQL> set pages 200 lin 200
SQL> select name from v$datafile;
NAME
-------------------------------------------------------------------------------------------------------------
/u01/app/oracle/product/12.1.0/shared_dbhome/oradata/ORCL/datafile/o1_mf_system_d36wdy95_.dbf
/u01/app/oracle/product/12.1.0/shared_dbhome/oradata/ORCL/datafile/o1_mf_sysaux_d36wf0mx_.dbf
/u01/app/oracle/product/12.1.0/shared_dbhome/oradata/ORCL/datafile/o1_mf_undotbs1_d36wf1j1_.dbf
/u01/app/oracle/product/12.1.0/shared_dbhome/oradata/ORCL/datafile/o1_mf_undotbs2_d36wf8r3_.dbf
/u01/app/oracle/product/12.1.0/shared_dbhome/oradata/ORCL/datafile/o1_mf_users_d36wf946_.dbf
SQL> select name from v$controlfile;
NAME
-------------------------------------------------------------------------------------------------------------
/u01/app/oracle/product/12.1.0/shared_dbhome/oradata/ORCL/controlfile/o1_mf_d36wdxcg_.ctl
/u01/app/oracle/product/12.1.0/shared_dbhome/fra/ORCL/controlfile/o1_mf_d36wdxh4_.ctl
SQL> select member from v$logfile;
MEMBER
-------------------------------------------------------------------------------------------------------------
/u01/app/oracle/product/12.1.0/shared_dbhome/oradata/ORCL/onlinelog/o1_mf_1_d36wdxnb_.log
/u01/app/oracle/product/12.1.0/shared_dbhome/fra/ORCL/onlinelog/o1_mf_1_d36wdxrd_.log
/u01/app/oracle/product/12.1.0/shared_dbhome/oradata/ORCL/onlinelog/o1_mf_3_d36wdxwm_.log
/u01/app/oracle/product/12.1.0/shared_dbhome/fra/ORCL/onlinelog/o1_mf_3_d36wdy13_.log
/u01/app/oracle/product/12.1.0/shared_dbhome/oradata/ORCL/onlinelog/o1_mf_2_d36x5x3o_.log
/u01/app/oracle/product/12.1.0/shared_dbhome/fra/ORCL/onlinelog/o1_mf_2_d36x5x7c_.log
/u01/app/oracle/product/12.1.0/shared_dbhome/oradata/ORCL/onlinelog/o1_mf_4_d36x5xbt_.log
/u01/app/oracle/product/12.1.0/shared_dbhome/fra/ORCL/onlinelog/o1_mf_4_d36x5xgf_.log
8 rows selected.
SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Advanced Analytics
and Real Application Testing options
[oracle@srv1 ~]$ srvctl config database -db orcl
Database unique name: orcl
Database name: orcl
Oracle home: /u01/app/oracle/product/12.1.0/shared_dbhome
Oracle user: oracle
Spfile: /u01/app/oracle/product/12.1.0/shared_dbhome/oradata/orcl/spfileorcl.ora
Password file: /u01/app/oracle/product/12.1.0/shared_dbhome/oradata/orcl/orapworcl
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools:
Disk Groups:
Mount point paths: /u01/app/oracle/product/12.1.0/shared_dbhome
Services:
Type: RAC
Start concurrency:
Stop concurrency:
OSDBA group: dba
OSOPER group:
Database instances: orcl1,orcl2
Configured nodes: srv1,srv2
Database is administrator managed
Veja que os datafiles, controlfiles e os logfiles ficaram todos armazenados no nosso ACFS e inclusive o spfile e também o passwordfile.
Unifying diagnostic files
Tudo ok até aqui, mas ainda faltam os diretórios do diagnostic dest, certo? Para onde estão indo os logs e traces? Vamos verificar:
SQL> col value for a70
SQL> select inst_id, name, value from gv$diag_info;
INST_ID NAME VALUE
---------- -------------------------------------------- --------------------------------------------------------
1 Diag Enabled TRUE
1 ADR Base /u01/app/oracle
1 ADR Home /u01/app/oracle/diag/rdbms/orcl/orcl1
1 Diag Trace /u01/app/oracle/diag/rdbms/orcl/orcl1/trace
1 Diag Alert /u01/app/oracle/diag/rdbms/orcl/orcl1/alert
1 Diag Incident /u01/app/oracle/diag/rdbms/orcl/orcl1/incident
1 Diag Cdump /u01/app/oracle/diag/rdbms/orcl/orcl1/cdump
1 Health Monitor /u01/app/oracle/diag/rdbms/orcl/orcl1/hm
1 Active Problem Count 0
1 Active Incident Count 0
2 Diag Enabled TRUE
2 ADR Base /u01/app/oracle
2 ADR Home /u01/app/oracle/diag/rdbms/orcl/orcl2
2 Diag Trace /u01/app/oracle/diag/rdbms/orcl/orcl2/trace
2 Diag Alert /u01/app/oracle/diag/rdbms/orcl/orcl2/alert
2 Diag Incident /u01/app/oracle/diag/rdbms/orcl/orcl2/incident
2 Diag Cdump /u01/app/oracle/diag/rdbms/orcl/orcl2/cdump
2 Health Monitor /u01/app/oracle/diag/rdbms/orcl/orcl2/hm
2 Active Problem Count 0
2 Active Incident Count 0
20 rows selected.
É possível observar que o ADR Base está apontando para o Oracle Base, que é o destino padrão para estes arquivos. Então vamos alterar isso e fazer com que eles fiquem unificados no nosso ACFS:
SQL> sho parameter diag
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
diagnostic_dest string /u01/app/oracle
SQL> alter system set diagnostic_dest='/u01/app/oracle/product/12.1.0/shared_dbhome' sid='*';
System altered.
SQL> select inst_id, name, value from gv$diag_info;
INST_ID NAME VALUE
---------- -------------------------------- --------------------------------------------------------------------------
1 Diag Enabled TRUE
1 ADR Base /u01/app/oracle/product/12.1.0/shared_dbhome
1 ADR Home /u01/app/oracle/product/12.1.0/shared_dbhome/diag/rdbms/orcl/orcl1
1 Diag Trace /u01/app/oracle/product/12.1.0/shared_dbhome/diag/rdbms/orcl/orcl1/trace
1 Diag Alert /u01/app/oracle/product/12.1.0/shared_dbhome/diag/rdbms/orcl/orcl1/alert
1 Diag Incident /u01/app/oracle/product/12.1.0/shared_dbhome/diag/rdbms/orcl/orcl1/incident
1 Diag Cdump /u01/app/oracle/product/12.1.0/shared_dbhome/diag/rdbms/orcl/orcl1/cdump
1 Health Monitor /u01/app/oracle/product/12.1.0/shared_dbhome/diag/rdbms/orcl/orcl1/hm
1 Active Problem Count 0
1 Active Incident Count 0
2 Diag Enabled TRUE
2 ADR Base /u01/app/oracle/product/12.1.0/shared_dbhome
2 ADR Home /u01/app/oracle/product/12.1.0/shared_dbhome/diag/rdbms/orcl/orcl2
2 Diag Trace /u01/app/oracle/product/12.1.0/shared_dbhome/diag/rdbms/orcl/orcl2/trace
2 Diag Alert /u01/app/oracle/product/12.1.0/shared_dbhome/diag/rdbms/orcl/orcl2/alert
2 Diag Incident /u01/app/oracle/product/12.1.0/shared_dbhome/diag/rdbms/orcl/orcl2/incident
2 Diag Cdump /u01/app/oracle/product/12.1.0/shared_dbhome/diag/rdbms/orcl/orcl2/cdump
2 Health Monitor /u01/app/oracle/product/12.1.0/shared_dbhome/diag/rdbms/orcl/orcl2/hm
2 Active Problem Count 0
2 Active Incident Count 0
20 rows selected.
Pronto. Logs e traces todos unificados no nosso filesystem ACFS.
ACFS on Flex ASM Architecture
Na versão 12c do Grid Infrastructure, quando utilizamos o Flex ASM beneficiamos o ACFS montado sobre o diskgroup em questão, se houver a falha da instância ASM local onde reside um ACFS a conexão é direcionada para alguma instância ASM sobrevivente em outro nó através do ASM Proxy e da ASM Network. O mesmo fluxo ocorre no caso de não haver uma instância ASM local, inclusive esta é a finalidade do Flex ASM, diminuir a quantidade de instâncias ASM em um cluster, reduzindo assim a quantidade de recursos necessários para manter um ambiente com Grid Infrastructure. Caso o ACFS não esteja em uso a instância ASM Proxy pode ser desligada, mas lembre-se que para o banco de dados armazenado sobre o ACFS se manter online o recurso do ACFS deve estar disponível e caso ocorra uma queda neste recurso ou mesmo na instância ASM Proxy o ACFS será afetado e consequentemente o banco de dados nele armazenado.
Esta imagem apresenta resumidamente a arquitetura do ACFS em um cluster com Flex ASM:
Observe abaixo de onde a instância +APX2 está recebendo os metadados para o ACFS:
SQL> select distinct i.host_name asm_host, i.instance_name asm_instance, a.instance_name asm_client,
a.status from gv$instance i, gv$asm_client a where i.inst_id=a.inst_id order by 1;
ASM_HOST ASM_INSTANCE ASM_CLIENT STATUS
-------------------- ---------------- ----------- ------------
srv1.localdomain +ASM1 +APX1 CONNECTED
srv1.localdomain +ASM1 +ASM1 CONNECTED
srv1.localdomain +ASM1 -MGMTDB CONNECTED
srv2.localdomain +ASM2 +APX2 CONNECTED
Ao parar a instância +ASM2 veja quem passará a fornecer os metadados para o ACFS do servidor srv2, cujo ASM Proxy é a instância +APX2:
[root@srv1 ~]# srvctl stop asm -n srv2 –f
SQL> select distinct i.host_name asm_host, i.instance_name asm_instance, a.instance_name asm_client,
a.status from gv$instance i, gv$asm_client a where i.inst_id=a.inst_id order by 1;
ASM_HOST ASM_INSTANCE ASM_CLIENT STATUS
-------------------- ---------------- ----------- ------------
srv1.localdomain +ASM1 +APX1 CONNECTED
srv1.localdomain +ASM1 +APX2 CONNECTED
srv1.localdomain +ASM1 +ASM1 CONNECTED
srv1.localdomain +ASM1 -MGMTDB CONNECTED
Veja que a instância +ASM1 do servidor srv1 assumiu a instância +APX2 como client, ou seja, houve um failover nesta demonstração e durante todo este período o banco de dados se manteve online nos dois servidores.
Neste cenário vimos como instalar o software Oracle Database e também como criar um banco de dados, ambos sobre o ACFS. Este tipo de configuração é bastante comum em alguns ambientes e como já citei na parte I deste conteúdo o Oracle Database Appliance a partir da versão 12.1.2.0.0 armazena o banco de dados sobre filesystems ACFS. Demonstrei também no início deste artigo como registrar o ACFS para montagem automática no startup do cluster e por fim apresentei um pouco sobre o funcionamento do ACFS na nova arquitetura Flex ASM e como configurar os logs e traces para serem gerados em um diretório unificado. Aguarde os próximos conteúdos relacionados.
Referências:
https://docs.oracle.com/cd/E11882_01/server.112/e18951/whatsnew.htm#OSTMG94051
a/tech/docs/technical-resources/cloudfs-12c-datasheet.pdf
a/tech/docs/technical-resources/oracle-cloud-file-system.pdf
a/tech/docs/technical-resources/oracle-acfs-12.2-whitepaper.pdf
https://docs.oracle.com/database/121/OSTMG/GUID-C91D3A8E-F329-44BE-97B7-8AB41897D8E1.htm#OSTMG31000
https://docs.oracle.com/database/121/DBLIC/editions.htm#CIHDDJCJ
a/tech/docs/technical-resources/acfs-wp-18c.pdf
Franky Weber Faust atua como administrador de banco de dados Oracle e MySQL no PagSeguro, tem 26 anos, é graduado em Tecnologia em Bancos de Dados e iniciou sua carreira trabalhando num projeto internacional da Volkswagen com os bancos de dados DB2 da IBM, SQL Server da Microsoft e também com o Oracle e desde o início direcionou seus estudos para as tecnologias Oracle. É especialista em tecnologias de Alta Disponibilidade como RAC, Dataguard e GoldenGate e compartilha seus conhecimentos no blog loredata.com.br. Possui as certificações OCE SQL, OCA 11g, OCP 12c, OCS RAC 12c e OCS Linux 6.
Este artigo foi revisto pela equipe de produtos Oracle e está em conformidade com as normas e práticas para o uso de produtos Oracle.