Nova Oracle Cloud Trial - "Ilimitada"

Neste Oracle Open World foi lançada a nova versão do ambiente cloud trial, que trouxe a possibilidade de uso ilimitado de alguns serviços. Serviços que que podem ser utilizados por tempo indeterminado: - 2 Autonomous Databases (Autonomous Data Warehouse or Autonomous Transaction Processing), each with 1 OCPU and 20 GB storage; - 2 Compute VMs, each with 1/8 OCPU and 1 GB memory; - 2 Block Volumes, 100 GB total, with up to 5 free backups; - 10 GB Object Storage, 10 GB Archive Storage, and 50,000/month API requests; - 1 Load Balancer, 10 Mbps bandwidth; - 10 TB/month Outbound Data Transfer; - 500 million ingestion Datapoints and 1 billion Datapoints for Monitoring Service; - 1 million Notification delivery options per month and 1000 emails per month. Cada conta também terá direito a USD300 em créditos gratuitos, com validade de 30 dias para usar e validar os demais serviços disponíveis na Oracle Cloud. https://www.oracle.com/corporate/pressrelease/oow19-oracle-free-tier-091619.html https://www.oracle.com/br/cloud/free/

Oracle Cloud OCI - Ajustando o timezone do serviço de banco de dados

No artigo de hoje, estarei demonstrando como realizar a alteração do timezone do Oracle Database Service, apos o serviço já estar criado e disponível.

No exemplo abaixo, o serviço de banco de dados foi criado no datacenter de São Paulo, com timezone UTC, ou seja, 3 horas adiantado em relação ao horario de Brasília.

Horario de Brasilia:09:19
Horario do Servidor de banco: 12:19


Para ajustar o timezone, o primeiro passo necessário é conectar via ssh no servidor de banco de dados, uma vez que não existe opção de alteração via console.

Posteriormente, com o usuário root, devemos editar o arquivo /etc/sysconfig/clock com o timezone correto. No exemplo abaixo, estaremos alterando de UTC para America/Sao_Paulo e comentando as demais entradas.
[root@standbycloud ~]# cat /etc/sysconfig/clock
ZONE="UTC"
UTC=true
ARC=false
[root@standbycloud ~]# vi /etc/sysconfig/clock
[root@standbycloud ~]# cat /etc/sysconfig/clock
ZONE="America/Sao_Paulo"
#UTC=true
#ARC=false

Os timezones disponíveis podem ser validados no diretório /usr/share/zoneinfo/
Após a edição do arquivo, vamos recriar o link /etc/localtime e com isso o horário da maquina já estará ajustado.
[root@standbycloud ~]# date
Tue Sep 17 12:28:04 UTC 2019
[root@standbycloud ~]# ln -sf /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime
[root@standbycloud ~]# date
Tue Sep 17 09:28:23 -03 2019
[root@standbycloud ~]#
Posteriormente, é necessário ajustar o horario no grid. Para isso, devemos parar os serviços e ajustar o arquivo GRID_HOME/crs/install/s_crsconfig_<node_name>_env.txt, alterando a variável TZ. Este ajuste deve ser feito em todos os nodes, para ambientes cluster.
[root@standbycloud ~]# ls -ltr /u01/app/18.0.0.0/grid/crs/install/s_crsconfig*
-rwxr-xr-x 1 root oinstall 3593 Dec 30  2014 /u01/app/18.0.0.0/grid/crs/install/s_crsconfig_defs
-rwxr-xr-x 1 root oinstall  990 Sep  9 09:21 /u01/app/18.0.0.0/grid/crs/install/s_crsconfig_standbycloud_env.txt
[root@standbycloud ~]# cat /u01/app/18.0.0.0/grid/crs/install/s_crsconfig_standbycloud_env.txt
#########################################################################
#This file can be used to set values for the NLS_LANG and TZ environment
#variables and to set resource limits for Oracle Clusterware and
#Database processes.
#1. The NLS_LANG environment variable determines the language and
#   characterset used for messages. For example, a new value can be
#   configured by setting NLS_LANG=JAPANESE_JAPAN.UTF8
#2. The Time zone setting can be changed by setting the TZ entry to
#   the appropriate time zone name. For example, TZ=America/New_York
#3. Resource limits for stack size, open files and number of processes
#   can be specified by modifying the appropriate entries.
#
#Do not modify this file except as documented above or under the
#direction of Oracle Support Services.
#########################################################################
TZ=UTC
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
CRS_LIMIT_STACK=2048
CRS_LIMIT_OPENFILE=65536
CRS_LIMIT_NPROC=65536
TNS_ADMIN=
[root@standbycloud ~]# vi /u01/app/18.0.0.0/grid/crs/install/s_crsconfig_standbycloud_env.txt
[root@standbycloud ~]# cat /u01/app/18.0.0.0/grid/crs/install/s_crsconfig_standbycloud_env.txt
#########################################################################
#This file can be used to set values for the NLS_LANG and TZ environment
#variables and to set resource limits for Oracle Clusterware and
#Database processes.
#1. The NLS_LANG environment variable determines the language and
#   characterset used for messages. For example, a new value can be
#   configured by setting NLS_LANG=JAPANESE_JAPAN.UTF8
#2. The Time zone setting can be changed by setting the TZ entry to
#   the appropriate time zone name. For example, TZ=America/New_York
#3. Resource limits for stack size, open files and number of processes
#   can be specified by modifying the appropriate entries.
#
#Do not modify this file except as documented above or under the
#direction of Oracle Support Services.
#########################################################################
TZ=AMERICA/SAO_PAULO
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
CRS_LIMIT_STACK=2048
CRS_LIMIT_OPENFILE=65536
CRS_LIMIT_NPROC=65536
TNS_ADMIN=
[root@standbycloud ~]#
Concluído o ajuste do arquivo do listener, devemos ajustar os serviços do listener e database e depois iniciar os serviços.
Grid:
srvctl setenv listener -l listener -t 'TZ=America/Sao_Paulo'

Oracle:
srvctl setenv database -d LAMIM -t 'TZ=America/Sao_Paulo'

[root@standbycloud ~]# service ohasd start
Starting ohasd:

CRS-4123: Oracle High Availability Services has been started.
[root@standbycloud ~]#
Referência: 
https://minersoracleblog.wordpress.com/2014/09/19/changing-timezone-settings-on-oracle-database-servers/

How do I change the timezone setting of my Oracle Cloud Database? (Doc ID 2165725.1)


É possível renomear um pdb durante o processo de duplicate rman?

Imagine um cenário composto por um ambiente Oracle Database 12.2 Single Tenant no qual a temos a necessidade de realizar um processo de duplicate para um novo cdb também Single Tenant no mesmo servidor.

A aplicação conecta no pdb como serviço, desta forma não podemos simplesmente realizar um duplicate pois o novo cdb conterá um pdb com o mesmo nome do pdb de origem, o que irá gerar um conflito nas conexões, uma vez que teremos registrado no listener 1 serviço com 2 instâncias, a de origem e a clonada, conforme exemplo grifado abaixo.
[oracle@tst-oracle12c:eximio /]$ lsnrctl status
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 23-AUG-2019 14:23:39
Copyright (c) 1991, 2016, Oracle.  All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=tst-oracle12c)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date                23-AUG-2019 08:56:09
Uptime                    0 days 5 hr. 27 min. 30 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /orabin01/app/oracle/product/12.2/dbhome_1/network/admin/listener.ora
Listener Log File         /orabin01/app/oracle/diag/tnslsnr/tst-oracle12c/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=tst-oracle12c)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=tst-oracle12c)(PORT=5500))(Security=(my_wallet_directory=/orabin01/app/oracle/admin/eximio/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "7743c5ddfc2d18a4e0530705a8c0c7b9" has 2 instance(s).
  Instance "eximio", status READY, has 1 handler(s) for this service...
  Instance "exitst", status READY, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "eximio" has 1 instance(s).
  Instance "eximio", status READY, has 1 handler(s) for this service...
Service "eximioXDB" has 2 instance(s).
  Instance "eximio", status READY, has 1 handler(s) for this service...
  Instance "exitst", status READY, has 1 handler(s) for this service...
Service "eximiopdb" has 2 instance(s).
  Instance "eximio", status READY, has 1 handler(s) for this service...
  Instance "exitst", status READY, has 1 handler(s) for this service...
Service "exitst" has 2 instance(s).
  Instance "exitst", status UNKNOWN, has 1 handler(s) for this service...
  Instance "exitst", status READY, has 1 handler(s) for this service...
The command completed successfully 
Podemos assim que o processo de duplicate finalizar, renomear o pdb. Porém ate que isso seja feito as conexões ja podem estar caindo na base clonada e aí teremos problema de consistência de dados.

É possível renomear um pdb durante o processo de duplicate rman? A resposta é não, não é possivel renomear um pdb através do duplicate, conforme pode ser confirado através da Doc ID 24359000.1.
Para evitar a situação mencionada acima, podemos definir um valor diferente de produção para o 
parametro db_domain, que por default está nulo.

No exemplo abaixo, foi alterado o parametro db_domain na instancia tst para tst.com antes de iniciar o processo de carga.
SQL>  show parameter db_domain;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_domain                            string      tst.com
Após o processo de carga ser realizado, podemos validar que o serviço registrado no lister para a nova base duplicada é eximiopdb.tst.com e não mais eximiopdb. Com isso evitamos qualquer impacto de conexao do ambiente principal.
[oracle@tst-oracle12c:eximio /]$ lsnrctl status

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 23-AUG-2019 14:54:27

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=tst-oracle12c)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date                23-AUG-2019 08:56:09
Uptime                    0 days 5 hr. 58 min. 18 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /orabin01/app/oracle/product/12.2/dbhome_1/network/admin/listener.ora
Listener Log File         /orabin01/app/oracle/diag/tnslsnr/tst-oracle12c/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=tst-oracle12c)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=tst-oracle12c)(PORT=5500))(Security=(my_wallet_directory=/orabin01/app/oracle/admin/eximio/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "7743c5ddfc2d18a4e0530705a8c0c7b9" has 1 instance(s).
  Instance "eximio", status READY, has 1 handler(s) for this service...
Service "7743c5ddfc2d18a4e0530705a8c0c7b9.tst.com" has 1 instance(s).
  Instance "exitst", status READY, has 1 handler(s) for this service...
Service "EXITST.tst.com" has 1 instance(s).
  Instance "exitst", status READY, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "eximio" has 1 instance(s).
  Instance "eximio", status READY, has 1 handler(s) for this service...
Service "eximioXDB" has 1 instance(s).
  Instance "eximio", status READY, has 1 handler(s) for this service...
Service "eximioXDB.tst.com" has 1 instance(s).
  Instance "exitst", status READY, has 1 handler(s) for this service...
Service "eximiopdb" has 1 instance(s).
  Instance "eximio", status READY, has 1 handler(s) for this service...
Service "eximiopdb.tst.com" has 1 instance(s).
  Instance "exitst", status READY, has 1 handler(s) for this service...
Service "exitst" has 1 instance(s).
  Instance "exitst", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
[oracle@tst-oracle12c:eximio /]$
Por hoje, era isso :)

#Dica RMAN-06136: ORACLE error from auxiliary database: ORA-19563: Inspect Datafile Copy: SCN number validation unsuccessful header validation failed for file

Ao realizar um processo de active duplicate no Oracle Database 12.2.0.1.0 (Sem Patch Aplicado) tivemos a ocorrência do erro abaixo ao final do processo de duplicate.

Comando utilizado para o duplicate:
run {
allocate channel prmy1 type disk;
allocate auxiliary channel stby type disk;
SET NEWNAME FOR DATABASE TO '/dados/oradata/exitst2/%b'; 
DUPLICATE TARGET DATABASE TO exitst FROM ACTIVE DATABASE
logfile '/dados/oradata/exitst2/redo01.rdo' size 50m,'/dados/oradata/exitst2/redo02.rdo' size 50m,'/dados/oradata/exitst2/redo03.rdo' size 50m,'/dados/oradata/exitst2/redo04.rdo' size 50m;
}
Erro no processo:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 08/23/2019 10:52:48
RMAN-05501: aborting duplication of target database
RMAN-03015: error occurred in stored script Memory Script
RMAN-06136: ORACLE error from auxiliary database: ORA-19563: Inspect Datafile Copy: SCN number validation unsuccessful header validation failed for file /dados/oradata/exitst2/system01.dbf

RMAN>
Este erro é ocasionado pelo bug 25042823 que possuí patch de correção e workaround.

Patch para a versão 12.2.0.1:


Apos aplicar o patch o processo foi executado com sucesso.

Oracle Database Single Tenant Precisa de Licenciamento?

Devido a recentemente ter presenciado alguns DBAs se confundindo com relação ao licenciamento da Feature Multitenant, o artigo de hoje visa explicar um pouco sobre Single Tenant, Multitenant e a questão da necessidade de licenciamento. 

Ambientes Single Tenant são ambientes CDB (Container Database) com um único PDB (Pluggable Database). 
Já ambientes Multitenant são ambientes Enterprise Edition onde um CDB contém mais de um PDB. 
Ambos os conceitos foram introduzidos na arquitetura CDB do Oracle 12c.

Afinal, ambientes oracle 12c com um PDB (Single Tenant) precisam do licenciamento para a feature Multitenant? 
A resposta é NÃO. Independente se o ambiente for Standard Edition ou Enterprise Edition. Se existir apenas um PDB por CDB, estamos utilizando um ambiente Single Tenant o que não infringe nenhuma regra de licenciamento.

Esta informação pode ser validada no Manual de informações de licenciamento de banco de dados, especificamente no item 1.2.2.
Vale destacar ainda que os ambientes Non-CDB passaram a ser depreciados a partir do Oracle 12c. Por isso a recomendação é a utilização da arquitetura CDB nas versões 12c e superiores.


Para saber quais features e options estão em uso basta executar o script options_pack_usage_statistics fornecido através da Doc ID 1317265.1. Mais detalhes podem ser verificados no artigo Identificando as options e features estão sendo utilizadas no banco de dados (Oracle 11g e 12c).

Chega ao Brasil a versão 2.0 da Cloud Oracle

Segundo a empresa norte-americana, a chamada Generation 2 Cloud estará disponível no país, com datacenter brasileiro, até o fim de agosto.
Vale destacar que o anúncio foi feito em paralelo a outras três localidades neste mês - Índia, Suíça e Austrália - e faz parte dos planos da companhia norte-americana de ter um total de 19 regiões contempladas até o fim de 2019.
“Estamos atendendo às necessidades das empresas no país à medida que migram seus aplicativos empresariais e de uso intensivo de dados para a nuvem com inovação. Será a oportunidade de capacitar empresas de todos os tamanhos para que possam operar com segurança e redução de custos, além de ampliar seus negócios”, afirmou o presidente da Oracle do Brasil, Rodrigo Galvão.
No total, mais de 430 mil clientes corporativos utilizam soluções da Oracle em 175 países em todo o mundo, sendo que mais de 800 empresas brasileiras usufruem da infraestrutura de cloud da Oracle, incluindo organizações como Sky, Makro, Grupo Porto Seguro, VLI Logística, Petz, e MDias Branco.
Recentemente, a Oracle também vem investindo em iniciativas de educação no Brasil por meio do Oracle University, que promove treinamento e certificação de software em Oracle Cloud e on premise. Os treinamentos são oferecidos pela equipe de especialistas da Oracle e disponibilizado em diversos formatos de aprendizado a qualquer hora e em qualquer lugar.

fonte: https://computerworld.com.br/2019/08/07/oracle-traz-para-o-brasil-sua-nuvem-da-proxima-geracao/