Oracle Cloud: Passo a passo para criar e configurar um Oracle Database Cloud Service - Virtual Image (Parte III)
Por Sebastián D'Alessandro, Joel Pérez & Franky Weber Faust,
Publicado en Agosto 2017
Nesta terceira parte do artigo vamos instalar o software Oracle Database e também mostrar exemplos de como criar o banco de dados. Um utilizando o DBCA em modo “silent” e outro em modo gráfico utilizando uma conexão por VNC. Neste último exemplo veremos também como configurar um túnel SSH utilizando o PuTTy.
Instalaremos a versão 12.1.0.2 do Oracle, a qual selecionamos durante a criação do serviço e portanto é a que estará disponível na nossa VM provisionada.
Na Parte I deste artigo vimos como cirar um Oracle Database Cloud Service e na Parte II como adicionar mais espaço de armazenamento na nossa VM.
Agora já estamos em condições de instalar o Oracle e criar um novo banco de dados.
Para seguir é necessário subir o VNCServer:
[oracle@testdb-vi ~]$ vncserver
You will require a password to access your desktops.
Password:
Verify:
xauth: creating new authority file /home/oracle/.Xauthority
New 'testdb-vi:1 (oracle)' desktop is testdb-vi:1
Creating default startup script /home/oracle/.vnc/xstartup
Starting applications specified in /home/oracle/.vnc/xstartup
Log file is /home/oracle/.vnc/testdb-vi:1.log
Preparação do software de instalação:
No diretório /u01 (que é um dos filesystems de 20GB criados) vamos descompactar o software do Oracle Database 12.1.0.2.
Como no momento da criação do serviço selecionamos a versão Oracle Database 12c Release 1, este será o software disponível para instalarmos.
Descompatamos o arquivo /scratch/db/db12102_bits.tar.gz no diretório /u01:
[oracle@testdb-vi u01]$ cd /u01
[oracle@testdb-vi u01]$ tar -zpxvf /scratch/db/db12102_bits.tar.gz
[oracle@testdb-vi app]$ cd /u01
[oracle@testdb-vi u01]$ ls -lrt
total 20
drwxr-xr-x 4 oracle oinstall 4096 Jan 16 2015 app
[oracle@testdb-vi u01]$ exit
logout
Assim que a descompactação finalizar executamos como root os scripts orainstRoot.sh e root.sh:
[opc@testdb-vi ~]$ sudo su -
[root@testdb-vi ~]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[root@testdb-vi ~]# /u01/app/oracle/product/12.1.0/dbhome_1/root.sh
Check /u01/app/oracle/product/12.1.0/dbhome_1/install/
root_testdb-vi_2017-01-14_12-43-55.log for the output of root script
A instalação do RDBMS está pronta e como vimos foi bastante simples.
Como podemos ver, a instalação do software Oracle neste tipo de implantação é diferente da maneira habitual que realizaríamos em um ambiente “on-premises”. Basicamente só é necessário descompactar o arquivo com o software e executar os scripts com o usuário root.
Agora já podemos criar nosso primeiro banco de dados.
Vamos fazê-lo em modo silencioso.
Vamos definir a variável ORACLE_BASE apontando para o filesystem montado no diretório /u02 para que os arquivos do banco de dados sejam armazenados ali:
[oracle@testdb-vi oracle]$ export ORACLE_BASE=/u02/app/oracle
[oracle@testdb-vi oracle]$ export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
[oracle@testdb-vi oracle]$ export PATH=$ORACLE_HOME/OPatch:$ORACLE_HOME/bin:$PATH
Executamos o DBCA a partir da linha de comando com os seguintes parâmetros e ao executar informamos uma senha para os usuários SYS e SYSTEM:
[oracle@testdb-vi oracle]$ dbca -silent -createDatabase
-templateNameGeneral_Purpose.dbc -gdbName TESTDB1 -sid TESTDB1
-createAsContainerDatabase false -emConfiguration NONE
-storageType FS -memoryPercentage 20 -automaticMemoryManagement
true
Enter SYS user password:
Enter SYSTEM user password:
Copying database files
1% complete
3% complete
37% complete
Creating and starting Oracle instance
40% complete
45% complete
50% complete
55% complete
56% complete
60% complete
62% complete
Completing Database Creation
66% complete
70% complete
73% complete
85% complete
96% complete
100% complete
Look at the log file "/u02/app/oracle/cfgtoollogs/dbca/
TESTDB01/TESTDB01.log" for further details.
Assim que finalizado verificamos se o banco de dados está disponível:
[oracle@testdb-vi oracle]$ ps -ef|greppmon
oracle 4428 1 0 13:29 ? 00:00:00 ora_pmon_TESTDB01
oracle 4820 3413 0 13:47 pts/0 00:00:00 greppmon
Verificamos também se o listener está iniciado:
[oracle@testdb-vi oracle]$ ps -ef|grep inherit
oracle 4855 3413 0 13:50 pts/0 00:00:00 grep inherit
[oracle@testdb-vi oracle]$ lsnrctl status
LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 14-JAN-2017 13:50:23
Copyright (c) 1991, 2014, Oracle. All rights reserved.
.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocoladapter error
TNS-00511: No listener
Linux Error: 2: No such file or directory
Como é possível observar, o listener não está em execução.
Vamos subí-lo manualmente:
[oracle@testdb-vi oracle]$ lsnrctl start
LSNRCTL for Linux: Version 12.1.0.2.0 -
Production on 14-JAN-2017 13:51:13
Copyright (c) 1991, 2014, Oracle. All rights reserved.
Starting /u01/app/oracle/product/12.1.0/dbhome_1/bin/tnslsnr:
please wait...
TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Log messages written to /u01/app/oracle/diag/tnslsnr/
testdb-vi/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=
testdb-vi.compute-irineomartin.oraclecloud.internal)(PORT=1521)))
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date 14-JAN-2017 13:51:15
Uptime 0 days 0 hr. 0 min. 2 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /u01/app/oracle/diag/tnslsnr/
testdb-vi/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)
(HOST=testdb-vi.compute-irineomartin.oraclecloud.internal)
(PORT=1521)))
The listener supports no services
The command completed successfully
Esperamos aproximadamente 60s para que a instância se registre ao listener e verificamos novamente:
[oracle@testdb-vi oracle]$ lsnrctl status
LSNRCTL for Linux: Version 12.1.0.2.0 - Production on
14-JAN-2017 13:51:52
Copyright (c) 1991, 2014, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date 14-JAN-2017 13:51:15
Uptime 0 days 0 hr. 0 min. 39 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /u01/app/oracle/diag/tnslsnr/
testdb-vi/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)
(HOST=testdb-vi.compute-irineomartin.oraclecloud.internal)
(PORT=1521)))
Services Summary...
Service "TESTDB01" has 1 instance(s).
Instance "TESTDB01", status READY, has 1 handler(s) for this service...
Service "TESTDB01XDB" has 1 instance(s).
Instance "TESTDB01", status READY, has 1 handler(s) for this service...
Thecommandcompletedsuccessfully
Por último confirmamos que o acesso local ao banco de dados está correto:
[oracle@testdb-vi oracle]$ export ORACLE_SID=TESTDB01
[oracle@testdb-vi oracle]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Sat Jan 14 13:53:48 2017
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, OLAP, Advanced Analytics and Real
Application Testing options
SQL> select host_name, instance_name from v$instance;
HOST_NAME INSTANCE_NAME
--------------- ----------------
testdb-vi TESTDB01
Agora vamos criar outro banco de dados, mas desta vez com o DBCA em modo gráfico:
Configuração do túnel SSH
Primeiro vamos configurar um túnel SSH utilizando o PuTTY para poder acessar a VM utilizando o VNC.
Abrimos o PuTTY e na seção “Host Name (or IP address)” informamos o IP público da nossa VM: En la sección “Host Name (or IP address)” colocamos la IP publica de nuestra máquina virtual.
Em Category -> Connection/Data seção “Auto-login username” colocamos o usuário “opc” (ou pode ser também o usuário oracle):
Em Category -> Connection/SSH marcamos a opção “Don’t start a shell or command at all”:
Em Category -> Connection/SSH/Auth indicamos o arquvio que contém a chave privada que corresponde à chave pública da VM:
Por fim, mapeamos as portas para a configuração do túnel…
Em Category -> Connection/SSH/Tunnels colocamos a porta local “Source port” que vamo usar (Ex. 5901) mapeando o destino “Destination” no formato IP:Porta (XX.XX.XX.XX:5901).
Desta maneira, uma vez que estabelecido o túnel com a VM, quando na nossa máquina local apontarmos a porta informada esta se comunicará com a porta e endereço de IP indicado.
Este é um exemplo de como se vê no quadro quando configurado:
Subimos então o VNCServer na porta indicada na configuração do túnel (5901):
[oracle@testdb-vi ~]$ vncserver :5901
New 'testdb-vi:1 (oracle)' desktop is testdb-vi:5901
Starting applications specified in /home/oracle/.vnc/xstartup
Log file is /home/oracle/.vnc/testdb-vi:5901.log
Finalmente nos conectamos à VM utilizando um client VNC, no nosso caso usando o Real VNC Viewer que pode ser baixado gratuitamente no seguinte endereço https://www.realvnc.com/download/viewer.
Para a conexão, indicamos o IP local com a porta mapeada no túnel (5901) e no VNCServer da VM:
Assim abrimos a conexão com uma interface gráfica com o servidor. O procedimento de criação do banco de dados é similar ao de um banco de dados “on-premises”.
Definimos as variáveis igual como fizemos no modo silent:
Executamos o DBCA:
Indicamos que queremos criar um banco de dados:
Utilizamos o diretório /u02 para os arquivos do banco de dados e /u03 para a FRA.
Desta maneira temos o uso dos seguintes filesystems criados:
- /u01 instalação do software
- /u02 arquivos do banco de dados
- /u03 FRA
Completamos os campos solicitados:
Depois de avançarmos e verificarmos os detalhes, clicamos no botão “Finish”:
Ao finalizar a criação do banco de dados verificamos o stauts do listener:
[oracle@testdb-vi]$ lsnrctl status
LSNRCTL for Linux: Version 12.1.0.2.0 - Production on
15-JAN-2017 22:23:04
Copyright (c) 1991, 2014, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date 14-JAN-2017 13:51:15
Uptime 1 days 8 hr. 31 min. 51 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /u01/app/oracle/diag/tnslsnr/testdb-vi/
listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)
(HOST=testdb-vi.compute-irineomartin.oraclecloud.internal)
(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)
(HOST=testdb-vi.compute-irineomartin.oraclecloud.internal)
(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/
admin/TESTDB02/xdb_wallet))
(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "TESTDB01" has 1 instance(s).
Instance "TESTDB01", status READY, has 1 handler(s) for this service...
Service "TESTDB01XDB" has 1 instance(s).
Instance "TESTDB01", status READY, has 1 handler(s) for this service...
Service "TESTDB02" has 1 instance(s).
Instance "TESTDB02", status READY, has 1 handler(s) for this service...
Service "TESTDB02XDB" has 1 instance(s).
Instance "TESTDB02", status READY, has 1 handler(s) for this service...
Vemos que ambas as instâncias criadas estão registradas.
Por fim, verificamos se a instância está acessível:
[oracle@testdb-vi u03]$ ps -ef|greppmon
oracle 4428 1 0 Jan14 ? 00:00:08 ora_pmon_TESTDB01
oracle 29930 1 0 22:12 ? 00:00:00 ora_pmon_TESTDB02
oracle 30347 25941 0 22:24 pts/1 00:00:00 greppmon
[oracle@testdb-vi u03]$ export ORACLE_SID=TESTDB02
[oracle@testdb-vi u03]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Sun Jan 15 22:24:44 2017
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, OLAP, Advanced Analytics and Real Application Testing options
SQL> select host_name, instance_name from v$instance;
HOST_NAME INSTANCE_NAME
--------------- ----------------
testdb-vi TESTDB02
Como pudemos comprovar, é muito simples instalar o software Oracle Database quando criamos um “Oracle Database Cloud Service - Virtual Image”. Simplesmente descompactamos o arquivo que nos foi proporcionado com a VM já no diretório que queremos que fique a instalação e então executamos os scripts como root.
Depois vimos que podemos criar o banco de dados utilizando os métodos tradicionais, lembrando que se queremos utilizar o DBCA em modo gráfico devemos configurar previamente um túnel SSH.
Esperamos que esta série de artigos tenha sido útil e convidamos para que você continue nos acompanhando nas próximas publicações focadas em Oracle Cloud.
Sebastián D'Alessandro é um Senior DBA com mais de 15 anos de experiência real trablhando com a tecnologia Oracle. Ele tem foco principal na administração de banco de dados, projetar soluções de alta disponibilidade e disaster recovery, análise de desempenho, segurança, virtualização e cloud.Atualmente trabalha na área de banco de dados de uma grande empresa multinacional. Sebastian também participa como palestrante em vários eventos de tecnologia e publica freqüentemente em seu blog pessoal http://sdalessandro.blogspot.com. Você também pode segui-lo no Twitter https://twitter.com/sebdalessandro"
Joel Pérez é um DBA (Oracle ACE Director, Maximum Availability OCM, OCM Cloud Admin. & OCM12c/11g) Especialista com mais de 16 anos de experiência real no mundo da tecnologia Oracle, especializada na concepção e implementação de soluções: Nuvem, alta disponibilida de, recuperação de desastres, Upgrades, replicação e toda a área relacionada com bancos de dados Oracle. Joel serve como "Chief Technologist & MAA, Cloud Architect" para www.Enmotech.com Yunhe ENMO (Beijing) Technology Co. Ltd. Beijing, China. OCM Perfil Joel Perez: http://education.oracle.com/education/otn/JoelPerez.htm
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.