Alterando o hostaname em um ambiente Oracle Single com ASM (Oracle Restart)

Para efetuar a alteração do hostname de um ambiente com Oracle Restart, além de ajustar os parâmetros de sistema operacional é necessário que seja realizada a reconfiguração do grid. 

O processo de alteração do hostname e reconfiguração do Grid é relativamente simples e pode ser feito de acordo com os passos abaixo. 


Este processo foi validado em um ambiente Oracle Grid 19.3 com Oracle database 19.3 instalados em um Oracle Linux 7.9.

Na alteração em ambientes que esteja ativos (operantes), é necessário que você pare todos os serviços antes de realizar a alteração do hostname. Também é recomendável que seja feito um backup do grid antes do processo.

Parar os serviços:
[root@lamimtst ~]# service ohasd stop

Parados os serviços, efetuado o backup do produto e alterado o hostname da máquina, será necessário remover a configuração existente. Com o usuário root, devem ser exportadas as variáveis do grid  ORACLE_HOME e ORACLE_SID e executado o comando abaixo.

[root@lamimtst ~]# $ORACLE_HOME/perl/bin/perl -I $ORACLE_HOME/perl/lib -I $ORACLE_HOME/crs/install $ORACLE_HOME/crs/install/roothas.pl -deconfig -force
Using configuration parameter file: /orabin01/app/19c/grid/crs/install/crsconfig_params
The log of current session can be found at:
  /orabin01/app/oracle/crsdata/lamimtst/crsconfig/hadeconfig.log
PRCR-1070 : Failed to check if resource ora.asm is registered
CRS-5168 : unable to communicate with ohasd
2021/09/23 07:53:49 CLSRSC-180: An error occurred while executing the command '/orabin01/app/19c/grid/bin/srvctl remove asm -force'
PRCR-1070 : Failed to check if resource ora.ons is registered
CRS-5168 : unable to communicate with ohasd
2021/09/23 07:53:50 CLSRSC-180: An error occurred while executing the command '/orabin01/app/19c/grid/bin/srvctl config ons'
CLSU-00107: operating system function: opendir; failed with error data: 2; at location: scrsearch1
CLSU-00101: operating system error message: No such file or directory
CLSU-00104: additional error information: cant open scr home dir scls_scr_getval
CRS-4639: Could not contact Oracle High Availability Services
CRS-4000: Command Stop failed, or completed with errors.
2021/09/23 07:53:53 CLSRSC-337: Successfully deconfigured Oracle Restart stack
[root@lamimtst ~]#

Após remover a configuração do grid, pode ser efetuada a alteração do hostname. Neste exemplo, a maquina havia sido clonada e o hostname já alterado, desta forma a etapa de remoção da configuração do grid foi realizada após a alteração do hostname.

O processo de alteração do hostname a partir do Oracle Linux 7 poder ser ver consultado aqui.

Concluídas as etapas acima, será realizada a reconfiguração do grid, conforme abaixo.

[root@lamimtst ~]#
[root@lamimtst ~]# $ORACLE_HOME/perl/bin/perl -I $ORACLE_HOME/perl/lib -I $ORACLE_HOME/crs/install $ORACLE_HOME/crs/install/roothas.pl
Using configuration parameter file: /orabin01/app/19c/grid/crs/install/crsconfig_params
The log of current session can be found at:
  /orabin01/app/oracle/crsdata/lamimtst/crsconfig/roothas_2021-09-23_07-58-56AM.log
2021/09/23 07:59:01 CLSRSC-363: User ignored prerequisites during installation
LOCAL ADD MODE
Creating OCR keys for user 'oracle', privgrp 'oinstall'..
Operation successful.
LOCAL ONLY MODE
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
CRS-4664: Node lamimtst successfully pinned.
2021/09/23 07:59:13 CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.service'

lamimtst     2021/09/23 08:00:11     /orabin01/app/oracle/crsdata/lamimtst/olr/backup_20210923_080011.olr     724960844
2021/09/23 08:00:12 CLSRSC-327: Successfully configured Oracle Restart for a standalone server
[root@lamimtst ~]#

Ajustar o listener para responder para o novo hostname. O procedimento de reconfiguração do listener pode ser feito também dropando o listener antigo e recriando o mesmo com a ferramenta netca

vi $ORACLE_HOME/network/admin/listener.ora

Adicionar o recurso do listener no Oracle Grid.

[root@lamimtst ~]#
[root@lamimtst ~]# srvctl add listener
[root@lamimtst ~]#

Os discos do ASM não são adicionados automaticamente após a reconfiguração, por isso é necessário adiciona-los novamente.

Para discos criados com o asm lib:

[root@lamimtst ~]#
[root@lamimtst ~]# srvctl add asm -d '/dev/oracleasm/*'
[root@lamimtst ~]# oracleasm listdisks
ASMDISK001
ASMDISK002
ASMDISK003
ASMDISK004
ASMDISK005
[root@lamimtst ~]#

Se não for utilizado o asm lib, os rawdevices devem ser mapeados.

srvctl add asm -d '/dev/sd*'

Iniciar o listener e o ASM.

[root@lamimtst ~]#
[root@lamimtst ~]# srvctl start listener
[root@lamimtst ~]# srvctl start asm
[root@lamimtst ~]# crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       lamimtst                 STABLE
ora.asm
               ONLINE  ONLINE       lamimtst                 Started,STABLE
ora.ons
               OFFLINE OFFLINE      lamimtst                 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
      1        ONLINE  ONLINE       lamimtst                 STABLE
ora.diskmon
      1        OFFLINE OFFLINE                               STABLE
ora.evmd
      1        ONLINE  ONLINE       lamimtst                 STABLE
--------------------------------------------------------------------------------
[root@lamimtst ~]#

Iniciados os serviços do listener e ASM, será necessário montar os diskgroups no ASM. O processo pode ser realizado via asmcmd ou sqlplus conectado no ASM.

Neste laboratório ao montar os discos novamente, tive o erro abaixo. Este erro esta relacionado ao parametro asm_diskstring que não estava definido no ASM. Após defini-lo "apontando" para os discos do asm lib, foi possível montar o diskgroup.

[oracle@lamimtst ~]$ asmcmd
ASMCMD> mount DGDATA
ORA-15032: not all alterations performed
ORA-15017: diskgroup "DGDATA" cannot be mounted
ORA-15040: diskgroup is incomplete (DBD ERROR: OCIStmtExecute)
ASMCMD>
ASMCMD> mount DGDATA
ORA-15032: not all alterations performed
ORA-15017: diskgroup "DGDATA" cannot be mounted
ORA-15040: diskgroup is incomplete (DBD ERROR: OCIStmtExecute)
ASMCMD> exit
[oracle@lamimtst ~]$
[oracle@lamimtst ~]$
[oracle@lamimtst ~]$ kfod asm_diskstring='/dev/oracleasm/disks/*' disks=all
--------------------------------------------------------------------------------
 Disk          Size Path                                     User     Group
================================================================================
   1:      10239 MB /dev/oracleasm/disks/ASMDISK001          oracle   oinstall
   2:      10239 MB /dev/oracleasm/disks/ASMDISK002          oracle   oinstall
   3:      10239 MB /dev/oracleasm/disks/ASMDISK003          oracle   oinstall
   4:      10239 MB /dev/oracleasm/disks/ASMDISK004          oracle   oinstall
   5:      10239 MB /dev/oracleasm/disks/ASMDISK005          oracle   oinstall
--------------------------------------------------------------------------------
ORACLE_SID ORACLE_HOME
================================================================================
      +ASM /orabin01/app/19c/grid
[oracle@lamimtst ~]$ sqlplus

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Sep 23 08:25:30 2021
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Enter user-name: / as sysasm

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> show parameter asm_diskstring;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
asm_diskstring                       string
SQL>
SQL>  alter system set asm_diskstring='/dev/oracleasm/disks/*' scope=memory;

System altered.

SQL> select name, state from v$asm_diskgroup;

NAME                           STATE
------------------------------ -----------
DGDATA                         DISMOUNTED

SQL>
SQL> alter diskgroup DGDATA mount;

Diskgroup altered.

SQL>

[oracle@lamimtst ~]$ srvctl status diskgroup -g DGDATA
Disk Group DGDATA is running on lamimtst
[oracle@lamimtst ~]$

Configurados os discos do ASM, o próximo passo é adicionar as instancias de banco de dados dentro do Grid.

[oracle@lamimtst ~]$
[oracle@lamimtst ~]$ srvctl add database -d lamimtst -o /orabin01/app/oracle/product/19c/dbhome_1 -n lamimtst -p +DGDATA/LAMIMTST/PARAMETERFILE/spfile.270.1083870825
[oracle@lamimtst ~]$

Adicionadas as instâncias, as mesmas podem ser iniciadas.

[oracle@lamimtst ~]$ srvctl start database -d lamimtst
[oracle@lamimtst ~]$
[oracle@lamimtst ~]$ srvctl status database -d lamimtst
Database is running.
[oracle@lamimtst ~]$ srvctl config database -d lamimtst -a
Database unique name: lamimtst
Database name: lamimtst
Oracle home: /orabin01/app/oracle/product/19c/dbhome_1
Oracle user: oracle
Spfile: +DGDATA/LAMIMTST/PARAMETERFILE/spfile.270.1083870825
Password file:
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Disk Groups: DGDATA
Services:
Database is enabled
OSDBA group:
OSOPER group:
Database instance: lamimtst
[oracle@lamimtst ~]$

How to change Hostname / IP for a Grid Infrastructure Oracle Restart Standalone Configuration (SIHA) 11.2 and Later (Doc ID 1552810.1)


#Dica - Alterando o hostname no Oracle Linux 7.9

A alteração de hostname em servidores linux acaba se tornando uma tarefa comum para os DBAs, seja em uma migração ou para criação de novos ambientes (teste, homologação, etc).

O processo de alteração de hostname em versões anteriores a Oracle Linux 7 era um pouco mais complexa, demandando a alteração do arquivo /etc/hosts e a reinicialização do SO. Porém a partir da versão 7 é possível efetuar a alteração através do comando hostnamectl, que pode ser usado, tanto para consultar as informações de hostname atuais, quanto para altera-lo. 

Consultar o hostname

root@lamimtst19c ~]# hostnamectl status
   Static hostname: lamimtst19c
         Icon name: computer-vm
           Chassis: vm
        Machine ID: c180e76cb7ba19449f0f79546824ea42
           Boot ID: 32483a1606ef4f65914975b03456b49c
    Virtualization: kvm
  Operating System: Oracle Linux Server 7.9
       CPE OS Name: cpe:/o:oracle:linux:7:9:server
            Kernel: Linux 5.4.17-2102.205.7.2.el7uek.x86_64
      Architecture: x86-64

Alterar o hostname 

root@lamimtst19c ~]# hostnamectl set-hostname lamimtst

root@lamimtst19c ~]# hostnamectl status
   Static hostname: lamimtst
         Icon name: computer-vm
           Chassis: vm
        Machine ID: c180e76cb7ba19449f0f79546824ea42
           Boot ID: 32483a1606ef4f65914975b03456b49c
    Virtualization: kvm
  Operating System: Oracle Linux Server 7.9
       CPE OS Name: cpe:/o:oracle:linux:7:9:server
            Kernel: Linux 5.4.17-2102.205.7.2.el7uek.x86_64
      Architecture: x86-64

Desta forma o hostname foi alterado de forma online, sem a necessidade de restart do servidor. Apenas lembrando que em ambiente com Grid, será necessário configura-lo após a alteração do hostname.


https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec_configuring_host_names_using_hostnamectl

Dica: Erro ao conectar o sql developer ao oracle 19c no OCI via IPSec VPN

Hoje tive um cenário, no qual um cliente não estava conseguindo conectar com o SQL Developer (20.4.1.407) ao Oracle 19C no OCI, com erro de ES quando testava a conexão que estava sendo configurada. Ao salvar a configuração e clicar em conectar será informando um código de erro 17002.

Este cenário ocorre apenas quando esta sendo feita a conexão com o SQL Developer do ambiente on premisse com o database 19c no OCI, através de uma IPSec VPN.

No alertlog do banco de dados, também há registro de erro de conexão para o IP da maquina na qual tentei abrir o SQL Developer.

Fatal NI connect error 12537, connecting to:
 (ADDRESS=(PROTOCOL=tcp)(HOST=10.20.31.197)(PORT=50493))

  VERSION INFORMATION:
        TNS for Linux: Version 19.0.0.0.0 - Production
        Oracle Bequeath NT Protocol Adapter for Linux: Version 19.0.0.0.0 - Production
        TCP/IP NT Protocol Adapter for Linux: Version 19.0.0.0.0 - Production
  Version 19.11.0.0.0
  Time: 25-MAY-2021 17:02:34
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12537

TNS-12537: TNS:connection closed
    ns secondary err code: 12560
    nt main err code: 507

TNS-00507: Connection closed
    nt secondary err code: 0
    nt OS err code: 0
2021-05-25T17:02:34.707179-03:00
opiodr aborting process unknown ospid (25231) as a result of ORA-609
2021-05-25T17:02:34.707873-03:00
Errors in file /u01/app/oracle/diag/rdbms/cdbprd01_gru1kx/cdbprd01/trace/cdbprd01_ora_25231.trc:
ORA-00609: could not attach to incoming connection
ORA-12537: TNS:connection closed
2021-05-25T17:03:56.407529-03:00

Erros do SQL Developer:





Erro:
Status : Com FalhaFalha no teste: Erro de ES: Uma tentativa de conexão falhou porque o componente conectado não respondeu
corretamente após um período de tempo ou a conexão estabelecida falhou
porque o host conectado não respondeu, Authentication lapse 0 ms.

Para contornar esse erro tive que definir no sqlnet o parâmetro DISABLE_OOB_AUTO como true. Este é um novo parâmetro de rede da versão 19c, que é utilizado para habilitar ou desabilitar a verificação de suporte a mensagens de interrupção na conexão. Por padrão vem definido como off, ou seja, está habilitado.
Acontece que algumas vezes a rede pode não lidar bem com essa funcionalidade e começar a ocasionar quedas ou mesmo falhas de conexão.

DISABLE_OOB_AUTO = TRUE
[oracle@lamimdb-oci ~]$ cat /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/sqlnet.ora | grep DISABLE_OOB_AUTO
DISABLE_OOB_AUTO = TRUE
[oracle@lamimdb-oci ~]$

Após desabilitar a conexão com o SQL Developer voltou a funcionar normalmente.


https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/parameters-for-the-sqlnet.ora.html#GUID-897ABB80-64FE-4F13-9F8C-99361BB4465C

Oracle anuncia oficialmente a segunda região no Brasil


Hoje tivemos uma noticia que estava sendo esperada por muitos a algum tempo. A Oracle anunciou oficialmente a segunda região do OCI localizada na cidade de Vinhedo, interior de São Paulo e terá interconectividade com a Microsoft Azure.

Com a nova região os clientes podem estabelecer e implementar uma estratégia de alta disponibilidade e contingência utilizando duas regiões (geograficamente separadas) no Brasil.

"Dentre as razões que motivaram novamente, a escolha do estado de São Paulo para a implantação, está a alta demanda por serviços. Além disso, a região precisava estar próximo do data center da Microsoft e do primeiro data center, a fim de manter uma baixa latência. Segundo testes da empresa, esse valor tem chegado a 1 milissegundo."

https://blogs.oracle.com/oracle-brasil/oracle-segunda-regiao-nuvem-brasil?source=:so:ch:or:awr::::&SC=:so:ch:or:awr::::&pcode=&utm=champions&channel=LinkedIn


#Dica - Como descobrir no SO qual disco está sendo usado no ASMlib ?


Os discos criados com o ASMlib podem ser listados através do comando listdisks. Acontece que ao executar esse comando será apresentado o nome do disco que foi criado e não o disco propriamente usado no SO.

Por exemplo:

[grid@lamimtst01 ~]$ oracleasm
Usage: oracleasm [--exec-path=<exec_path>] <command> [ <args> ]
       oracleasm --exec-path
       oracleasm -h
       oracleasm -V

The basic oracleasm commands are:
    configure        Configure the Oracle Linux ASMLib driver
    init             Load and initialize the ASMLib driver
    exit             Stop the ASMLib driver
    scandisks        Scan the system for Oracle ASMLib disks
    status           Display the status of the Oracle ASMLib driver
    listdisks        List known Oracle ASMLib disks
    listiids         List the iid files
    deleteiids       Delete the unused iid files
    querydisk        Determine if a disk belongs to Oracle ASMlib
    createdisk       Allocate a device for Oracle ASMLib use
    deletedisk       Return a device to the operating system
    renamedisk       Change the label of an Oracle ASMlib disk
    update-driver    Download the latest ASMLib driver
[grid@lamimtst01 ~]$ oracleasm listdisks
DGDATA001
DGDATA002
DGDATA003
DGDATA004
DGDATA005
DGDATA006
DGDATA007
DGDATA008
DGDATA009
DGDATA010
DGDATA011
DGDATA012
DGDATA013
DGDATA014
DGRECO001
DGRECO002
DGRECO003
DGRECO004
[grid@lamimtst01 ~]$

Para identificar o disco usado é necessário executa o comando oracleasm querydisk -d nome_do_disco  para identificar os "major - minor numbers" que serão usados para localizar o device fisicamente. Neste exemplo temos o 8 como minor e o 129 como major numbers.

[grid@lamimtst01 ~]$ oracleasm querydisk -d DGDATA001
Disk "DGDATA001" is a valid ASM disk on device [8,129]
[grid@lamimtst01 ~]$

Com eles é possível identificar o disco fisicamente, através de um ls -l /dev | grep minor_number, | grep major_number.

[grid@lamimtst01 ~]$ ls -l /dev | grep 8, | grep 129
brw-rw---- 1 root disk      8, 129 Mar 16 14:40 sdi1
[grid@lamimtst01 ~]$

Neste exemplo o DGDATA001 é composto pelo disco /dev/sdi1. Se quisermos saber seu tamanho, basta usar o comando lsblk | grep nome_do_disco

[grid@lamimtst01 ~]$ lsblk | grep sdi1
ââsdi1                    8:129  0  205G  0 part
[grid@lamimtst01 ~]$



OCI - Novos shapes VM.Standard.E4.Flex com processadores AMD EPYC 7J13 'Milan'

Anunciado oficialmente hoje (15/03/2021), a nova versão de shapes (VM.Standard.E4.Flex), está disponível para as modalidades VM e bare metal em algumas regiões, incluindo Brazil East (São Paulo). 

De acordo com a Oracle, "conforme demonstrado nos benchmarks de desempenho a seguir, as instâncias do E4 Standard oferecem um aumento de até 15% no desempenho do inteiro, um aumento de 21% no desempenho do ponto flutuante e um aumento de 24% no desempenho do java, em comparação com as instâncias do E3 Standard. Além disso, as instâncias E4 fornecem três vezes o desempenho de preço em relação a outras instâncias de uso geral oferecidas por outros provedores de nuvem"

Dotados com  os processadores EPYC 7J13 'Milan', que possuí uma frequência de 2,55Ghz com max boost de 3,5GHz. Os novos shapes E4 entregarão uma melhor performance, com o mesmo custo do seu antecessor E3 e continuará sendo flexível (possibilidade de escolha de OCPUs e Memória).

O shape VM.Standard.E4.Flex está disponível inicialmente nas seguintes regiões:

  • US East (Ashburn)
  • US West (Phoenix)
  • India west (Mumbai)
  • Switzerland North (Zurich)
  • Brazil East (Sao Paulo)
  • Canada Southeast (Montreal)
  • Australia southeast (Melbourne)
  • Canada Southeast (Toronto)

  • Configurações disponíveis

Instance

OCPU

Memory

Extra storage

Network

BM.Standard.E4.128

128

2,048 GB

Up to 1 PB of remote block storage

100 Gbps

VM.Standard.E4.Flex

1–64

1–64 GB per OCPU up to 1024 GB

Up to 1 PB of remote block storage

1 Gbps per OCPU (limite de 40)

  • Estatísticas de performance e benchmark




Mais informações:

https://blogs.oracle.com/cloud-infrastructure/announcing-oracle-cloud-compute-e4-platform-on-3rd-gen-amd-epyc-processors

https://www.eximioti.com.br/post/oci-novos-shapes-vm-standard-e4-flex-com-processadores-amd-epyc-7j13-milan

OCI - Migrando uma maquina windows VM.Standard2 para VM.Standard.E3

Conforme mencionado no artigo anterior, os shapes VM.Standard.E3 possuem um menor custo e entregam uma melhor performance comparados aos demais (VM.Standard2 e VM.Standard.E2). 

O artigo de hoje tem por objetivo apresentar o processo de migração de uma maquina windows, utilizando um shape VM.Standard2 para o shape VM.Standard.E3, e também poderá ser utilizado como base para o novo shape M.Standard.E4 que está previsto para ser disponibilizado em março.

Vale destacar que não é possível alterar o shape usando um boot volume. Resumidamente, para efetuar a alteração para VM.Standard.E3 é preciso criar uma custom image da instância, editar a custom image para que seja compatível com o shape VM.Standard.E3.Flex, criar a maquina usando essa imagem e alterando a rede como paravirtualized networking

É importante lembrar que durante a geração da custom imagem, ocorre uma indisponibilidade momentânea do ambiente.

Através da custom image todas as configurações, customizações e software instalados são mantidos na imagem gerada. Já os dados dos discos que estão anexados na instância não são salvos e podem ser migrados movendo o mesmo para a nova instância criada.

  • Vamos ao detalhamento do processo:

A primeira etapa é gerar a custom image da instância que será migrada.



Posteriormente em custom image, se tentarmos criar uma instância a partir da custom image gerada, veremos que somente é possível selecionar os shapes Intel Skylake e Specialty and Legacy, não possibilitando a utilização do AMD ROME (VM.Standard.E3).


Para que seja possível efetuar a conversão do shape para o modelo VM.Standard.E3, alterar a compatibilidade da image. Basta ir em image details e selecionar o shape VM.Standard.E3.Flex.


A partir da image alterada é possível criar a nova instance com o shape VM.Standard.E3. É importante que seja selecionada a opção de rede Paravirtualized networking, caso contrario o driver de rede não será reconhecido.










Concluídas as etapas acima, a instância está migrada para o shape VM.Standard.E3.Flex


Fonte: 
https://docs.oracle.com/en-us/iaas/Content/Compute/Tasks/managingcustomimages.htm
https://docs.oracle.com/en-us/iaas/Content/Compute/Tasks/importingcustomimagewindows.htm
www.eximioti.com.br
https://www.oraclehome.com.br/2021/02/25/oci-migrando-uma-maquina-windows-vm-standard2-para-vm-standard-e3/