¿Cómo conectamos una Instancia Linux con Autonomous Database en OCI?

Para configurar la conexión una Autonomous Database dentro de una Instancia de Linux en OCI, lo primero que debemos hacer es descargarnos la wallet de nuestra ATP

Una vez descargada la información de la wallet, la subimos la wallet al Object Storage.

Una vez se encuentre la wallet en el Object Storage, creamos la solicitud Pre-Authenticated para descargarla en nuestro entorno

Copiamos la URL para poder descargarla en nuestro entorno de linux

[opc@~]$ mkdir walletATP
[opc@~]$ cd walletATP/
[opc@walletATP]$ wget -P /home/opc/walletATP/ <Pre-Authenticated Request URL>
Resolving objectstorage...
Connecting to .....
HTTP request sent, awaiting response... 200 OK
Length: 21977 (21K) [application/x-zip-compressed]
Saving to: ‘/home/opc/walletATP/Wallet_XXXX.zip’
100%[==============================================================================================================================================================================================>] 21,977      --.-K/s   in 0s
2024-02-01 12:05:08 (212 MB/s) - ‘/home/opc/walletATP/Wallet_XXXX.zip’ saved [21977/21977]
[opc@walletATP]$

Una vez descargado la wallet, debemos realizar unzip y editar el archivo sqlnet.ora para especificar donde se encuentra nuestra wallet

[opc@walletATP]$ unzip Wallet_XXXXX.zip
Archive:  Wallet_OF2BCE.zip
  inflating: ewallet.pem
  inflating: README
  inflating: cwallet.sso
  inflating: tnsnames.ora
  inflating: truststore.jks
  inflating: ojdbc.properties
  inflating: sqlnet.ora
  inflating: ewallet.p12
  inflating: keystore.jks
[opc@walletATP]$ vi sqlnet.ora
[opc@walletATP]$ more sqlnet.ora
WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="/home/opc/walletATP")))
SSL_SERVER_DN_MATCH=no
[opc@walletATP]$

Bien, ya queda menos. Ahora descargarnos los binarios de Oracle desde el repositorio de Oracle Linux 7.

En este caso no hace falta subirlo al Object Storage, con que obtengamos la url de descarga del repositorio es suficiente, aunque si queremos subirlo al Object Storage, se podría hacer, repitiendo los pasos anteriores.

[opc@~]$ mkdir oracle
[opc@~]$ wget -P /home/opc/oracle/ https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient19.9-sqlplus-19.9.0.0.0-1.x86_64.rpm
[opc@~]$ wget -P /home/opc/oracle/ https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient19.9-basic-19.9.0.0.0-1.x86_64.rpm
--2024-02-08 12:34:09--  https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient19.9-basic-19.9.0.0.0-1.x86_64.rpm
[opc@~]$ sudo rpm -ivh --nodeps oracle-instantclient19.9-sqlplus-19.9.0.0.0-1.x86_64.rpm
[opc@~]$ sudo rpm -ivh oracle-instantclient19.9-basic-19.9.0.0.0-1.x86_64.rpm
[opc@~]$ export LD_LIBRARY_PATH=/usr/lib/oracle/19.9/client64/lib/
[opc@~]$ echo $LD_LIBRARY_PATH
[opc@~]$ sqlplus64 -version

Modificamos el archivo .bashrc para incluir la variable TNS_ADMIN junto con la especificación del alias para sqlplus.

[opc@ ~]$ cat .bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=
# User specific aliases and functions
export TNS_ADMIN=/home/opc/wallet
alias sqlplus=sqlplus64

Una vez configurado la wallet, los binarios y el .bashrc, probamos la conexión a la ATP

[opc@ ~]$ sqlplus /nolog

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Feb 8 15:33:05 2024
Version 19.9.0.0.0

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

SQL> conn admin/XXXXX@XXXXX_tp
Conectado.
SQL>
SQL> Select * From Dual;
D
-
X
SQL> exit

Perfecto, ya podemos conectarnos a nuestra ATP. Espero que os sirva.