Warning: This information may be outdated. Please note the date of the post.

Cliente remoto

Vamos a usar otra máquina virtual, en mi caso voy a clonar el servidor de oracle CentOS8 y la clonación la utlizaré de cliente.

Para que se conecte el cliente de forma remota al servidor llevaremos estos pasos:

  • Desactivar o añadir una regla en el firewall. En mi caso vamos a añadir una regla que hace que el tráfico pase por el puerto que tiene por defecto Oracle. Aunque este puede variar dependiendo de la configuración que tengamos.
firewall-cmd --permanent --add-port=1521/tcp
  • Cambiar el nombre de dominio completo (FQDN) de nuestro servidor, en el fichero /etc/hosts. Para conectarnos con resolución de nombres, en vez de por ip.
192.168.100.182   bd.oracle.celia.es    oracle
  • Tenemos que indicarle al servidor que escuche por el puerto por defecto que hemos indicando anteriormente en el firewall, para ello vamos a editar el siguiente fichero, dónde le indicamos el nombre completo del servidor y el puerto lo dejamos por defecto.
sudo nano /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora

Contenido:

[oracle@bd ~]$ cat /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
# listener.ora Network Configuration File: /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = bd.oracle.celia.es)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
  • Iniciamos el proceso de escucha de la siguiente forma
[oracle@bd ~]$ lsnrctl start
  • Comprobamos que está escuchando en el puerto indicado
[root@bd ~]# netstat -tlpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1723/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1008/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1012/cupsd          
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp6       0      0 :::22                   :::*                    LISTEN      1008/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      1012/cupsd          
tcp6       0      0 :::5500                 :::*                    LISTEN      2907/tnslsnr        
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
tcp6       0      0 :::16081                :::*                    LISTEN      3009/ora_d000_ORCLC 
tcp6       0      0 :::1521                 :::*                    LISTEN      2907/tnslsnr   
  • Ahora ya podemos ir a la máquina cliente. Vemos el direccionamiento y que el nombre al hacer la clonación se ha modificado.
[oracle@localhost ~]$ hostname
localhost.localdomain
[oracle@localhost ~]$ hostname -f
localhost
[oracle@localhost ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:cb:c8:c6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.186/24 brd 192.168.100.255 scope global dynamic noprefixroute ens3
       valid_lft 2108sec preferred_lft 2108sec
    inet6 fe80::38c8:cac5:d1ba:3cd3/64 scope link dadfailed tentative noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::241a:f640:d38c:61a5/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:0d:37:48 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:0d:37:48 brd ff:ff:ff:ff:ff:ff
  • Ahora sí podemos acceder a la base de datos de la siguiente forma:

Nota: Si hemos reiniciado las máquinas es probable que tengamos que ejecutar STARTUP en SQLPLUS para iniciar la base de datos, si no, no podremos acceder ni consultar nada.

[oracle@localhost ~]$ sqlplus c##celia/celia@bd.oracle.celia.es/ORCLCDB

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Apr 2 11:57:29 2021
Version 19.3.0.0.0

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

Hora de Ultima Conexion Correcta: Vie Abr 02 2021 11:41:51 +02:00

Conectado a:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> select * from cat;

TABLE_NAME
--------------------------------------------------------------------------------
TABLE_TYPE
-----------
ALUMNOS
TABLE

CURSOS
TABLE

MATRICULAS
TABLE


SQL> select * from cursos;

CO NOMBR
-- -----
11 1
22 2
33 3