segunda-feira, 11 de dezembro de 2017

Criação e configuração de ambiente Oracle Cloud Service – Database Cloud Service – Parte 1

Vou postar hoje uma artigo que foi publicado originalmente no OTN (Artigo OTN). 

A segunda parte desse artigo ainda não foi publicada e sabe-se lá se vai ser já que estão ocorrendo mudanças na aprovação das publicações e isso está gerando atrasos nas revisões. 

Para a segunda parte não ficar "jogada", sem contexto, vou reproduzir a primeira parte aqui.

Esse texto foi originalmente revisado pelo Alex Zaballa (Blog) a quem eu queria agradecer aqui por toda a ajuda.

Vou reproduzir ele literalmente como no OTN.

===================================================================================

Não é de hoje que vemos crescer a importância das operações em cloud como um todo. É claro que os bancos de dados não ficariam de fora dessa evolução.

É cada vez mais comum ouvirmos falar termos como PaaS (Platform as a Service), IaaS (Infrastructure as a Service), SaaS (Software as a Service), entre outras.

Neste artigo, o que nos interessa é o Database Cloud Service, um dos produtos oferecidos no PaaS.

É claro que dependemos de análises profundas e individualizadas para definir se mantemos o nosso ambiente no já conhecido modelo "On-Premises" ou se partimos para soluções em Cloud, mas abaixo listo algumas vantagens da nuvem.

1) On-demand self service   - Rápido provisionamento e disponibilização de recursos.
2) Rapid elasticity         - Rápido escalonamento de recursos, conforme necessidade.
3) Measured usage           - Possibilidade de controle de consumo de recursos.
4) Resource pooling         - Arquiteturas flexíveis disponíveis conforme a necessidade.

Em dois artigos vamos explorar uma das possibilidades do Oracle Database Cloud Service que é o uso de uma Virtual Image utilizando também o Oracle Backup Cloud Service.

Basicamente, o Oracle Database Cloud Service nos fornece duas opções de configuração:

Oracle Database Cloud Service - Virtual Image: Inclui o database pré-instalado e o suporte, ou seja, o SO já vem preparado para a instalação, os instaladores já são fornecidos mas o DBA é quem faz essa instalação e manutenção de todo o ambiente de banco de dados. Nesse modelo, o DBA tem o acesso de root e tem todos os privilégios de SYSDBA no banco.

Oracle Database Cloud Service: Inclui o database já instalado e o suporte. São oferecidas também diversas ferramentas que facilitam a administração, backup e aplicação de patches dessa base na nuvem. Pelo painel do Oracle Cloud são passadas diretrizes para a criação de um banco de dados. A instance é criada e já iniciada como um serviço. Podem ser configurados, mas não são obrigatórios, backup's automáticos dessa base. Nesse modelo, o DBA tem o acesso de root e tem todos os privilégios de SYSDBA no banco também.

Nos dois modelos podemos escolher o Oracle Database 11g ou o 12c, porém somente no modelo "Oracle Database Cloud Service" é que contamos com o Oracle 12c na versão 12.2. Para o Virtual Image, até a data desse artigo ainda não era possível contratar essa versão.

Vamos começar. Nosso pré-requisito é que a conta já esteja liberada pela equipe da Oracle para utilização dos serviços contratados.





Inserir o username e o password fornecidos.




2) Criação do serviço

Para iniciar a criação do ambiente, deve-se criar o serviço do database, ou seja, o “Database Cloud Service”.

Para isso, deve-se selecionar a opção no menu de navegação (ao lado do logo do Oracle Cloud).

Depois clicar em “Database”.



Será apresentada a tela abaixo. Já haviam outros serviços criados, por isso no “Summary” apareceram essas informações.

Clicar em “Create Service”.




Selecionar “Oracle Database Cloud Service – Virtual Image” e clicar em “Next”.

O resumo de tudo o que foi (ou pode ser) contratado em cada ambiente é exibido. Leia com atenção as opções.

Também já é marcado como default o serviço que foi contratado. Neste artigo, por exemplo, a opção “Oracle Database Cloud Service – Virtual Image” já está marcada. 




Deve-se agora selecionar a versão desejada a ser instalada. Para este artigo, será selecionada a versão 12c. Depois clicar em “Next”.


Selecionar a edição do Oracle que deve ser utilizada e clicar em “Next”. Novamente o default já vem marcado. Nesse artigo, vamos selecionar a edição “Standard Edition”.




Esse é um ponto bem importante da criação do ambiente do Database Cloud Service. 

Aqui será definido o nome do serviço, a chave que será utilizada para acesso via ssh ao servidor e o size inicial da máquina. 

Então, antes de iniciar devemos criar uma chave para nosso teste. Para isso utilizarei o PuTTYGen. 

Ao iniciar o PuTTYGen, a tela abaixo será apresentada.




No parte inferior, em “Parameters”, são definidos o tipo de chave que será utilizado e o seu tamanho em bits. Neste artigo, será usada a chave SSH-2 RSA de 2048 bits.

Clicar em "Generate".


Importante: Durante a criação da chave, deve-se ficar movimentando o mouse na área em branco da tela para que a criação seja realizada.


Ao finalizar, será apresentada a tela acima. Deve-se preencher algumas informações antes de salvar a chave.

Key Comment: É opcional, mas é interessante de ser preenchido com algum comentário que identifique a chave.

Key Passphrase: Também é opcional, mas não teria sentido criar uma chave que não solicite uma senha antes da sua utilização.

Após preenchidas as informações, basta clicar em “Save Private Key” e salvar a chave.


Importante: Como a chave será utilizada somente administrativamente, ela será salva como uma chave privada. Se fosse ser divulgada essa chave para utilização pública, criaríamos uma chave pública.

Tendo a chave já criada, agora podemos continuar a criação do serviço. Para isso, clicar em “Edit” para inserir a chave que acabamos de criar. Depois de inserida a chave, faça o update da mesma como demonstrado abaixo. 




Para finalizar, clicar em “Enter”.

Com a chave importada, deve-se clicar em “Next”.




Após conferir se todas as informações estão corretas, clicar em “Create”.



Terminado esse processo a “máquina” estará criada e pronta para receber a instalação do Oracle.

3) Criação dos discos ou alocação de mais espaço para o serviço

Antes da instalação, iremos verificar o processo de aumento de espaço para a máquina. Quando o processo apresentado acima é executado, em nenhum momento é colocado o espaço em disco desejado. Por isso, após a criação já podemos alocar os espaços que iremos utilizar para a nossa base.

O processo de liberação de espaço é bem simples para o “Oracle Database Cloud Service – Virtual Image”.

Deve-se selecionar o serviço “SRV-TESTE” criado, e visualizar os detalhes desse serviço. Para isso, clicar em “Manage This Node”.


E selecionar a opção “Scale Up/Down”.




Preencher as informações solicitadas e clicar em “Yes, Scale Up/Down Service”.

Alguns pontos importantes nesse processo.

1) Pode-se, além de adicionar mais espaço, adicionar também mais capacidade de processamento à máquina.

2) Ao clicar em “Yes”, o serviço ficará indisponível. Esse aumento não é online.

3) Nesse exemplo, dois volumes de 500G serão apresentados ao servidor. Eles serão identificados na máquina como se fossem LUN’s de um storage comum.

4) Após as LUN’s serem apresentadas, deve-se formata-las e atribuir um tipo de FileSystem a elas. Neste artigo será utilizado o EXT4.


Após o serviço estar disponível novamente, deve-se acessar via SSH o servidor pelo seu IP público. Esse IP ficará documentado na tela de detalhes da base, no “Oracle Database Service”.

login as: opc
Authenticating with public key "rsa-key-20161010"

O processo deve ser feito como root.

sudo su -

Deve-se listar os discos para identificar as LUN’s apresentadas. Para isso, utilizar o comando abaixo.

lsblk -o NAME,UUID,MOUNTPOINT,FSTYPE
                NAME    UUID                                 MOUNTPOINT FSTYPE
       xvdb
       ├─xvdb1 947fa69d-3925-4738-a6c0-27d00f5c4f96 /boot      ext4
       ├─xvdb2 d24de279-f4f1-46ae-aa3b-5297bd258dcc [SWAP]     swap
       └─xvdb3 ac69bdf3-37be-47f2-9d59-6d4c672f98cc /          ext4
       xvdc
       └─xvdc1 e301e170-203e-4647-afb1-77a2a9a1bea9 /u01       ext4
       xvdd
       xvde

Como informado acima, os dois volumes destacados em vermelho (XVDD e XVDE) foram criados.

Verificar os dois discos e certificar que não existe nenhuma partição neles ainda.

fdisk -l /dev/xvdd
       Disk /dev/xvdd: 536.9 GB, 536870912000 bytes
       255 heads, 63 sectors/track, 65270 cylinders
       Units = cylinders of 16065 * 512 = 8225280 bytes
       Sector size (logical/physical): 512 bytes / 512 bytes
       I/O size (minimum/optimal): 512 bytes / 512 bytes
       Disk identifier: 0x00000000

fdisk -l /dev/xvde
       Disk /dev/xvde: 536.9 GB, 536870912000 bytes
       255 heads, 63 sectors/track, 65270 cylinders
       Units = cylinders of 16065 * 512 = 8225280 bytes
       Sector size (logical/physical): 512 bytes / 512 bytes
       I/O size (minimum/optimal): 512 bytes / 512 bytes
       Disk identifier: 0x00000000

O processo de realização do FDISK é igual ao feito em uma máquina física. Fazer nos dois volumes.
       fdisk /dev/xvdd
       
Selecionar/digitar as opções abaixo:
n                           -- Nova partição
p                           -- Partição primária
1                           -- A partir do primeiro cilindro
enter                       -- Aceitar o valor default
enter                       -- Aceitar o valor default
w                           -- Grava as alterações

     -- Após a criação das partições, pode ser necessário executar um partprobe.
        partprobe /dev/xvdcd

Ao verificarmos novamente, as partições já irão aparecer.

lsblk -o NAME,UUID,MOUNTPOINT,FSTYPE
       NAME    UUID                                 MOUNTPOINT FSTYPE
       xvdb
       ├─xvdb1 947fa69d-3925-4738-a6c0-27d00f5c4f96 /boot      ext4
       ├─xvdb2 d24de279-f4f1-46ae-aa3b-5297bd258dcc [SWAP]     swap
       └─xvdb3 ac69bdf3-37be-47f2-9d59-6d4c672f98cc /          ext4
       xvdc
       └─xvdc1 e301e170-203e-4647-afb1-77a2a9a1bea9 /u01       ext4
       xvdd
       └─xvdd1
       xvde
       └─xvde1

Como verificado acima, não temos nenhum FileSystem ainda identificado pois ainda é preciso formatar as partições para utilizar o EXT4.

Isso deve ser feito assim:

mkfs.ext4 /dev/xvdd1
       mke2fs 1.43-WIP (20-Jun-2013)
       Filesystem label=
       OS type: Linux
       Block size=4096 (log=2)
       Fragment size=4096 (log=2)
       Stride=0 blocks, Stripe width=0 blocks
       32768000 inodes, 131070310 blocks
       6553515 blocks (5.00%) reserved for the super user
       First data block=0
       Maximum filesystem blocks=4294967296
       4000 block groups
       32768 blocks per group, 32768 fragments per group
       8192 inodes per group
       Superblock backups stored on blocks:
       32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
       4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
       102400000

       Allocating group tables: done
       Writing inode tables: done
       Creating journal (32768 blocks): done
       Writing superblocks and filesystem accounting information:
       done

mkfs.ext4 /dev/xvde1
                mke2fs 1.43-WIP (20-Jun-2013)
       Filesystem label=
       OS type: Linux
       Block size=4096 (log=2)
       Fragment size=4096 (log=2)
       Stride=0 blocks, Stripe width=0 blocks
       32768000 inodes, 131070310 blocks
       6553515 blocks (5.00%) reserved for the super user
       First data block=0
       Maximum filesystem blocks=4294967296
       4000 block groups
       32768 blocks per group, 32768 fragments per group
       8192 inodes per group
       Superblock backups stored on blocks:
       32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
       4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
       102400000

       Allocating group tables: done
       Writing inode tables: done
       Creating journal (32768 blocks): done
       Writing superblocks and filesystem accounting information:
       done

Ao verificar novamente, teremos o FileSystem já atribuído à partição.

lsblk -o NAME,UUID,MOUNTPOINT,FSTYPE
       NAME    UUID                                 MOUNTPOINT FSTYPE
       xvdb
       ├─xvdb1 947fa69d-3925-4738-a6c0-27d00f5c4f96 /boot      ext4
       ├─xvdb2 d24de279-f4f1-46ae-aa3b-5297bd258dcc [SWAP]     swap
       └─xvdb3 ac69bdf3-37be-47f2-9d59-6d4c672f98cc /          ext4
       xvdc
       └─xvdc1 e301e170-203e-4647-afb1-77a2a9a1bea9 /u01       ext4
       xvdd
       └─xvdd1 c66a1b83-79fc-4edf-a630-b8bd0681c2e9            ext4
       xvde
       └─xvde1 c47c789a-3c8f-4926-8a2f-d82d68da7c44            ext4

Finalmente, deve-se montar as duas partições. No nosso artigo serão utilizados os já clássicos "/u02" e "/u03".

                cd /
                mkdir /u02 /u03
                chown oracle:oinstall /u02
                chown oracle:oinstall /u03
               
Edite o fstab e adicione os pontos de montagem.

vim /etc/fstab
       UUID=c66a1b83-79fc-4edf-a630-b8bd0681c2e9 /u02  ext4    defaults    0 0
       UUID=c47c789a-3c8f-4926-8a2f-d82d68da7c44 /u03  ext4    defaults    0 0

Executar como root:
       mount -a

df -h
       Filesystem      Size  Used Avail Use% Mounted on
       /dev/xvdb3       25G   12G   13G  47% /
       tmpfs            15G     0   15G   0% /dev/shm
       /dev/xvdb1      477M  148M  300M  34% /boot
       /dev/xvdc1       99G  7.9G   86G   9% /u01
       /dev/xvdd1      493G   70M  467G   1% /u02
       /dev/xvde1      493G   70M  467G   1% /u03

Nesse ponto, os volumes já estarão disponíveis para utilização.

Podemos verificar os espaços contratados e utilizados através do dashboard.



4) Instalação do SGBD


Quando o serviço do “Oracle Database Cloud Service – Virtual Image” é adquirido pelo cliente, isso quer dizer que o servidor vem parcialmente pronto para utilização. Ou seja, mesmo sendo o serviço criado pela página do “Oracle Database Cloud Service”, o banco de dados ainda deve ser instalado pelo DBA e depois a base de dados deve ser criada via DBCA.

Somente lembrando, isso está descrito no momento da criação do service.


Para a instalação devemos utilizar instaladores preparados especificamente para cloud e fornecidos juntamente com a criação do serviço.

Importante: Não são os mesmos instaladores utilizados em instalações “On-Premises”. Não devem ser utilizados esses instaladores.

login as: opc
Authenticating with public key "rsa-key-20161010"

A instalação deve ser realizada com o usuário Oracle. Os binários estão na pasta “/scratch/db”.

sudo su -
cd /scratch/db

ls -lrht
         -rw-r--r-- 1 oracle oinstall 3.4G Sep 12 15:00 db12102_bits.tar.gz
         -rw-r--r-- 1 oracle oinstall 3.1G Sep 12 15:07 db12102_se2bits.tar.gz

São oferecidos os dois instaladores – SE2 e EE. Basta executar o que foi contratado.

su - oracle
         cd /u01
         tar -vxzf /scratch/db/db12102_bits.tar.gz

Importante: São oferecidos os dois instaladores – SE2 e EE. Certifique-se de utilizar exatamente o instalador da sua versão, ou seja, se adquiriu o licenciamento da Standard Edition 2, deve usar o “db12102_se2bits.tar.gz”.

Voltar ao root e executar:
         exit
         /u01/app/oraInventory/orainstRoot.sh
         /u01/app/oracle/product/12.1.0/dbhome_1/root.sh

Nesse momento, o SGBD já estará instalado e disponível.


Para ilustrar e mostrar como esses instaladores são especialmente criados para cloud, abaixo segue o inventory do OPATCH mostrando todos os patches aplicados para esta imagem.

opatch lsinventory
Oracle Interim Patch Installer version 12.1.0.1.10
Copyright (c) 2016, Oracle Corporation.  All rights reserved.

Oracle Home       : /u01/app/oracle/product/12.1.0/dbhome_1
Central Inventory : /u01/app/oraInventory
from              : /u01/app/oracle/product/12.1.0/dbhome_1/oraInst.loc
OPatch version    : 12.1.0.1.10
OUI version       : 12.1.0.2.0
Log file location : /u01/app/oracle/product/12.1.0/dbhome_1/cfgtoollogs/opatch/opatch2016-11-14_11-11-20AM_1.log

Lsinventory Output file location : /u01/app/oracle/product/12.1.0/dbhome_1/cfgtoollogs/opatch/lsinv/lsinventory2016-11-14_11-11-20AM.txt
--------------------------------------------------------------------------------
Local Machine Information:
Hostname: XXX.oraclecloud.internal
ARU platform id: 226
ARU platform description:: Linux x86-64

Installed Top-level Products (1):

Oracle Database 12c                                                  12.1.0.2.0
There are 1 products installed in this Oracle Home.

Interim patches (3) :
Patch  22139226     : applied on Thu Jan 21 03:18:43 EST 2016
Unique Patch ID     :  19729684
Patch description   :  "Database PSU 12.1.0.2.160119, Oracle JavaVM Component (Jan2016)"
   Created on 4 Jan 2016, 01:41:46 hrs PST8PDT
   Bugs fixed:
     19699946, 19176885, 19623450, 22139226, 19909862, 21811517, 19223010
     21068507, 19895326, 19877336, 22118835, 22118851, 21566993, 19153980
     20408829, 21047766, 19231857, 19895362, 19855285, 20415564, 21555660
     19245191, 21047803, 20408866, 21566944

Patch  22543975     : applied on Thu Jan 21 03:16:54 EST 2016
Unique Patch ID:  19772638
   Created on 20 Jan 2016, 19:09:00 hrs PST8PDT
   Bugs fixed:
     19770063, 19665921, 21281607, 21154593, 22543975, 21294504
   This patch overlays patches:
     21948354
   This patch needs patches:
     21948354
   as prerequisites

Patch  21948354:    applied on Thu Jan 21 03:13:32 EST 2016
Unique Patch ID:    19553095
Patch description:  "Database Patch Set Update : 12.1.0.2.160119 (21948354)"
   Created on 20 Dec 2015, 23:39:33 hrs PST8PDT
Sub-patch  21359755; "Database Patch Set Update : 12.1.0.2.5 (21359755)"
Sub-patch  20831110; "Database Patch Set Update : 12.1.0.2.4 (20831110)"
Sub-patch  20299023; "Database Patch Set Update : 12.1.0.2.3 (20299023)"
Sub-patch  19769480; "Database Patch Set Update : 12.1.0.2.2 (19769480)"
   Bugs fixed:
     19189525, 19075256, 19141838, 19865345, 19791273, 19280225, 18845653
     20951038, 19243521, 19248799, 21756699, 18988834, 19238590, 21281532
     20245930, 18921743, 18799063, 19134173, 19571367, 20476175, 20925795
     19018206, 20509482, 20387265, 20588502, 19149990, 18849537, 18886413
     17551063, 19183343, 19703301, 19001390, 18202441, 19189317, 19644859
     19358317, 19390567, 19279273, 19706965, 19068970, 19619732, 20348653
     18607546, 18940497, 19670108, 19649152, 18948177, 19315691, 19676905
     18964978, 19035573, 20165574, 19176326, 20413820, 20558005, 19176223
     19532017, 20134339, 19074147, 18411216, 20361671, 20425790, 18966843
     20294666, 19307662, 19371175, 19195895, 19154375, 19468991, 19174521
     19520602, 19382851, 21875360, 19326908, 19658708, 20093776, 20618595
     21787056, 17835294, 19791377, 19068610, 20048359, 20746251, 19143550
     19185876, 19627012, 20281121, 19577410, 22092979, 19001359, 19518079
     18610915, 19490948, 18674024, 18306996, 19309466, 19081128, 19915271
     20122715, 21188532, 20284155, 18791688, 20890311, 21442094, 18973548
     19303936, 19597439, 20235511, 18964939, 19430401, 19044962, 19409212
     19879746, 20657441, 19684504, 19024808, 18799993, 20877664, 19028800
     19065556, 19723336, 19077215, 19604659, 21421886, 19524384, 19048007
     18288842, 19689979, 20446883, 18952989, 16870214, 19928926, 21526048
     19180770, 19197175, 19902195, 20318889, 19730508, 19012119, 19067244
     20074391, 19512341, 19841800, 14643995, 20331945, 19587324, 19547370
     19065677, 19637186, 21225209, 20397490, 18967382, 19174430, 18674047
     19054077, 19536415, 19708632, 19289642, 20869721, 19335438, 17365043
     18856999, 19869255, 20471920, 19468347, 21620471, 16359751, 18990693
     17890099, 19439759, 19769480, 19272708, 19978542, 20101006, 21300341
     20402832, 19329654, 19873610, 21668627, 21517440, 19304354, 19052488
     20794034, 19291380, 18681056, 19896336, 19076343, 19561643, 18618122
     20440930, 18456643, 19699191, 18909599, 19487147, 18250893, 19016730
     18743542, 20347562, 16619249, 18354830, 19687159, 19174942, 20424899
     19989009, 20688221, 20441797, 19157754, 19032777, 19058490, 19399918
     18885870, 19434529, 19018447, 18417036, 20919320, 19022470, 19284031
     20474192, 20173897, 22062026, 19385656, 19501299, 17274537, 20899461
     19440586, 16887946, 19606174, 18436647, 17655240, 19023822, 19178851
     19124589, 19805359, 19597583, 19155797, 19393542, 19050649
--------------------------------------------------------------------------------
OPatch succeeded.

Em destaque, o PSU aplicado é o de Janeiro de 2016. Como podemos verificar nos notes “Oracle Recommended Patches -- Oracle Database (Doc ID 756671.1)” e Quick Reference to Patch Numbers for Database/GI PSU, SPU(CPU), Bundle Patches and Patchsets (Doc ID 1454618.1) existem PSU’s mais recentes que devem ser aplicados.

O ideal, até a data desse artigo, seria aplicar o PSU 12.1.0.2.161018 de Outubro/2016.

Como estamos utilizando o “Oracle Database Cloud Service - Virtual  Image”, esse controle de patches deve ser feito pelo DBA através do MOS e dos comunicados de PSU’s e Bandle Patches liberados.

Caso estivéssemos usando o “Oracle Database Cloud Service”, no console de administração do serviço de banco de dados seria apresentado a lista de patches recomendados para manter o ambiente atualizado.





Como não é o foco desse artigo a aplicação de patches no Oracle Database Cloud Service, essa operação não será demonstrada.

Mais informações sobre essa aplicação podem ser verificadas em:


5) Criação da base de dados

Para a criação da base, pode-se utilizar o DBCA na sua opção visual. Eu sempre prefiro o “silent mode” e é essa opção que será apresentada aqui.

Exportar as variáveis de ambiente
                export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
                export PATH=$ORACLE_HOME/OPatch:$ORACLE_HOME/bin:$PATH
                export ORACLE_BASE=/u02/oradata/

E executar o DBCA em modo silent.

dbca -silent -createDatabase -templateName General_Purpose.dbc
-gdbName soulprd -sid soulprd -sysPassword aaa123
-systemPassword aaa123 -emConfiguration NONE
-datafileDestination /u02/oradata
-createAsContainerDatabase false -storageType FS
-memoryPercentage 40 -automaticMemoryManagement true
-redoLogFileSize 300 -recoveryAreaDestination NONE
-characterSet WE8ISO8859P1 -nationalCharacterSet AL16UTF16
-sampleSchema false -databaseType MULTIPURPOSE

Os parâmetros utilizados são bem simples e intuitivos. Mais detalhes no HELP do comando.

A saída esperada ao término do comando é essa abaixo.

File Validations Successful.
Copying database files
DBCA_PROGRESS : 1%
DBCA_PROGRESS : 3%
DBCA_PROGRESS : 11%
DBCA_PROGRESS : 18%
DBCA_PROGRESS : 26%
DBCA_PROGRESS : 37%
Creating and starting Oracle instance
DBCA_PROGRESS : 40%
DBCA_PROGRESS : 45%
DBCA_PROGRESS : 50%
DBCA_PROGRESS : 55%
DBCA_PROGRESS : 56%
DBCA_PROGRESS : 60%
DBCA_PROGRESS : 62%
Completing Database Creation
DBCA_PROGRESS : 66%
DBCA_PROGRESS : 70%
DBCA_PROGRESS : 73%
DBCA_PROGRESS : 85%
DBCA_PROGRESS : 96%
DBCA_PROGRESS : 100%
Database creation complete. For details check the logfiles at:
       /u01/app/oracle/cfgtoollogs/dbca/soulprd.

Database Information:
Global Database Name:soulprd
System Identifier(SID):soulprd

Ao chegarmos nesse ponto, o serviço do Database Cloud já está criado, o SGBD está instalado e a base de dados já foi criada e está pronta para utilização. Não se esqueça de criar o listener também via NETCA.

Após o listener criado, é o momento de liberar o acesso via regra.

6)  Criação da regra de acesso à base de dados via Listener

Para que a base fique acessível via listener por outros servidores, precisamos criar uma regra de acesso a esse servidor na porta 1521.

Deve-se voltar a tela do “Oracle Database Cloud Service”. Para isso, clicar no menu ao lado do logo do Oracle Cloud.



Selecionar “Oracle Database Cloud Service”.




Clicar no menu ao lado do service criado e depois selecione “Access Rules”.


Selecionar “Create Rule".




Preencher todas as opções e clicar em “Create”. 







Será apresentada a mensagem abaixo.



Para testar, vamos utilizar o SQL Developer para fazer uma conexão. Vamos criar uma conexão com as informações do cloud.




Conexão executada com sucesso.




Neste artigo ficou claro a facilidade, praticidade e rapidez para a criação desse ambiente.

No próximo artigo vamos realizar as configurações do WALLET e do Oracle Cloud Backup  Service.

quinta-feira, 9 de novembro de 2017

Aplicando RUR 12.2.0.1.171017 em single instance com GRID

Olá pessoal.

Vocês já aplicaram patches na versão 12.2.0.1 do Oracle? 

Naquela pegada de roteiros para tentar facilitar primeiro a minha vida depois a dos amigos DBA's, montei o passo a passo abaixo.

Mas antes de aplicar seria bom você se atentar as mudanças de nomenclatura e mesmo no conceito dos patches.

Bem a grosso modo e somente para traçar um paralelo com a maneira mais antiga já que na verdade as diferenças são bem maiores que essas abaixo, seria mais ou menos assim: 

- No lugar dos antigos PSU's (Patch Set Updates ) entraram os RU's (Release Updates).

- Já no lugar dos famosos BP's (Proactive Bundle Patches) temos agora os RUR's (Release Update Revisions).

Essa seria a nova organização dos patches:

Retirada do blog do Mike Dietrich

Obviamente não é tão simples assim, o conceito dos patches mudaram como eu disse lá no começo e essa minha definição é extremamente simplista e ilustrativa.

No note "Release Update Introduction and FAQ (Doc ID 2285040.1)" você encontra muitas informações sobre as mudanças. 

Se quiser algo mais mastigado, veja o ótimo texto no site do Mike Dietrich: [Differences between PSU/BP and RU/RUR]

Não deixe de ler, vale muito a pena além de ser bastante importante.

Bom, se você já leu ou já sabe das mudanças, vamos ao que interessa e aplicar o RUR 12.2.0.1.171017 que até o momento da escrita desse artigo é o mais recente.

Vamos ao roteiro da atualização (as saídas dos comandos foram editadas somente com as partes importantes):

1) Sempre verificar a última versão do OPATCH. Isso pode ser feito verificando o note abaixo:

Veja o note:
- How To Download And Install The Latest OPatch(6880880) Version (Doc ID 274526.1)

2) Localizar o patch mais atualizado - RUR ou RU
Veja os notes:
- Release Update Introduction and FAQ (Doc ID 2285040.1)
- 12.2.0.1 Base Release - Availability and Known Issues (Doc ID 2239820.1)


3) Baixe os PATCHES.
Patch 6880880: OPatch patch of version 12.2.0.1.11 for Oracle software releases 12.1.0.x (installer) and 12.2.0.x (OCT 2017) (Patch)  


Patch 26878187: GRID INFRASTRUCTURE RELEASE UPDATE REVISION 12.2.0.1.171017


 
4) Agora vamos atualizar o OPATCH do GRID e do DATABASE. Não é obrigatório mas eu acho bastante importante rodar o OPATCH atualizado. Aprendi isso com o meu amigo Portilho e nunca mais deixei de fazer.

-- Como root
su -
cd /home/oracle/PATCH
unzip -q p6880880_122010_Linux-x86-64.zip

-- GRID
cd /oracle/12.2.0.1/grid
mv OPatch OPatch-20171108

mkdir OPatch
cp -rv /home/oracle/PATCH/OPatch/* /oracle/12.2.0.1/grid/OPatch/.
chown -R oracle:oinstall OPatch


-- DATABASE
cd /oracle/app/oracle/product/12.2.0.1/dbhome_1/
mv OPatch OPatch-20171108
mkdir OPatch
cp -rv /home/oracle/PATCH/OPatch/* /oracle/app/oracle/product/12.2.0.1/dbhome_1/OPatch/
chown -R oracle:oinstall OPatch
  


5) Verificando versão do OPatch e os patches já aplicados no ambiente.

su - oracle
-- GRID
$GRID_HOME/OPatch/opatchauto version
Oracle OPatchAuto Version 13.9.2.1.0
Copyright (c) 2016, Oracle Corporation.  All rights reserved.
1. OPatchAuto version 13.9.2.1.0
2. OpatchautoDB version 12.2.0.1.11

$GRID_HOME/OPatch/opatch lsinventory

 Oracle Home       : /oracle/12.2.0.1/grid
Central Inventory : /oracle/app/oraInventory
 from              : /oracle/12.2.0.1/grid/oraInst.loc
OPatch version    : 12.2.0.1.11
OUI version       : 12.2.0.1.4
-------------------------------------------------------------------
Local Machine Information::
Hostname: single122
ARU platform id: 226
ARU platform description:: Linux x86-64

Installed Top-level Products (1): 
Oracle Grid Infrastructure 12c                                       12.2.0.1.0

 There are 1 products installed in this Oracle Home.
There are no Interim PATCH installed in this Oracle Home.
 -------------------------------------------------------------------


-- DATABASE
$ORACLE_HOME/OPatch/opatch lsinventory

 Oracle Home       : /oracle/app/oracle/product/12.2.0.1/dbhome_1
Central Inventory : /oracle/app/oraInventory
from           : /oracle/app/oracle/product/12.2.0.1/dbhome_1/oraInst.loc
OPatch version    : 12.2.0.1.11
OUI version       : 12.2.0.1.4
-------------------------------------------------------------------
Local Machine Information::
Hostname: single122
ARU platform id: 226
ARU platform description:: Linux x86-64

Installed Top-level Products (1): 

Oracle Database 12c                                                 12.2.0.1.0
There are 1 products installed in this Oracle Home.
There are no Interim PATCH installed in this Oracle Home.
 -------------------------------------------------------------------


6) Vamos descompactar o RUR para aplicar no ambiente. 

su - oracle
cd /home/oracle/PATCH
unzip -q p26878187_122010_Linux-x86-64

7) Após a leitura do README do patch, vamos verificar a compatibilidade do patch.

su -
  
cd /home/oracle/PATCH/26878187
export GRID_HOME=/oracle/12.2.0.1/grid
export PATH=$PATH:/oracle/12.2.0.1/grid/OPatch


Abaixo um trecho do README que muitos ignoram mas eu gosto de fazer:

"Determine whether any currently installed one-off patches conflict with the Grid Infrastructure 12.2.0.1.171017 26878187 as follows:"

$GRID_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /home/oracle/PATCH/26878187/26518812
Exemplo de saída:
Oracle Interim Patch Installer version 12.2.0.1.11
Copyright (c) 2017, Oracle Corporation.  All rights reserved.
PREREQ session
Oracle Home       : /oracle/12.2.0.1/grid
Central Inventory : /oracle/app/oraInventory
 from              : /oracle/12.2.0.1/grid/oraInst.loc
OPatch version    : 12.2.0.1.11
OUI version       : 12.2.0.1.4

Invoking prereq "checkconflictagainstohwithdetail"
Prereq "checkConflictAgainstOHWithDetail" passed.
OPatch succeeded.

Fazer isso para todos os patches contidos no RUR, como informa o README.


-- Executando também o ANALYZE do patch.

$GRID_HOME/OPatch/opatchauto apply /home/oracle/PATCH/26878187 -analyze -oh /oracle/12.2.0.1/grid

Executing OPatch prereq operations to verify patch applicability on home /oracle/12.2.0.1/grid
Patch applicability verified successfully on home /oracle/12.2.0.1/grid
OPatchAuto successful.

--------------------------------Summary-----------------------------
Analysis for applying patches has completed successfully:
Host:single122
SIHA Home:/oracle/12.2.0.1/grid

==Following patches were SUCCESSFULLY analyzed to be applied:

Patch: /home/oracle/PATCH/26878187/26878137
Log: /oracle/12.2.0.1/grid/cfgtoollogs/opatchauto/core/opatch/opatch2017-11-08_15-17-24PM_1.log

Patch: /home/oracle/PATCH/26878187/25586399
Log: /oracle/12.2.0.1/grid/cfgtoollogs/opatchauto/core/opatch/opatch2017-11-08_15-17-24PM_1.log

Patch: /home/oracle/PATCH/26878187/26839277
Log: /oracle/12.2.0.1/grid/cfgtoollogs/opatchauto/core/opatch/opatch2017-11-08_15-17-24PM_1.log

Patch: /home/oracle/PATCH/26878187/26928563
Log: /oracle/12.2.0.1/grid/cfgtoollogs/opatchauto/core/opatch/opatch2017-11-08_15-17-24PM_1.log

Patch: /home/oracle/PATCH/26878187/26518812
Log: /oracle/12.2.0.1/grid/cfgtoollogs/opatchauto/core/opatch/opatch2017-11-08_15-17-24PM_1.log

OPatchauto session completed at Wed Nov  8 15:18:25 2017
Time taken to complete the session 1 minute, 30 seconds


8) Após verificar a compatibilidade, podemos aplicar o patch.
su - oracle
$GRID_HOME/OPatch/opatchauto apply /home/oracle/PATCH/26878187

Exemplo de saída:
OPatchauto session is initiated at Wed Nov  8 15:50:25 2017

 ...
Preparing to bring down database service on home /oracle/app/oracle/product/12.2.0.1/dbhome_1
Successfully prepared home /oracle/app/oracle/product/12.2.0.1/dbhome_1 to bring down database service

Bringing down database service on home /oracle/app/oracle/product/12.2.0.1/dbhome_1
Following database has been stopped and will be restarted later during the session: hulk
Database service successfully brought down on home /oracle/app/oracle/product/12.2.0.1/dbhome_1

Bringing down CRS service on home /oracle/12.2.0.1/grid
Prepatch operation log file location: /oracle/app/oracle/crsdata/single122/crsconfig/hapatch_2017-11-08_03-52-57PM.log
CRS service brought down successfully on home /oracle/12.2.0.1/grid

Start applying binary patch on home /oracle/app/oracle/product/12.2.0.1/dbhome_1
Binary patch applied successfully on home /oracle/app/oracle/product/12.2.0.1/dbhome_1

Start applying binary patch on home /oracle/12.2.0.1/grid
Binary patch applied successfully on home /oracle/12.2.0.1/grid

Starting CRS service on home /oracle/12.2.0.1/grid
Postpatch operation log file location: /oracle/app/oracle/crsdata/single122/crsconfig/hapatch_2017-11-08_04-03-13PM.log
CRS service started successfully on home /oracle/12.2.0.1/grid

Starting database service on home /oracle/app/oracle/product/12.2.0.1/dbhome_1
Database service successfully started on home /oracle/app/oracle/product/12.2.0.1/dbhome_1

Preparing home /oracle/app/oracle/product/12.2.0.1/dbhome_1 after database service restarted
No step execution required.........
Prepared home /oracle/app/oracle/product/12.2.0.1/dbhome_1 successfully after database service restarted

Trying to apply SQL patch on home /oracle/app/oracle/product/12.2.0.1/dbhome_1
SQL patch applied successfully on home /oracle/app/oracle/product/12.2.0.1/dbhome_1

OPatchAuto successful.

--------------------------------Summary----------------------------
Patching is completed successfully. Please find the summary as follows:

Host:single122
SIDB Home:/oracle/app/oracle/product/12.2.0.1/dbhome_1
Summary:

==Following patches were SKIPPED:
Patch: /home/oracle/PATCH/26878187/25586399
Reason: This patch is not applicable to this specified target type - "oracle_database"

Patch: /home/oracle/PATCH/26878187/26839277
Reason: This patch is not applicable to this specified target type - "oracle_database"

Patch: /home/oracle/PATCH/26878187/26928563
Reason: This patch is not applicable to this specified target type - "oracle_database"


==Following patches were SUCCESSFULLY applied:
Patch: /home/oracle/PATCH/26878187/26518812
Log: /oracle/app/oracle/product/12.2.0.1/dbhome_1/cfgtoollogs/opatchauto/core/opatch/opatch2017-11-08_15-53-23PM_1.log

Patch: /home/oracle/PATCH/26878187/26878137
Log: /oracle/app/oracle/product/12.2.0.1/dbhome_1/cfgtoollogs/opatchauto/core/opatch/opatch2017-11-08_15-53-23PM_1.log


Host:single122
SIHA Home:/oracle/12.2.0.1/grid
Summary:

==Following patches were SUCCESSFULLY applied:
Patch: /home/oracle/PATCH/26878187/25586399
Log: /oracle/12.2.0.1/grid/cfgtoollogs/opatchauto/core/opatch/opatch2017-11-08_15-56-27PM_1.log

Patch: /home/oracle/PATCH/26878187/26518812
Log: /oracle/12.2.0.1/grid/cfgtoollogs/opatchauto/core/opatch/opatch2017-11-08_15-56-27PM_1.log

Patch: /home/oracle/PATCH/26878187/26839277
Log: /oracle/12.2.0.1/grid/cfgtoollogs/opatchauto/core/opatch/opatch2017-11-08_15-56-27PM_1.log

Patch: /home/oracle/PATCH/26878187/26878137
Log: /oracle/12.2.0.1/grid/cfgtoollogs/opatchauto/core/opatch/opatch2017-11-08_15-56-27PM_1.log

Patch: /home/oracle/PATCH/26878187/26928563
Log: /oracle/12.2.0.1/grid/cfgtoollogs/opatchauto/core/opatch/opatch2017-11-08_15-56-27PM_1.log

OPatchauto session completed at Wed Nov  8 16:06:49 2017
Time taken to complete the session 16 minutes, 24 seconds


9) Agora basta fazer as verificações.

su - oracle

-- Verificar se todos os serviços e databases estão no ar
####################################### CRSSTAT OUTPUT ###############################################
DATE: Wed Nov  8 16:54:38 BRST 2017  
######################################################################################################
COLOR CODES: HEADER  CONTENT  ALERT  ORACLE_SID 
######################################################################################################
  NAME               TYPE        VERSION        STATE                TARGET   LAST_RESTART         STATE 
  ----               ----        -------        -----                ------   ------------         --------
  ora.asm            asm         asm            ONLINE on single122  ONLINE   11/08/2017 16:04:34  STABLE 
  ora.cssd           cssd        SERVER_POOLS=  ONLINE on single122  ONLINE   11/08/2017 16:04:19  STABLE 
  ora.hulk.db        database    SERVER_POOLS=  ONLINE on single122  ONLINE   11/08/2017 16:05:00  STABLE 
  ora.FRA.dg         diskgroup   diskgroup      ONLINE on single122  ONLINE   11/08/2017 16:04:33  STABLE 
  ora.REDO.dg        diskgroup   diskgroup      ONLINE on single122  ONLINE   11/08/2017 16:04:33  STABLE 
  ora.DATA.dg        diskgroup   diskgroup      ONLINE on single122  ONLINE   11/08/2017 16:04:34  STABLE 
  ora.TESTE.dg       diskgroup   diskgroup      ONLINE on single122  ONLINE   11/08/2017 16:04:34  STABLE 
  ora.diskmon        diskmon     SERVER_POOLS=  OFFLINE              OFFLINE  11/08/2017 16:04:07  STABLE 
  ora.driver.afd     driver.afd  SERVER_POOLS=  ONLINE on single122  ONLINE   NEVER                STABLE 
  ora.evmd           evm         SERVER_POOLS=  ONLINE on single122  ONLINE   11/08/2017 16:04:03  STABLE 
  ora.LISTENER.lsnr  listener    listener       ONLINE on single122  ONLINE   11/08/2017 16:04:07  STABLE 
  ora.ons            ons         ons            OFFLINE              OFFLINE  NEVER                STABLE 
  

10) Verificando a aplicação do patch 

$ORACLE_HOME/OPatch/opatch lsinventory
Oracle Interim Patch Installer version 12.2.0.1.11
Copyright (c) 2017, Oracle Corporation.  All rights reserved.

Oracle Home       : /oracle/app/oracle/product/12.2.0.1/dbhome_1

Central Inventory : /oracle/app/oraInventory
   from           : /oracle/app/oracle/product/12.2.0.1/dbhome_1/oraInst.loc
OPatch version    : 12.2.0.1.11
OUI version       : 12.2.0.1.4
Log file location : /oracle/app/oracle/product/12.2.0.1/dbhome_1/cfgtoollogs/opatch/opatch2017-11-08_16-56-29PM_1.log

Lsinventory Output file location : /oracle/app/oracle/product/12.2.0.1/dbhome_1/cfgtoollogs/opatch/lsinv/lsinventory2017-11-08_16-56-29PM.txt


--------------------------------------------------------------------------------

Local Machine Information::
Hostname: single122
ARU platform id: 226
ARU platform description:: Linux x86-64

Installed Top-level Products (1): 


Oracle Database 12c                                                  12.2.0.1.0

There are 1 products installed in this Oracle Home.

Interim patches (2) :


Patch  26878137     : applied on Wed Nov 08 15:56:17 BRST 2017

Unique Patch ID:  21594430
Patch description:  "OCW JUL2017 RELEASE UPDATE REVISION : 12.2.0.1.171017  (26878137)"
   Created on 27 Sep 2017, 06:10:39 hrs PST8PDT
   Bugs fixed:
26144044, 25541343, 25715179, 25493588, 24932026, 24801915, 25832375
25728787, 25825732, 24578464, 25832312, 25742471, 25790699, 25655495
25307145, 25485737, 25505841, 25697364, 24663993, 25026470, 25591658
25537905, 24451580, 25409838, 25371632, 25569634, 25245759, 24665035
25646592, 25025157, 24732650, 24664849, 24584419, 24423011, 24831158
25037836, 25556203, 24464953, 24657753, 25197670, 24796183, 20559126
25197395, 24808260, 26546632

Patch  26518812     : applied on Wed Nov 08 15:55:18 BRST 2017

Unique Patch ID:  21611172
Patch description:  "Database Jul 2017 Release Update Revision : 12.2.0.1.171017 (26518812)"
   Created on 4 Oct 2017, 18:39:53 hrs PST8PDT
   Bugs fixed:
23026585, 24336249, 24929210, 24942749, 25036474, 25110233, 25410877
25417050, 25427662, 25459958, 25547901, 25569149, 25600342, 25600421
25606091, 25655390, 25662088, 24385983, 24923215, 25099758, 25429959
25662101, 25728085, 25823754, 22594071, 23665623, 23749454, 24326846
24334708, 24560906, 24573817, 24578797, 24609996, 24624166, 24668398
24674955, 24744686, 24811725, 24827228, 24831514, 24908321, 24976007
25184555, 25210499, 25211628, 25223839, 25262869, 25316758, 25337332
25455795, 25457409, 25539063, 25546608, 25612095, 25643931, 25410017
22729345, 24485174, 24509056, 24714096, 25329664, 25410180, 25607726
25957038, 25973152, 26024732, 24376878, 24589590, 24676172, 23548817
24796092, 24907917, 25044977, 25736747, 25766822, 25856821, 25051628
24534401, 24835919, 25050160, 25395696, 25430120, 25616359, 25715167
25967985, 26546754, 26546664, 26544823, 26575788, 25489607, 25654936
25947799, 26271001, 26526726, 25980770
--------------------------------------------------------------------------------
OPatch succeeded.


E é isso, agora estamos com o último RUR aplicado em nosso ambiente.

Espero que ajude.

Abraço
Mario

Postagem em destaque

[ORACLE] Useful scripts for the day-to-day life of a DBA (Part 3) - System metrics

Hello everyone.   Hope you're doing well! As I said here , I've created a repository on GITHUB to share some scripts that I like t...