Procedimiento para Crear y Clonar una Base de Datos Oracle 12.2 APEX hacia Oracle Cloud Infraestructure (OCI) 2020

Oracle Cloud Infraestructure

Ing. Isaí Fararoni Ramírez

Paso 1: Acceso a Oracle Cloud Infraestructura (OCI)

Acceder a la plataforma de Oracle Cloud Universal Credits. https://www.oracle.com/cloud/sign-in.html

\"\"
\"\"

PARTE I. Preparación

Generar un par de claves mediante PuTTY

  1. Inicie PuTTYgen en la computadora Windows. Aparecerá la ventana Generador de Claves de PuTTY.
  2. Para el tipo de clave que se va a generar, seleccione SSH- 2 RSA. 
  3. Para Número de bits en una clave generada, introduzca 2048.
  4. Haga clic en Generar.
  5. Cuando se le solicite, mueva el mouse por la sección especificada de la ventana.
  6. Opcional: introduzca una contraseña para la clave privada en Contraseña de Clave y Confirmar Contraseña.
  7. Haga clic en Guardar clave privada.
\"\"

La extensión del archivo .ppk indica que la clave privada tiene el formato propietario de PuTTY.. No se puede utilizar con otras herramientas de cliente SSH.

  1. Seleccione todo el contenido de la clave pública para pegarlo en el archivo OpenSSH authorized_keys.

Esta ventana puede tener una barra de desplazamiento. Asegúrese de seleccionar todos los caracteres.

\"\"
  1. Haga clic con el botón derecho en el texto seleccionado y, a continuación, seleccione Copiar.
  2. Abra un editor de texto.
  3. Pegue el texto copiado en el editor. No inserte saltos de línea.
  4. Guarde el archivo de clave pública en la misma ubicación que el archivo de clave privada.
  5. Cree una copia de la clave privada en el formato OpenSSH.
    1. En la ventana Generador de Claves de PuTTY, haga clic en Conversiones y, a continuación, seleccione Exportar Clave de OpenSSH.
    2. Guarde el archivo de clave privada convertida en la misma ubicación que el archivo .ppk. Utilice una extensión de archivo diferente como .key.
\"\"

Crear una Virtual Cloud Network (VCN) [1]

Referencia: https://docs.cloud.oracle.com/es-ww/iaas/Content/Database/Tasks/network.htm

Compartimentos

Los recursos en el OCI son organizados en “compartimientos”, debemos crear un compartimiento la primera vez que creamos una instancia Oracle PaaS en el OCI, el acceso a los recursos en un compartimiento es controlado a través de políticas.

Para las instancias de PaaS posteriores, se puede usar el mismo o un nuevo compartimiento. Esta elección se basa en si el servicio de PaaS depende de otros servicios de PaaS.

Para ver los compartimentos existentes  seguimos los siguientes pasos:

  1. Ingresamos con nuestra cuenta a la consola web del Oracle Cloud Insfrastructure.
  2. Hacemos click en el menú en la esquina superior izquierda de la consola web, seleccionamos: “Identity” y “Compartments”

Virtual Cloud Network (VNC)

Referencia: https://docs.cloud.oracle.com/es-ww/iaas/Content/Database/Tasks/network.htm

Una virtual cloud network es una red definida en el OCI que incluye: subredes, tabla de enrutamiento y puerta de enlace.

Debemos crear la VCN y las subredes para adjuntar las instancias de servicio PaaS a estas subredes, esto debe hacerse la primera vez que cree una instancia de Oracle PaaS en el OCI. Para las instancias de PaaS posteriores, se puede usar la misma VCN o una nueva VCN. Esta elección se basa en si el servicio de PaaS depende de otros servicios de PaaS. 

Para crear una VNC seguimos los siguientes pasos:En la consola web de Oracle Cloud Insfrastructure, hacemos clik en el menú en la esquina superior izquierda, seleccionamos “Nerworking” y hacemos click en “Virtual Cloud Networks”. Se pueden ver la VCN’s existentes y crear nuevas:

Referencia: https://docs.cloud.oracle.com/es-ww/iaas/Content/Network/Tasks/managingVCNs.htm

\"\"
\"\"

Opción 1: subred pública con gateway de internet

\"\"
\"Comparación

Oracle recomienda utilizar NSG en lugar de listas de seguridad, ya que los NSG le permiten separar la arquitectura de subred de VCN de los requisitos de seguridad de la aplicación.

docs.cloud.oracle

Parámetros de configuración de RED

  • VCN
    • Nombre: PublicVCN
    • Compartimento: abcd
    • Bloque CIDR: 192.168.74.0/24 (Calculadora)
    • Resolución DND: Checked
    • Etiqueta DNS:PublicVCN
    • Nombre de dominio (solo lectura): PublicVCN.oraclevcn.com
  • Subred pública
    • VCN: PublicVCN
    • Nombre: PublicVCN
    • Bloque CIDR: 192.168.74.0/25 (Calculadora)
    • Tabla de Rutas
    • Acceso a la subred: SUBRED PÚBLICA
    • Etiqueta de DNS: PublicVCNSubnet
    • Opciones de DHCP: Default DHCP Options for PublicVCN
    • Listas de seguridad: Default Security List for PublicVCN
  • Gateway de Internet
    • Nombre: PublicVCNGatewayInternet
    • Compartimento: abcd
  • Gateway de servicio
    • Nombre: PublicVCNGatewayServicio
    • Servicios: OCI IAD Object Storage
  • Tabla de rutas
    • Regla 1. Tipo de objetivo: Geteway de Internet
    • Bloque CIDR: 0.0.0.0/0
    • Gateway compartimento: PublicVCNGatewayInternet
    • Descripción: PublicVCNRouteInternet
    • Regla 2. Tipo de objetivo: Gateway de servicio
    • Servicio de Destino: OCI IAD Object Storage
    • Gateway de servicio: PublicVCNGatewayServicio
    • Descripción: PublicVCNRouteServicio
  • Reglas de seguridad
    • Default Security List for PubOracleAPEOrigen: 0.0.0.0, TCP, Puertos origen: todos, Rango puertos destido: 22, 1521, 443, Sin estado

VCN

\"\"

192.168.96.0/24

Subred Pública

\"\"

Gateway de Internet

\"\"

Gateway de Servicio

\"\"

Tabla de rutas

\"\"

Reglas de seguridad

\"\"

Importante

Las instancias que ejecutan imágenes del sistema de base de datos proporcionadas por Oracle también tienen reglas de firewall que controlan el acceso a la instancia. Asegúrese de que las reglas de seguridad y las reglas de firewall de la instancia estén definidas correctamente. Consulte también Apertura de puertos en el sistema de base de datos.

PARTE II: Crear sistema de base de datos[2]

Preparar parámetros de configuración

Compartimentoabcd (depende de su contrato)
Red virtual en la nube en abcd (raíz)PublicVCN
Subred de Cliente en abcd(raíz)PublicVCNSubnetA
Asignar un nombre al sistema de base de datosSBDTEST10
Prefijo de nombre de hosttest10
Nombre de la base de datosBDTEST10
Nombre de PDBOpcionalPDBT10PR
Versión de la base de datos12.2
Edición de software de Oracle DatabaseEnterprise edition
Características de Máquina virtualVM.Standard2.1
Configurar almacenamientoAlmacenamiento disponible (GB): 256
Mostrar Opciones AvanzadasZona horaria: America/Mexico_City (detectado por el explorador)
Protocolo del servicio ORDS: PuertoInterno HTTPS:443
Externo HTTPS:8443

Parámetros generados después de la instalación

IP Pública132.145.191.128
IP Privada192.168.74.2
Host de servidor de b.d.test10.publicvcnsubnet.publicvcn.oraclevcn.com
Puerto1521
Nombre del servicioBDTEST10_iad1nv.publicvcnsubnet.publicvcn.oraclevcn.com
test10.publicvcnsubnet.publicvcn.oraclevcn.com:1521/BDTEST10_iad1nv.publicvcnsubnet.publicvcn.oraclevcn.com
(DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)(ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.74.2)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=BDTEST10_iad1nv.publicvcnsubnet.publicvcn.oraclevcn.com)))
Ruta de acceso a ORDS/u01/app/oracle/ords
PDBdbtest03_iad188.pubapeoracle.puboracleape.oraclevcn.com
CDB$ROOTpdbt03.pubapeoracle.puboracleape.oraclevcn.com
test10.publicvcnsubnet.publicvcn.oraclevcn.com:1521/BDTEST10_iad1nv.publicvcnsubnet.publicvcn.oraclevcn.com
(
	DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3
	(
		ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.74.2)(PORT=1521))
	)
	(
		CONNECT_DATA=(SERVICE_NAME=BDTEST10_iad1nv.publicvcnsubnet.publicvcn.oraclevcn.com)
	)
)

Paso 2: Crear el Sistema de Base de Datos

Referencia: https://docs.cloud.oracle.com/es-ww/iaas/Content/Database/Concepts/overview.htm

  1. Página principal de Oracle Cloud Infraestructure
\"\"/
  1. Seleccionar la opción . Hardware dedicado, VM, y Exadata desde el menú rápido, para mostrar las máquinas virtuales instaladas:
  2. Seleccionar Crear Sistemas de base de datos en abcd (raíz) si es para pruebas con los siguientes parámetros:
\"\"/
ParámetroValor
Compartimentoabcd
Asignar un nombre al sistema de base de datosSBDTEST10
Seleccionar un dominio de disponibilidadAD-1 iihM:US-ASHBURN-AD-1
Seleccionar un tipo de unidadMáquina virtual
Seleccionar FormaVM.Standard2.1
Edición de software de Oracle DatabaseEnterprise edition
Seleccionar software de gestión de almacenamientoInfraestructura de Grid de Oracle
Configurar almacenamientoAlmacenamiento disponible (GB): 256
Agregar claves SSH públicas
Seleccionar un tipo de licenciaLicencia incluida
Red virtual en la nube en ecrp (raíz)PublicVCN
Subred de Cliente en ecrp (raíz)PublicVCNSubnetA
Utilizar grupos de seguridad de red para controlar el tráficoDejar sin seleccionar
Se configurarán lista de seguridad. (Oracle recomienda usar Grupos de Seguridad).
Prefijo de nombre de hosttest10
Nombre del dominio de host:
publicvcnsubnet.publicvcn.oraclevcn.com
URL de dominio y host:
test10.publicvcnsubnet.publicvcn.oraclevcn.com
Mostrar Opciones AvanzadasZona horaria: America/Mexico_City (detectado por el explorador)
Siguiente
pdbt03.pubapeoracle.puboracleape.oraclevcn.com
Nombre de la base de datosBDTEST10
Versión de la base de datos12.2
Nombre de PDBOpcionalPDBT10PR
Nombre de usuarioSolo lecturaSYS
T03ABcde00##
SYS10cvb12_#-
ZXasd_##1521
Mostrar Opciones AvanzadasJuego de Caracteres: AL32UTF8Juego de caracteres nacional: AL16UTF16
Crear
  1. Actualizar la tabla de Parámetros generados después de la instalación con los siguientes datos:
    1. Hacer clic en el nuevo Sistema de base de datos (Detalles de sistema de base de datos) →  Nodos
      1. Dirección IP Pública
      2. Dirección IP privada y nombre de DNS
      3. Cadena de Conexión
\"\"/
\"\"/
\"\"/
\"\"/
\"\"/
\"\"/
  1. Pegar: en un bloc de notas:
  2. Agregar la cadena de conexión a tnsnames.ora
[oracle@test10 ords]$ cat /u01/app/oracle/product/12.2.0.1/dbhome_1/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/12.2.0.1/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
BDTEST10_IAD1NV =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = test10.publicvcnsubnet.publicvcn.oraclevcn.com)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = BDTEST10_iad1nv.publicvcnsubnet.publicvcn.oraclevcn.com)
    )
  )
LISTENER_BDTEST10 =
  (ADDRESS = (PROTOCOL = TCP)(HOST = test10.publicvcnsubnet.publicvcn.oraclevcn.com)(PORT = 1521))
\"\"

Agregar la cadena de conexión

[oracle@test10 ords]$ cp /u01/app/oracle/product/12.2.0.1/dbhome_1/network/admin/tnsnames.ora /u01/app/oracle/product/12.2.0.1/dbhome_1/network/admin/tnsnames.ora.orig.bak<br>[oracle@test10 ords]$ vi /u01/app/oracle/product/12.2.0.1/dbhome_1/network/admin/tnsnames.ora

PDBT10PR=
(DESCRIPTION =
(ADDRESS =(PROTOCOL=TCP)(HOST = 192.168.74.2 )(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = pdbt10pr.publicvcnsubnet.publicvcn.oraclevcn.com)
    )
  )

Paso 3. Configurar PUTTY para acceso remoto

  1. Abrir Putty asignar la IP Pública en el host en el formato: opc@IP_PUBLICA.
\"\"/
\"\"/
  1. Autenticar por medio de SSH / Auth / Private Key File. (Usar la llave privada que relacionada con la llave público que se asignó a la máquina virtual.
\"\"/
  1. Guardar la configurar y validar el acceso
\"\"/
  1. Mostrar el espacio de almacenamiento
\"\"/

Paso 4. Configurar la conexión de SQL Developer

  1. Conectarse como SYS, con los valores de la tabla Parámetros generados después de la instalación.
\"\"/
  1. Mostrar la versión instalada

SQL> select * from v$version

\"\"/

Mostrar los servicios creados

SQL> SELECT name, pdb FROM   v$services ORDER BY name;

BDTEST10XDBCDB$ROOT
SYS$BACKGROUNDCDB$ROOT
SYS$USERSCDB$ROOT
BDTEST10_iad1nv.publicvcnsubnet.publicvcn.oraclevcn.comCDB$ROOT
pdbt10pr.publicvcnsubnet.publicvcn.oraclevcn.comPDBT10PR

PARTE III.  Instalar APEX y ORDS

Paso 5. Descargar y subir al servidor

  1. Descargar APEX 18.1, ingresar a la siguiente dirección y descargar la versión que incluye todos los idiomas
https://www.oracle.com/tools/downloads/apex-v181-downloads.html
  1. Subir el archivo apex_18.1.zip al servidor vía WinSCP (La configuración de la conexión vía WinSCP es similar a Putty), va a quedar en el directorio: /home/opc/
  2. Copiar el archivo a la carpeta home del usuario oracle
[opc@htest02 ~]$ sudo su -
[root@htest10 opc]# cp /home/opc/apex_18.1.zip /home/oracle/
[root@htest10 opc]# cd /home/oracle/
[root@htest10 oracle]# chown oracle apex_18.1.zip
[root@htest10 oracle]# chgrp oinstall apex_18.1.zip
[root@htest10 oracle]# ls -al
-rw-r--r-- 1 oracle oinstall 149875516 Apr 27 23:44 apex_18.1.zip
[root@htest10 oracle]# exit
[opc@htest10 ~]$ sudo su - oracle
[oracle@htest10 ~]$ pwd
/home/oracle
[oracle@htest10 ~]$ unzip apex_18.1.zip

Nota. se copia a esta carpeta, porque el owner de la carpeta products está asignada al usuario root.

[oracle@htest10 ~]$ mv /home/oracle/apex/ /u01/app/oracle/

Nota. Es importante ubicarse en este directorio, ya que desde aqui se va a inicar la instalación de APEX/ORDS.

[oracle@htest10 ~]$ cd /u01/app/oracle/apex/

Paso 6. Instalar APEX 18.1

  1. Dentro de la ruta de APEX /u01/app/oracle/apex/ ejecutamos sqlplus / sys as sysdba
[oracle@htest02 apex]$ sqlplus
SQL*Plus: Release 12.2.0.1.0 Production on Sun Mar 29 13:46:37 2020
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
Enter user-name: sys as sysdba
Enter password:
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL>
  1. Debido a que el script se ejecuta con ciertos permisos, es necesario preparar el ambiente para soportar la ejecución del script (Doc ID 2408087.1)

La primer línea quita la restricción en el CDB

ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION NULL;
ALTER SESSION SET CONTAINER = PDBT10PR;
ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION NULL;

Crear un nuevo perfil, que será asignado posteriormente a los usuarios de APEX

CREATE PROFILE APEX_PUBLIC LIMIT PASSWORD_LIFE_TIME UNLIMITED;
ALTER PROFILE APEX_PUBLIC LIMIT PASSWORD_REUSE_MAX UNLIMITED;
ALTER PROFILE APEX_PUBLIC LIMIT PASSWORD_REUSE_TIME UNLIMITED ;
ALTER PROFILE APEX_PUBLIC LIMIT PASSWORD_VERIFY_FUNCTION NULL;
-- Desbloquear el siguiente usuario:
ALTER USER ANONYMOUS ACCOUNT UNLOCK;
  1. Crear los TABLESPACES en el PDB no en el CDB

Nos aseguramos de estar dentro del contenedor PDBT10PR:

ALTER SESSION SET CONTAINER = PDBT10PR;
show con_name;
show user;
CREATE TABLESPACE APEX   DATAFILE \'PDB10APEX.dbf\'  SIZE 1200M AUTOEXTEND ON NEXT 100M;
CREATE TABLESPACE APEX_FILES DATAFILE \'PDB10APEX_FILES.dbf\' SIZE 300M AUTOEXTEND ON NEXT 50M;
CREATE TEMPORARY TABLESPACE APEX_TEMP TEMPFILE\'PDB10APEX_TEMP.dbf\' SIZE 100M;
CREATE TABLESPACE ORDS DATAFILE \'PDB10ORDS.dbf\' SIZE 1024M AUTOEXTEND ON NEXT 100M;

Ejecutar el script de instalación de APEX con los siguientes parámetros en el orden mostrado

@apexins.sql tablespace_apex tablespace_files tablespace_temp images

Full development environment – Run apexins.sql

Dónde:

  • tablespace_apex: tablespace para el usuario de la aplicación de Application Express.
  • tablespace_files: tablespace para el usuario de los archivos de Application Express.
  • tablespace_temp: tablespace temporal o del grupo de tablespaces.
  • Images: es el directorio virtual para las imágenes de Application Express. Para admitir futuras actualizaciones de Application Express, definimos como /i/.
@apexins APEX APEX_FILES APEX_TEMP /i/

Salida:

PL/SQL procedure successfully completed.
timing for: Validate Installation
Elapsed: 00:02:03.14
Session altered.
PL/SQL procedure successfully completed.
Thank you for installing Oracle Application Express 18.1.0.00.45
Oracle Application Express is installed in the APEX_180100 schema.
The structure of the link to the Application Express administration services is as follows:
http://host:port/pls/apex/apex_admin (Oracle HTTP Server with mod_plsql)
http://host:port/apex/apex_admin     (Oracle XML DB HTTP listener with the embedded PL/SQL gateway)
http://host:port/apex/apex_admin     (Oracle REST Data Services)
The structure of the link to the Application Express development interface is as follows:
http://host:port/pls/apex (Oracle HTTP Server with mod_plsql)
http://host:port/apex     (Oracle XML DB HTTP listener with the embedded PL/SQL gateway)
http://host:port/apex     (Oracle REST Data Services)
. . .
PL/SQL procedure successfully completed.
1 row selected.
...null1.sql
SYS>
SYS>

El script de instalación crea 3 nuevas cuentas de base de datos:

  • APEX_180100 : Cuenta propietaria del esquema y los metadatos de Application Express
  • FLOWS_FILES: Cuenta propietaria de los archivos cargados en Application Express
  • APEX_PUBLIC_USER: Cuenta con privilegios mínimos que se utiliza para la configuración de Oracle Application Express con Oracle REST Data Services u Oracle HTTP Server y mod_plsql
  1. Configurar el perfil de la cuentas de APEX

Verificar el estado en que se encuentran las cuentas:

SELECT * FROM DBA_USERS WHERE USERNAME IN (\'APEX_180100\',\'FLOWS_FILES\', \'APEX_PUBLIC_USER\');

Cambiar el perfil de estas cuentas  y desbloquea estas cuentas:

alter user APEX_180100 profile apex_public;
alter user FLOWS_FILES profile apex_public;
alter user APEX_PUBLIC_USER profile apex_public;
alter user APEX_180100 IDENTIFIED BY ZXasd_##1521 profile apex_public ACCOUNT UNLOCK;
 alter user FLOWS_FILES IDENTIFIED BY ZXasd_##1521 profile apex_public ACCOUNT UNLOCK;
 alter user APEX_PUBLIC_USER IDENTIFIED BY ZXasd_##1521 profile apex_public ACCOUNT UNLOCK;

Configurar el ORDS

Ejecutar apex_rest_config.sql, este paso creará 2 usuarios adicionales que son utilizados para el REST.

  • APEX_REST_PUBLIC_USER: Se usa cuando se invocan definiciones de Servicios RESTful almacenadas en APEX
  • APEX_LISTENER: Se usa para consultar las definiciones de servicios RESTful almacenadas en Application Express
@apex_rest_config.sql

Salida:

@apex_rest_config.sql
Enter a password for the APEX_LISTENER user              []
Enter a password for the APEX_REST_PUBLIC_USER user              []
...set_appun.sql
...create APEX_LISTENER and APEX_REST_PUBLIC_USER users
PL/SQL procedure successfully completed.
Grant succeeded.
Session altered.
Synonym created.
PL/SQL procedure successfully completed.
.

Verificar el estado en que se encuentran las cuentas:

alter user APEX_LISTENER profile apex_public;
alter user APEX_REST_PUBLIC_USER profile apex_public;
  SELECT * FROM DBA_USERS WHERE USERNAME IN(\'APEX_REST_PUBLIC_USER\',\'APEX_LISTENER\');
  1. Configurar el directorio para las imágenes en Embedded PL/SQL Gateway
@apex_epg_config.sql /u01/app/oracle

Salida:

SQL> @apex_epg_config.sql /u01/app/oracle
PL/SQL procedure successfully completed.
. Loading images directory: /u01/app/oracle/apex/images
Directory created.
PL/SQL procedure successfully completed.
Commit complete.
Directory dropped.
timing for: Load Images
Elapsed: 00:02:30.22
PL/SQL procedure successfully completed.
Commit complete.

Desbloquear el usuario  ANONYMOUS

ALTER USER ANONYMOUS ACCOUNT UNLOCK;
select * from dba_users where username =\'ANONYMOUS\';
  1. Cambiar/Asignar la contraseña del usuario ADMIN de APEX

USUARIO ADMIN DE APEX= ADMIN_TEST10

@apxchpwd.sql

Salida:

SQL> @apxchpwd.sql;
================================================================
This script can be used to change the password of an Application Express
instance administrator. If the user does not yet exist, a user record will be
created.
================================================================
Enter the administrator\'s username [ADMIN] ADMIN_TEST10
User \"ADMIN_TEST10\" does not yet exist and will be created.
Enter ADMIN_TEST10\'s email [ADMIN_TEST10] ifararoni@apeplazas.com
Enter ADMIN_TEST10\'s password []
Created instance administrator ADMIN_TEST10.
exit

Paso 7. Instalar/configurar ORDS 

  1. Copiar ords.war del directorio de instalación a un directorio de trabajo
[oracle@test10 apex]$  cd /u01/app/oracle/product/12.2.0.1/dbhome_1
[oracle@test10 dbhome_1]$  cp -R ./ords/ /u01/app/oracle/
[oracle@test10 dbhome_1]$ cd /u01/app/oracle/
[oracle@test10 oracle]$ chown -R oracle ords
[oracle@test10 oracle]$ cd ords
[oracle@test10 ords]$ cat /u01/app/oracle/product/12.2.0.1/dbhome_1/network/admin/tnsnames.ora
[oracle@test10 ords]$ cp /u01/app/oracle/product/12.2.0.1/dbhome_1/network/admin/tnsnames.ora /u01/app/oracle/product/12.2.0.1/dbhome_1/network/admin/tnsnames.ora.orig.bak
  1. Si es necesario desbloquear los usuarios
ALTER SESSION SET CONTAINER = PDBT10PR;
select * from dba_users where username in (\'APEX_REST_PUBLIC_USER\',\'APEX_LISTENER\',\'ANONYMOUS\',\'APEX_180100\',\'FLOWS_FILES\', \'APEX_PUBLIC_USER\');
ALTER USER APEX_PUBLIC_USER IDENTIFIED BY ZXasd_##1521 ACCOUNT UNLOCK;
ALTER USER APEX_LISTENER IDENTIFIED BY ZXasd_##1521 ACCOUNT UNLOCK;
ALTER USER APEX_REST_PUBLIC_USER IDENTIFIED BY ZXasd_##1521 ACCOUNT UNLOCK;
—-
alter user APEX_180100 IDENTIFIED BY ZXasd_##1521 profile apex_public ACCOUNT UNLOCK;
alter user APEX_INSTANCE_ADMIN_USER IDENTIFIED BY ZXasd_##1521  profile apex_public ACCOUNT UNLOCK;
SELECT name, pdb FROM   v$services ORDER BY name;
  1. Ejecutar la instalación de ORDS

Cuando el script pregunte por el servicio de base de datos, proporcionar la conexión del CDB

pdbt10pr.publicvcnsubnet.publicvcn.oraclevcn.com

[oracle@htest03 ords]$ netstat -tulpn | grep 1521

\"\"
java -jar ords.war install advanced

When prompted, enter the service name information for your PDB

  • host: 192.168.74.3
  • port: 1521
  • service name: pdbt10pr.publicvcnsubnet.publicvcn.oraclevcn.com
  • Using configuration folder: /u01/app/oracle/ords/config/ords
https://docs.oracle.com/cd/E56351_01/doc.30/e87809/multitenant-architecture-with-REST.htm#AELIG-GUID-D6D6B194-EBCD-4D4C-8B5D-2451A565DD82
[oracle@test10 ords]$ java -jar ords.war install advanced
Verify ORDS schema in Database Configuration apex with connection host: 192.168.74.3 port: 1521 service name: pdbt10pr.publicvcnsubnet.publicvcn.oraclevcn.com
Please login with SYSDBA privileges to verify Oracle REST Data Services schema.
Enter the username with SYSDBA privileges to verify the installation [SYS]:
Enter the database password for SYS:
Confirm password:
Enter the default tablespace for ORDS_METADATA [SYSAUX]:
Enter the temporary tablespace for ORDS_METADATA [TEMP]:
Enter the default tablespace for ORDS_PUBLIC_USER [USERS]:
Enter the temporary tablespace for ORDS_PUBLIC_USER [TEMP]:
Installing Oracle REST Data Services version 3.0.7.228.03.57
... Log file written to /home/oracle/ords_install_core_2020-05-03_223545_00663.log
... Verified database prerequisites
... Created Oracle REST Data Services schema
... Created Oracle REST Data Services proxy user
... Granted privileges to Oracle REST Data Services
... Created Oracle REST Data Services database objects
... Log file written to /home/oracle/ords_install_datamodel_2020-05-03_223614_00912.log
Completed installation for Oracle REST Data Services version 3.0.7.228.03.57. Elapsed time: 00:00:30.771
Enter 1 if you wish to start in standalone mode or 2 to exit [1]:1
2020-05-03 22:36:20.752:INFO::main: Logging initialized @70244ms
May 03, 2020 10:36:20 PM
INFO: Existing keystore files loaded, verifying...
May 03, 2020 10:36:20 PM
INFO: Existing keystore is still valid.
May 03, 2020 10:36:20 PM
INFO: Disabling document root because the specified folder does not exist: /u01/app/oracle/ords/config/ords/standalone/doc_root
2020-05-03 22:36:22.357:INFO:oejs.Server:main: jetty-9.2.z-SNAPSHOT
2020-05-03 22:36:22.636:INFO:/ords:main: INFO: Using configuration folder: /u01/app/oracle/ords/config/ords
2020-05-03 22:36:22.637:INFO:/ords:main: FINEST: |ApplicationContext [configurationFolder=/u01/app/oracle/ords/config/ords, services=Application Scope]|

Paso 8: Configurar el Firewall

  1. Permitir acceso al puerto HTTPS de ORDS de puertos:

Asegurarse que existe la siguiente regla en 

\"\"/

** Nateo de puertos para redirigir el tráfico de entrada y salida

[opc-@test10 ~]$ sudo su -
Last login: Sun May  3 22:41:48 CDT 2020
## Nateo de puertos para redirigir el tráfico de entrada y salida
[root@test10 ~]# iptables -t nat  -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443
[root@test10 ~]# iptables -t nat  -A OUTPUT -d 127.0.0.1/32 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443
## Permitir tráfico del servidor web:
[root@test10 ~]# iptables -A INPUT -p tcp --dport 443 -j ACCEPT
[root@test10 ~]# iptables -A INPUT -p tcp --dport 8443 -j ACCEPT
## Guardar la configuración
[root@test10 ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
[root@test10 ~]# service iptables reload
Redirecting to /bin/systemctl reload iptables.service

Mostrar las interfaces disponibles, seleccionar el que recibe entradas desde Internet

# tcpdump -i ens3 port 443

Abrir una consola de CMD en windows o un navegador web

$ curl -k https://158.101.109.164

Salida:

$ curl -vvI https://150.136.101.194* Rebuilt URL to: https://150.136.101.194/*   Trying 150.136.101.194…* TCP_NODELAY set* Connected to 150.136.101.194 (150.136.101.194) port 443 (#0)* schannel: SSL/TLS connection with 150.136.101.194 port 443 (step 1/3)* schannel: checking server certificate revocation* schannel: using IP address, SNI is not supported by OS.* schannel: sending initial handshake data: sending 156 bytes…* schannel: sent initial handshake data: sent 156 bytes* schannel: SSL/TLS connection with 150.136.101.194 port 443 (step 2/3)* schannel: failed to receive handshake, need more data* schannel: SSL/TLS connection with 150.136.101.194 port 443 (step 2/3)* schannel: encrypted data got 809* schannel: encrypted data buffer: offset 809 length 4096* schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) – La cadena de certificación fue emitida por una entidad en la que no se confía.* Closing connection 0* schannel: shutting down SSL/TLS connection with 150.136.101.194 port 443* schannel: clear security context handlecurl: (77) schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) – La cadena de certificación fue emitida por una entidad en la que no se confía.
https://150.136.101.194/ords/f?p=4550:1:12447867756034:::::
\"\"/
Revisar si está llegando el tráfico a la interfaz
[root@htest02 ~]# tcpdump -i ens3 port 8443
Habilitar en un solo comando HTTP y HTTPS
sudo iptables -A INPUT -p tcp -m multiport –dports 80,443 -m conntrack –ctstate NEW,ESTABLISHED -j ACCEPTsudo iptables -A OUTPUT -p tcp -m multiport –dports 80,443 -m conntrack –ctstate ESTABLISHED -j ACCEPT
Exportar, modificar y actualizar la tabla IPTABLES
sudo iptables-save > iptables.txtsudo vi iptables.txtsudo iptables-restore < iptables.txt
#Fragmento# Generated by iptables-save v1.4.21 on Thu Apr 30 22:54:38 2020*nat:PREROUTING ACCEPT [392:21960]:INPUT ACCEPT [352:20296]:OUTPUT ACCEPT [55433:60569784]:POSTROUTING ACCEPT [55433:60569784]-A PREROUTING -p tcp -m tcp –dport 443 -j REDIRECT –to-ports 8443-A OUTPUT -d 127.0.0.1/32 -p tcp -m tcp –dport 443 -j REDIRECT –to-ports 8443COMMIT# Completed on Thu Apr 30 22:54:38 2020# Generated by iptables-save v1.4.21 on Thu Apr 30 22:54:38 2020*filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [266614:156815533]:BareMetalInstanceServices – [0:0]-A INPUT -p tcp -m tcp –dport 443 -j ACCEPT-A INPUT -p tcp -m tcp –dport 8443 -j ACCEPT-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT-A INPUT -p icmp -j ACCEPT-A INPUT -i lo -j ACCEPT-A INPUT -i ens4 -j ACCEPT-A INPUT -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT. . . . # Completed on Thu Apr 30 22:54:38 2020
Listas las reglas de IPTABLES
sudo iptables -L

PARTE IV.  Configurar APEX

Paso 9. Exportar el Workspace desde el servidor origen

\"\"/

Paso 9. Creación de un Espacio de Trabajo Manualmente

  1. Descargar APEX 18.1, ingresar a la siguiente dirección y descargar la versión que incluye todos los idiomas
URL de administración/ords/apex_admin
URL de la instalaciónhttps://IP_PUBLICA/ords/f?p=4550:10:11300713595100:::::
UsernameADMIN
PasswordT03ABcde00##
Schema Name(Value Required)WS_APE_PLAZAS_CONTRATOS_QA
Schema PasswordT03ABcde00##
Administrator Username(Value Required)ADMIN_QA
WS_APE_PLAZAS_CONTRATOS_QA1ADMIN_QA2
Administrator Password(Value Required)T03ABcde00##
\"\"/
  1. Hacemos click en Manage Workspaces → luego click en Create Workspace
\"\"/
  1. Crear el workspace manualmente
\"\"/
\"\"/
\"\"/
\"\"/
\"\"/
  1. Ingresar al Workspace WS_APE_PLAZAS_CONTRATOS_QA
https://150.136.101.194/ords/f?p=4550:1:15260566208253:::::
\"\"/
  1. Pantalla princpal de APEX
\"\"/
  1. Instalar Oracle APEX 18.2 en Español
Instalar Oracle APEX 18.2 en Español
Finalmente, si queremos tener nuestro APEX traducido al español necesitamos primero establecer la variable NLS en nuestro sistema operativo Windows.C:\\>set NLS_LANG=American_America.AL32UTF8
Ahora nos ubicamos en la carpeta de instalación de APEX C:\\apex\\builder\\es y abrimos el SQLPlus y ejecutamos el script  load_es.sql.C:\\apex\\builder\\es>sqlplus SYS/my_password@XE as SYSDBASQL> ALTER SESSION SET CONTAINER = XEPDB1;SQL> @load_es.sql
https://www.oracle.com/technetwork/es/articles/apex/instalar-oracle-apex18-5487195-esa.html

PARTE V.  Importar esquema y base de datos

Paso 10. Preparación para exportar la base de datos origen

Llenar la siguiente tabla:

Base de datos origen
PLUGGABLE DATABASE(PDB)apeppdb1.pubapeoracle.puboracleape.oraclevcn.com
SCHEMA_NAMEXXSCHEMA_CONTRATOS (existe en la PDB)
Directorio DATAPUMPAPEPPDB1_EXPDIR/u01/app/oracle/DATAPUMP\’
TABLESPACESAPEX_APEPDB12_PDATA 31744APEX_APEPDB12_PIDX 6144APEX_APEPDB12_TDATA 41983.984375APEX_APEPDB12_TIDX 6144
Base de datos destino
PLUGGABLE DATABASE(PDB)pdbt03.pubapeoracle.puboracleape.oraclevcn.com
SCHEMA_NAMEXXSCHEMA_CONTRATOS (existe en la PDB)
Directorio DATAPUMPPDBT03_EXPDIR/u01/app/oracle/DATAPUMP\’
TABLESPACESAPEX_APEPDB12_PDATA 31744APEX_APEPDB12_PIDX 6144APEX_APEPDB12_TDATA 41983.984375APEX_APEPDB12_TIDX 6144
ALTER SESSION SET CONTAINER = PDBT03;CREATE TABLESPACE APEX_APEPDB12_PDATA DATAFILE \’APEX_APEPDB12_PDATA.dbf\’ SIZE 30G AUTOEXTEND ON NEXT 10G;CREATE TABLESPACE APEX_APEPDB12_TDATA DATAFILE \’APEX_APEPDB12_TDATA.dbf\’ SIZE 30G AUTOEXTEND ON NEXT 10G;CREATE TABLESPACE APEX_APEPDB12_PIDX DATAFILE \’APEX_APEPDB12_PIDX.dbf\’ SIZE 6G AUTOEXTEND ON NEXT 1G;CREATE TABLESPACE APEX_APEPDB12_TIDX DATAFILE \’APEX_APEPDB12_TIDX .dbf\’ SIZE 6G AUTOEXTEND ON NEXT 1G;
  1. Verificar que se encuentre dato de 

[oracle@apepdb admin]$ cat /u01/app/oracle/product/12.2.0.1/dbhome_1/network/admin/tnsnames.ora

Salida:

[oracle@apepdb admin]$ cat /u01/app/oracle/product/12.2.0.1/dbhome_1/network/admin/tnsnames.oraAPEPDB12_iad1t6=  (DESCRIPTION=    (ADDRESS = (PROTOCOL = TCP)(HOST = apepdb-scan)(PORT = 1521))    (CONNECT_DATA =    (SERVER = DEDICATED)    (SERVICE_NAME = APEPDB12_iad1t6.pubapeoracle.puboracleape.oraclevcn.com)    )  )
APEPPDB1 =  (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = apepdb.pubapeoracle.puboracleape.oraclevcn.com)(PORT = 1521))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = apeppdb1.pubapeoracle.puboracleape.oraclevcn.com)    )  )

APEPDB12 =  (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = apepdb-scan)(PORT = 1521))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = APEPDB12_iad1t6.pubapeoracle.puboracleape.oraclevcn.com)    )  )
  1. Localizar el directorio a donde va a caer el DMP

SQL > SELECT * FROM dba_directories;  

> SYS | DATA_PUMP_DIR /u01/app/oracle/product/12.2.0.1/dbhome_1/rdbms/log/

  1.  Verificar que hay espacio en ese directorio.

[opc@apepdb ~]$ df -BG

[opc@apepdb ~]$ df -BG /u01/app/oracle/product/12.2.0.1/dbhome_1/rdbms/log/

\"\"/
  1. Obtener el esquema en donde se encuentra el esquema a exportar

SQL > SELECT SERVICE_ID, pdb, name, NETWORK_NAME
  FROM v$services
    ORDER BY name;

apeppdb1.pubapeoracle.puboracleape.oraclevcn.com    APEPPDB1

SQL > SHOW PDBS;

CON_ID CON_NAME                       OPEN MODE  RESTRICTED

———- —————————— ———- ———-

         2 PDB$SEED                       READ ONLY  NO        

         3 APEPPDB1                       READ WRITE NO

Paso 11. Crear el directorio para DATAPUMP en el PDB

  1. Crear el directorio en el Filesystem
    1. Revisar que hay suficiente espacio para exportar los datos. Hay que tener precaución de NO saturar el directorio raíz (/) porque se puede colapsar el S.O, debe tener un espacio mínimo de 15Gb. Buscar el filesystem con más espacio, cuidar que no se donde se generar los TABLESPACES de la Base de Datos, porque si se satura la B.D no podrá  incrementar su tamaño.

df -BG

\"\"/
  1. Crear el directorio en el Filesystem

[oracle@apepdb DATAPUMP]$ cd /u01/app/oracle/

[oracle@apepdb oracle]$ mkdir DATAPUMP

[oracle@apepdb DATAPUMP]$ pwd

/u01/app/oracle/DATAPUMP

  1. Seleccionar el PDB y mostrar los directorios

SQL > ALTER SESSION set container=APEPPDB1;

SQL > SHOW PDBS;

SQL > CREATE DIRECTORY APEPPDB1_EXPDIR AS \’/u01/app/oracle/DATAPUMP\’;

  1. Mostrar los TABLESPACES que se van a necesitar en el destino

SQL > ALTER SESSION set container=APEPPDB1;

SQL > SELECT TABLESPACE_NAME, STATUS, CONTENTS  FROM USER_TABLESPACES;

Paso 11. Exportar el esquema de origen [9] 

  1. Exportar el esquema

Esquema/usuario: XXSCHEMA_CONTRATOS_TEST
PDB apeppdb1
DIRECTORY APEPPDB1_EXPDIR

[oracle@apepdb oracle]$ expdp XXSCHEMA_CONTRATOS_TEST/ABcde00##@apeppdb1 dumpfile=XXSCHEMA_CONTRATOS_TEST_20200501.dmp logfile=XXSCHEMA_CONTRATOS_TEST_20200501.log directory=APEPPDB1_EXPDIR SCHEMAS=XXSCHEMA_CONTRATOS_TEST schemas=XXSCHEMA_CONTRATOS_TEST

[oracle@apepdb oracle]$ expdp XXSCHEMA_CONTRATOS_TEST/ABcde00##@apeppdb1 dumpfile=XXSCHEMA_CONTRATOS_TEST_20200501.dmp logfile=XXSCHEMA_CONTRATOS_TEST_20200501.log directory=APEPPDB1_EXPDIR SCHEMAS=XXSCHEMA_CONTRATOS_TEST schemas=XXSCHEMA_CONTRATOS_TEST
Export: Release 12.2.0.1.0 – Production on Fri May 1 12:00:14 2020
Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.
Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 – 64bit ProductionStarting \»XXSCHEMA_CONTRATOS_TEST\».\»SYS_EXPORT_SCHEMA_01\»:  XXSCHEMA_CONTRATOS_TEST/********@apeppdb1 dumpfile=XXSCHEMA_CONTRATOS_TEST_20200501.dmp logfile=XXSCHEMA_CONTRATOS_TEST_20200501.log directory=APEPPDB1_EXPDIR SCHEMAS=XXSCHEMA_CONTRATOS_TEST schemas=XXSCHEMA_CONTRATOS_TESTProcessing object type SCHEMA_EXPORT/TABLE/TABLE_DATA. . . .Master table \»XXSCHEMA_CONTRATOS_TEST\».\»SYS_EXPORT_SCHEMA_01\» successfully loaded/unloaded******************************************************************************Dump file set for XXSCHEMA_CONTRATOS_TEST.SYS_EXPORT_SCHEMA_01 is:  /u01/app/oracle/DATAPUMP/XXSCHEMA_CONTRATOS_TEST_20200501.dmpJob \»XXSCHEMA_CONTRATOS_TEST\».\»SYS_EXPORT_SCHEMA_01\» successfully completed at Fri May 1 12:14:46 2020 elapsed 0 00:14:30
  1. Verificar que quede suficiente espacio en el Filesystem
[oracle@apepdb oracle]$ df -BGFilesystem                          1G-blocks  Used Available Use% Mounted ondevtmpfs                                  15G    0G       15G   0% /devtmpfs                                     15G    1G       14G   6% /dev/shmtmpfs                                     15G    1G       14G   6% /runtmpfs                                     15G    0G       15G   0% /sys/fs/cgroup/dev/mapper/VolGroupSys4-LogVolRoot       35G    6G       28G  17% //dev/sda2                                  2G    1G        2G   8% /boot/dev/sda1                                  1G    1G        1G   2% /boot/efitmpfs                                     15G    1G       15G   1% /tmp/dev/sdj                                 197G  100G       88G  54% /u01tmpfs                                      3G    0G        3G   0% /run/user/102/dev/asm/commonstore-400                   5G    1G        5G   8% /opt/oracle/dcs/commonstoretmpfs                                      3G    0G        3G   0% /run/user/54322
  1. Empaquetar y comprimir el DMP

[oracle@apepdb DATAPUMP]$ tar -czvf XXSCHEMA_CONTRATOS_TEST_20200501.dmp.tar.gz XXSCHEMA_CONTRATOS_TEST_20200501.*

XXSCHEMA_CONTRATOS_TEST_20200501.dmp

  1. Exportar XXSCHEMA_CONTRATOS

[oracle@apepdb oracle]$ expdp XXSCHEMA_CONTRATOS/ABcde00##@apeppdb1 dumpfile=XXSCHEMA_CONTRATOS_20200501.dmp logfile=XXSCHEMA_CONTRATOS_20200501.log directory=APEPPDB1_EXPDIR SCHEMAS=XXSCHEMA_CONTRATOS schemas=XXSCHEMA_CONTRATOS

[oracle@apepdb oracle]$ df -BG

[oracle@apepdb DATAPUMP]$ tar -czvf XXSCHEMA_CONTRATOS_20200501.dmp.tar.gz XXSCHEMA_CONTRATOS_20200501.*

  1. Descargar los archivos
\"\"/
  1. Borrar los archivos generados para liberar el espacio

[oracle@apepdb DATAPUMP]$ rm XXSCHEMA_CONTRATOS_TEST_20200501.dmp

[oracle@apepdb DATAPUMP]$ rm XXSCHEMA_CONTRATOS_TEST_20200501.log

[oracle@apepdb DATAPUMP]$ rm XXSCHEMA_CONTRATOS_20200501.dmp

[oracle@apepdb DATAPUMP]$ rm XXSCHEMA_CONTRATOS_20200501.log

Paso 11. Importar el esquema en la nueva B.D. e

  1. Subir los archivos comprimidos al servidor destivo

[opc@htest03 ~]$ ls -al *.tar.gz

-rw-rw-r– 1 opc opc 2442106496 May  1 14:07 XXSCHEMA_CONTRATOS_20200501.dmp.tar.gz

[opc@htest03 ~]$ sudo su – oracle

Last login: Fri May  1 15:45:07 CDT 2020

[oracle@htest03 ~]$ cd /u01/app/oracle

[oracle@htest03 oracle]$ mkdir DATAPUMP

[oracle@htest03 oracle]$ pwd

  1. Crear/Verificar  el directorio en el Filesystem

[opc@htest03 ~]$ sudo su – oracle

Last login: Fri May  1 15:45:07 CDT 2020

[oracle@htest03 ~]$ cd /u01/app/oracle

[oracle@htest03 oracle]$ mkdir DATAPUMP

[oracle@htest03 oracle]$ pwd

/u01/app/oracle

[oracle@htest03 oracle]$ exit

logout

[opc@htest03 ~]$ sudo su –

Last login: Fri May  1 15:55:18 CDT 2020

[root@htest03 ~]# mv /home/opc/XXSCHEMA_CONTRATOS_20200501.dmp.tar.gz /u01/app/oracle/DATAPUMP/

[root@htest03 ~]# chown oracle /u01/app/oracle/DATAPUMP/XXSCHEMA_CONTRATOS_20200501.dmp.tar.gz

[root@htest03 ~]# chgrp oinstall /u01/app/oracle/DATAPUMP/XXSCHEMA_CONTRATOS_20200501.dmp.tar.gz

[root@htest03 ~]# exit

[oracle@htest03 DATAPUMP]$ tar -xvf XXSCHEMA_CONTRATOS_20200501.dmp.tar.gz

  1. Seleccionar el PDB y mostrar los directorios

SQL > ALTER SESSION SET CONTAINER = PDBT03;

SQL > SHOW PDBS;

SQL > create directory PDBT03_EXPDIR as \’/u01/app/oracle/DATAPUMP\’;

  1. Crear los TABLESPACE’s

SQL > CREATE TABLESPACE APEX_APEPDB12_PDATA DATAFILE \’APEX_APEPDB12_PDATA.dbf\’ SIZE 30G AUTOEXTEND ON NEXT 5G;

SQL > CREATE TABLESPACE APEX_APEPDB12_TDATA DATAFILE \’APEX_APEPDB12_TDATA.dbf\’ SIZE 30G AUTOEXTEND ON NEXT 5G;

SQL > CREATE TABLESPACE APEX_APEPDB12_PIDX DATAFILE \’APEX_APEPDB12_PIDX.dbf\’ SIZE 6G AUTOEXTEND ON NEXT 1G;

SQL > CREATE TABLESPACE APEX_APEPDB12_TIDX DATAFILE \’APEX_APEPDB12_TIDX .dbf\’ SIZE 6G AUTOEXTEND ON NEXT 1G;

SQL > SELECT TABLESPACE_NAME, STATUS, CONTENTS  FROM USER_TABLESPACES;

  1. Agregar una cadena de conexión 

[oracle@htest03 ~]$ cat /u01/app/oracle/product/12.2.0.1/dbhome_1/network/admin/tnsnames.ora

PDBT03=(DESCRIPTION =(ADDRESS =(PROTOCOL=TCP)(HOST = htest03.pubapeoracle.puboracleape.oraclevcn.com)(PORT = 1521))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = pdbt03.pubapeoracle.puboracleape.oraclevcn.com)    )  )
  1. Si aún no existe el usuario del esquema, crearlo:
SQL > DROP USER XXSCHEMA_CONTRATOS CASCADE;
SQL > CREATE USER SOPORTE1 identified by ABcde00##;SQL > CREATE USER  SOPORTE2 identified by ABcde00##;SQL > CREATE USER  SOPORTE3 identified by ABcde00##;SQL > CREATE USER  XXAPEPP_JASPER identified by ABcde00##;SQL > CREATE USER  XXAPEPP_LECTURA identified by ABcde00##;SQL > CREATE USER  XXAPEPP_BKP identified by ABcde00##;SQL > CREATE USER  XXAPE_SUPP_PAYMENT identified by ABcde00##; 
SQL > CREATE USER XXSCHEMA_CONTRATOS identified by T03ABcde00##;SQL > grant create session to XXSCHEMA_CONTRATOS ;SQL > grant become user to XXSCHEMA_CONTRATOS;SQL > GRANT UNLIMITED TABLESPACE TO XXSCHEMA_CONTRATOS;SQL > GRANT DATAPUMP_IMP_FULL_DATABASE to XXSCHEMA_CONTRATOS;
Crear un usuarios con privilegios de DBA en el PDBSQL > CREATE USER XXSCHEMA_CONTRATOS_IMP identified by T03ABcde00##;SQL > grant create session, resource, dba to XXSCHEMA_CONTRATOS_IMP ;SQL > GRANT become user to XXSCHEMA_CONTRATOS_IMP;SQL > GRANT UNLIMITED TABLESPACE TO XXSCHEMA_CONTRATOS_IMP;SQL > GRANT DATAPUMP_IMP_FULL_DATABASE to XXSCHEMA_CONTRATOS_IMP;
  1. Importar el archivo
[oracle@htest03 ~]$ cd /u01/app/oracle/DATAPUMP
[oracle@htest03 ~]$ impdp XXSCHEMA_CONTRATOS_IMP/T03ABcde00##@pdbt03 dumpfile=XXSCHEMA_CONTRATOS_20200501.dmp logfile=XXSCHEMA_CONTRATOS_20200501.log DIRECTORY=PDBT03_EXPDIR   SCHEMAS=XXSCHEMA_CONTRATOS SCHEMAS=XXSCHEMA_CONTRATOS
  1.  
  2.  
https://docs.oracle.com/html/E39147_04/deploy_how_to.htm

v

https://150.136.101.194/ords/f?p=101:LOGIN_DESKTOP:35043485548194:::::

Referencias

[1] Configuración de red para sistemas de base de datos

VCN y subredes

https://docs.cloud.oracle.com/es-ww/iaas/Content/Database/Tasks/network.htm

[2] Documentación de Oracle Cloud Infrastructure

Sistemas de base de datos con hardware dedicado y máquinas virtuales

https://docs.cloud.oracle.com/es-ww/iaas/Content/Database/Concepts/overview.htm

[3]  Installing Oracle REST Data Services

https://docs.oracle.com/cd/E56351_01/doc.30/e87809/installing-REST-data-services.htm#AELIG7217

[4] 

https://oracle-base.com/articles/12c/multitenant-transparent-data-encryption-tde-12cr1

[5] REST Data Services Installation, Configuration, and Development Guide

https://docs.oracle.com/cd/E56351_01/doc.30/e87809/multitenant-architecture-with-REST.htm#AELIG-GUID-D6D6B194-EBCD-4D4C-8B5D-2451A565DD82

[6] Using the Multitenant Architecture with Oracle REST Data Services

https://docs.oracle.com/cd/E56351_01/doc.30/e87809/multitenant-architecture-with-REST.htm#AELIG-GUID-D6D6B194-EBCD-4D4C-8B5D-2451A565DD82

[7] Instalar Oracle APEX 18.2 en una Base de Datos Oracle XE 18C Usando ORDS

https://www.oracle.com/technetwork/es/articles/apex/instalar-oracle-apex18-5487195-esa.html

[8] Creating a Workspace and Adding Oracle Application Express Users

https://www.oracle.com/technetwork/es/articles/apex/instalar-oracle-apex18-5487195-esa.html
https://docs.oracle.com/database/apex-5.1/HTMIG/creating-workspace-adding-Oracle-AE-users.htm#HTMIG29178

[9] How To Run Expdp In Pluggable Database(PDB)

https://dbaclass.com/article/get-export-dump-pluggable-database/

[10]Oracle Database 12c: Transporte de “Tablespaces” de “11.2.0.3” a “12.1”

https://www.oracle.com/technetwork/es/articles/database-performance/transporte-tablespace-11-a-12-part3-2111105-esa.html

[]

http://www.dba-oracle.com/t_ora_39112_dependent_object.htm

[]

http://www.oracleops-support.com/2018/11/ora-39346-data-loss-in-character-set.html
\"\"

My Oracle Support

Doc ID 2058706.1.  APEX Unavailable After the Expiration of the APEX_PUBLIC_USER Password – 503 Service Unavailable or 404 Page not Found (Doc ID 2058706.1)

SYMPTOMS

The following errors may be seen in the web server related logs:

ORA-28001 ORA-28001: the password has expired (Associated with the HTTP-503 error.)

ORA-01017: invalid username/password; logon denied (Associate with the HTTP-403 error.)

If running ORDS in standalone mode, the ords.log will contain information similar to the following as well as the ORA-28001 / ORA-01017 error:

INFO: Validating pool: |apex||

May 29, 2018 7:25:31 PM

SEVERE: The username or password for the connection pool named apex, are invalid, expired, or the account is locked

oracle.dbtools.common.jdbc.ConnectionPoolConfigurationException: The username or password for the connection pool named apex, are invalid, expired, or the account is locked

at oracle.dbtools.common.config.db.DatabasePools.validateConnection(DatabasePools.java:427)

CAUSE

No profile exists for the APEX_PUBLIC_USER, APEX_LISTENER, APEX_REST_PUBLIC_USER and ORDS_PUBLIC_USER accounts and therefore the password expires in 180 days.

After adding a profile with password_life_time unlimited, the issue will not re-occur

SOLUTION

1. Execute the following command from SQL Plus as the SYS user: 

Alter user ords_public_user identified by xxxx;

ALTER USER ORDS_PUBLIC_USER ACCOUNT UNLOCK;

In a 12c database, this should be done in the container database. If you are connected to the PDB, you will receive the error:

ORA-65066: The specified changes must apply to all containers

show con_name should return CDB$ROOT.

To switch to the container database:

ALTER SESSION SET container = CDB$ROOT;

In a 12c database, this should be done in the pluggable database.

select name, open_mode, restricted from v$pdbs;

To switch to the container database:

ALTER SESSION SET container = PDB1;

Where PDB1 is the PDB name returned from v$pdbs.

Alter user APEX_PUBLIC_USER identified by xxxx;

Alter user APEX_REST_PUBLIC_USER identified by xxxx;

Alter user APEX_LISTENER identified by xxxx;

NOTE:  For DBaaS instances, the password should be the same one used at instance creation time / same as the SYS password.

2. Unlock the users:

ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK;

ALTER USER APEX_REST_PUBLIC_USER ACCOUNT UNLOCK;

ALTER USER APEX_LISTENER ACCOUNT UNLOCK;

ALTER USER ORDS_PUBLIC_USER ACCOUNT UNLOCK;

3. Now create a profile for the APEX related users:

Create profile apex_public_profile limit password_life_time unlimited;

For multi-tenant databases, this step is performed in the PDB.

4. Assign the profile to the APEX users:

alter user apex_public_user profile apex_public_profile;

alter user apex_rest_public_user profile apex_public_profile;

alter user apex_listener profile apex_public_profile;

alter user ords_public_user profile apex_public_profile;

5. Restart ORDS and retest. See:

https://docs.oracle.com/en/cloud/paas/database-dbaas-cloud/csdbi/administer-ords.html

Doc ID 2408087.1. ORA-28003, ORA-20202 Installing ORDS In a 12c Database (Doc ID 2408087.1)

SYMPTOMS

SEVERE: Error executing script: ords_create_schema.sql Error: ORA-20202:

ERROR: An error occurred during ORDS_METADATA

creation. ORA-28003: password verification for the specified password failed

ORA-06512: at line 62

SOLUTION
The issue will be fixed in a future version of ORDS, and that version will include generation of stronger passwords.  In the meantime, the follow workaround can be used.
Temporarily disable the password verify function:

1. Disable the password verify function:

SQL> alter profile default limit password_verify_function null; 

2.  Install ORDS as usual.

3.  Re-Enable the the password verify function:

SQL> alter profile default limit password_verify_function ORA12C_STRONG_VERIFY_FUNCTION ;   

Matar una 

SELECT SID, SERIAL#, STATUS, SERVER FROM V$SESSION WHERE USERNAME = \’XXSCHEMA_CONTRATOS\’;

ALTER SYSTEM KILL SESSION \’207, 14397\’;

\"\"