GPO ( Grupo de Profissionais Oracle )
A maior comunidade Oracle do Brasil !

Instalando o APEX e o ORDS

Instalando o APEX e o ORDS

Olá pessoal !

Hoje eu irei mostrar a vocês como instalar o APEX e o ORDS, para isso, utilizarei o meu container com o Oracle 19c EE que criei no meu último artigo. Para saber como criar o seu, clique no link abaixo:

A versão e distribuição do Linux no container é o Red Hat Enterprise Linux 7.9 e o banco de dados é o Oracle 19c EE 19.3.0. A versão do APEX é a 22.1 e a do ORDS é a 21.2.

Para fazer o download, basta clicar nos links abaixo:

Entenda que o fato de eu estar instalando o APEX e o ORDS diretamente no container, não muda os procedimentos feitos em uma instalação padrão (com SO e banco instalados em uma máquina física ou VM). Se esse for o seu caso, apenas pule os comandos referentes ao docker. Eles aqui constarão, apenas para que aqueles que acompanharam o último artigo, possam efetuar a instalação utilizando o mesmo container.

Então vamos lá !

Copiando as instalações para o container

Primeiro, iremos conectar no container como root, para isso, utilizaremos o comando abaixo:

sudo docker exec -it -u 0 oracle19c /bin/bash

O argumento -u 0 utiliza o id 0 (root) para se conectar no container.

Agora vamos copiar os arquivos do APEX e do ORDS para o container. Para isso, usarei o comando docker cp.

sudo docker cp ords-21.2.0.174.1826.zip 7c71ae50073c7256ffbaae4ee85e5b78bff93cbba02c41b80f78a973fb0feee5:/opt/ords

Sendo:

docker cp <arquivo> <container id>:<path>

Agora faremos a cópia do APEX para o container.

sudo docker cp V1020797-01.zip 7c71ae50073c7256ffbaae4ee85e5b78bff93cbba02c41b80f78a973fb0feee5:/opt

Agora vamos descompactar os arquivos.

unzip V1020797-01.zip
cd ords
unzip ords-21.2.0.174.1826.zip

Instalando o APEX

Agora vamos instalar o APEX.

Primeiro vamos setar a variável APEX_SOFTLOC com a localização da instalação do APEX.

export APEX_SOFTLOC=/opt/apex

Vamos ao diretório de instalação do APEX.

cd $APEX_SOFTLOC

Conectemos no SQL*Plus, utilizando o usuário SYS.

sqlplus sys@ORCL as sysdba

Vamos verificar se o APEX já está instalado.

select status 
from   dba_registry 
where  comp_id = 'APEX'
/

Verifique que não há instalações anteriores do APEX, portanto, vamos continuar a nossa instalação.

Verifiquemos se estamos conectados no PDB.

show con_id con_name

Hora de criar os tablespaces APEX_DATA e APEX_FILE.

create tablespace APEX_DATA datafile 'tbs_apex_data' size 1G autoextend on;
create tablespace APEX_FILE datafile 'tbs_apex_file' size 1G autoextend on;

Após todos os preparativos, finalmente iremos iniciar a instalação do APEX. O primeiro script a ser executado é o apexins.sql. Nele, vamos informar as tablespaces de dados e arquivos, além do TEMP.

@apexins.sql APEX_DATA APEX_FILE TEMP /i/

Verifiquemos agora o status da instalação:

select status from dba_registry where comp_id = 'APEX'

Instalação efetuada com sucesso !

Hora de verificarmos as instalações dos USUÁRIOS.

select * 
from  all_users 
where username LIKE '%APEX%' 
or    username LIKE '%FLOWS%';

Tudo ok ! Vamos DESBLOQUEAR a conta APEX_PUBLIC_USER.

alter user APEX_PUBLIC_USER account unlock identified by <password>;

Chegou o momento de habilitarmos os servicos de rede:

BEGIN
   DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE
     (
      host => '*'
     ,ace => xs$ace_type
               (
                privilege_list => xs$name_list('connect')
               ,principal_name => 'APEX_220100' 
               ,principal_type => xs_acl.ptype_db
               )
     );
END;
/

Substitua o principal_name pelo usuário sua instalação. No meu caso, é o APEX_220100.

Iremos agora configurar o servico RESTful. Isso será feito através do script apex_rest_config.sql.

Siga as instruções e cadastre a senha do usuário APEX_LISTENER.

@apex_rest_config.sql

Por último, acessemos novamente o SQL*Plus com o usuário SYS, e executemos os comandos abaixo:

SHOW PARAMETER job_queue_processes

Se o valor for do JOB_QUEUE_PROCESSES for menor que 20, execute o comando abaixo:

ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 20;

Instalação do APEX concluído com sucesso ! Parabéns !

Instalando o ORDS

Para iniciarmos a instalação do ORDS, primeiramente vamos setar algumas variáveis de ambiente para nos ajudar na instalação. Serão elas a JAVA_HOME, ORDS_SOFTLOC e a PATH.

A JAVA_HOME já é auto explicativa:

export JAVA_HOME=/opt/oracle/product/19c/dbhome_1/jdk/jre/bin

A ORDS_SOFTLOC é o path da instalação do ORDS:

export ORDS_SOFTLOC=/opt/ords

Na PATH será incluída a JAVA_HOME para não termos que digitar o caminho para executar o Java:

export PATH=$JAVA_HOME/bin:$PATH

Executando o instalador

cd $ORDS_SOFTLOC
java -jar ords.war setup advanced

O instalador iniciará a instalação do REST Data Services.

This Oracle REST Data Services instance has not yet been configured.
Please complete the following prompts


Enter the location to store configuration data: /opt/ords/config
Specify the database connection type to use.
Enter number for [1] Basic  [2] TNS  [3] Custom URL [1]:
Enter the name of the database server [localhost]:
Enter the database listen port [1521]:
Enter 1 to specify the database service name, or 2 to specify the database SID [1]:

Enter the database service name:ORCL

Enter 1 if you want to verify/install Oracle REST Data Services schema or 2 to skip this step [1]:
Enter the database password for ORDS_PUBLIC_USER:
Confirm password:
Requires to login with administrator privileges to verify Oracle REST Data Services schema.

Enter the administrator username:sys

Enter the database password for SYS AS SYSDBA:
Confirm password:
Connecting to database user: SYS AS SYSDBA url: jdbc:oracle:thin:@//localhost:1521/ORCL

Retrieving information.
Enter the default tablespace for ORDS_METADATA [SYSAUX]:
Enter the temporary tablespace for ORDS_METADATA [TEMP]:
Enter the default tablespace for ORDS_PUBLIC_USER [SYSAUX]:
Enter the temporary tablespace for ORDS_PUBLIC_USER [TEMP]:
Enter 1 if you want to use PL/SQL Gateway or 2 to skip this step.
If using Oracle Application Express or migrating from mod_plsql then you must enter 1 [1]:
Enter the PL/SQL Gateway database user name [APEX_PUBLIC_USER]:
Enter the database password for APEX_PUBLIC_USER:
Confirm password:
Enter 1 to specify passwords for Application Express RESTful Services database users (APEX_LISTENER, APEX_REST_PUBLIC_USER) or 2 to skip this step [1]:
Enter the database password for APEX_LISTENER:
Confirm password:
Enter the database password for APEX_REST_PUBLIC_USER:
Confirm password:
Enter a number to select a feature to enable:
   [1] SQL Developer Web  (Enables all features)
   [2] REST Enabled SQL
   [3] Database API
   [4] REST Enabled SQL and Database API
   [5] None
Choose [1]:
2022-05-25T21:33:11.908Z INFO        reloaded pools: []
Installing Oracle REST Data Services version 21.2.0.r1741826
... Log file written to /root/ords_install_core_2022-05-25_213312_00617.log
... Verified database prerequisites
... Created Oracle REST Data Services proxy user
... Created Oracle REST Data Services schema
... Granted privileges to Oracle REST Data Services
... Created Oracle REST Data Services database objects
... Log file written to /root/ords_install_datamodel_2022-05-25_213400_00156.log
... Log file written to /root/ords_install_apex_2022-05-25_213401_00972.log
Completed installation for Oracle REST Data Services version 21.2.0.r1741826. Elapsed time: 00:00:51.432 

ATENÇÃO: Todas as opções DEFAULT, estão com as linhas em NEGRITO. Já ás que estão em ITÁLICO, devem ser preenchidas com o valor informado.

Agora vamos configurar os arquivos estáticos. O ORDS para funcionar, precisa que a pasta images do APEX, que no nosso caso está em /opt/apex/images, seja copiado para a pasta /opt/ords/images. ^^

cp * -R /opt/ords/images/

Agora vamos prosseguir com a instalação do ORDS. Dessa vez será a configuração dos arquivos estáticos.

cd $ORDS_SOFTLOC
java -jar ords.war static /opt/ords/images/
WAR Generation complete
 WAR location     : /opt/ords/i.war
 Context path     : /i
 Static resources : /opt/ords/images/
Ensure the static resources are available at path: /opt/ords/images/
on the server where the WAR is deployed 

Finalmente chegamos ao penúltimo passo ! Vamos configurar e executar o ORDS Standalone Server.

Na primeira vez que o executarmos, ele irá configurar o ORDS Server. Já nas vezes subsequentes, ele apenas levantará o serviço.

java -jar ords.war standalone
Enter the APEX static resources location:/opt/ords/images
Enter 1 if using HTTP or 2 if using HTTPS [1]:

Enter the HTTP port [8080]:8202

2022-05-25T22:04:26.750Z INFO        HTTP and HTTP/2 cleartext listening on host: localhost port: 8202
2022-05-25T22:04:26.783Z INFO        Disabling document root because the specified folder does not exist: /opt/ords/config/ords/standalone/doc_root
2022-05-25T22:04:30.767Z INFO        Configuration properties for: |apex|al|
database.api.enabled=true
db.connectionType=basic
db.hostname=localhost
db.port=1521
db.servicename=ORCL
feature.sdw=true
restEnabledSql.active=true
security.requestValidationFunction=wwv_flow_epg_include_modules.authorize
security.validationFunctionType=plsql
db.password=******
db.username=APEX_LISTENER
resource.templates.enabled=true

2022-05-25T22:04:30.769Z WARNING     *** jdbc.MaxLimit in configuration |apex|al| is using a value of 10, this setting may not be sized adequately for a production environment ***
2022-05-25T22:04:30.769Z WARNING     *** jdbc.InitialLimit in configuration |apex|al| is using a value of 3, this setting may not be sized adequately for a production environment ***
2022-05-25T22:04:34.097Z INFO        Configuration properties for: |apex||
database.api.enabled=true
db.connectionType=basic
db.hostname=localhost
db.port=1521
db.servicename=ORCL
feature.sdw=true
restEnabledSql.active=true
security.requestValidationFunction=wwv_flow_epg_include_modules.authorize
security.validationFunctionType=plsql
db.password=******
db.username=APEX_PUBLIC_USER
resource.templates.enabled=true

2022-05-25T22:04:34.097Z WARNING     *** jdbc.MaxLimit in configuration |apex|| is using a value of 10, this setting may not be sized adequately for a production environment ***
2022-05-25T22:04:34.098Z WARNING     *** jdbc.InitialLimit in configuration |apex|| is using a value of 3, this setting may not be sized adequately for a production environment ***
2022-05-25T22:04:34.353Z INFO        Configuration properties for: |apex|pu|
database.api.enabled=true
db.connectionType=basic
db.hostname=localhost
db.port=1521
db.servicename=ORCL
feature.sdw=true
restEnabledSql.active=true
security.requestValidationFunction=wwv_flow_epg_include_modules.authorize
security.validationFunctionType=plsql
db.password=******
db.username=ORDS_PUBLIC_USER
resource.templates.enabled=true

2022-05-25T22:04:34.354Z WARNING     *** jdbc.MaxLimit in configuration |apex|pu| is using a value of 10, this setting may not be sized adequately for a production environment ***
2022-05-25T22:04:34.354Z WARNING     *** jdbc.InitialLimit in configuration |apex|pu| is using a value of 3, this setting may not be sized adequately for a production environment ***
2022-05-25T22:04:34.623Z INFO        Configuration properties for: |apex|rt|
database.api.enabled=true
db.connectionType=basic
db.hostname=localhost
db.port=1521
db.servicename=ORCL
feature.sdw=true
restEnabledSql.active=true
security.requestValidationFunction=wwv_flow_epg_include_modules.authorize
security.validationFunctionType=plsql
db.password=******
db.username=APEX_REST_PUBLIC_USER
resource.templates.enabled=true

2022-05-25T22:04:34.623Z WARNING     *** jdbc.MaxLimit in configuration |apex|rt| is using a value of 10, this setting may not be sized adequately for a production environment ***
2022-05-25T22:04:34.624Z WARNING     *** jdbc.InitialLimit in configuration |apex|rt| is using a value of 3, this setting may not be sized adequately for a production environment ***
2022-05-25T22:04:37.593Z INFO        Oracle REST Data Services initialized
Oracle REST Data Services version : 21.2.0.r1741826
Oracle REST Data Services server info: jetty/9.4.42.v20210604

ATENÇÃO: Na primeira opção, mantive o DEFAULT que é o http. Já ao definir a porta, eu escolhi a 8202 ao invés da 8080.

A razão para mudança de porta, é que vários serviços utilizam a porta 8080. Para evitar conflitos, foi escolhida a 8202.

Abra o navegador e digite:

http://localhost:8202/ords

Se essa tela apareceu para você, parabéns !!!! APEX e ORDS instalados com sucesso ! 🙂

Agora vem a pergunta de ouro. Qual o workspace, username e password eu utilizo ?!?!?

Lembra-se que eu escrevi acima, que configurar e executar o ORDS Server era o PENÚLTIMO passo da instalação ? Bem, agora iremos para o ÚLTIMO !

Até pensei em explicar isso em um outro artigo, mas pensei bem e vi que seria muita MALDADE. Imagine chegar até esse ponto, e não conseguir logar ? rs

Configurando o usuário ADMIN do APEX

Voltemos ao diretório de instalação do APEX.

cd $APEX_SOFTLOC

Conectemos novamente no SQL*Plus com o usuário SYS.

sqlplus sys@ORCL as sysdba

Vamos agora executar o script apxchpwd.sql e cadastrar uma senha para o usuário ADMIN.

O atributo alt desta imagem está vazio. O nome do arquivo é Screenshot-from-2022-05-26-20-46-36.png

Pronto, usuário ADMIN resolvido ! Mas como ficam as credenciais para conexão no ORDS ?

Não vou entrar a fundo no APEX e no conceito de workspace. Já que não é esse o objetivo do artigo. Mas vou ensinar o suficiente para se criar o workspace e usuário, e assim se conectar no ORDS.

Criando workspace e usuário no APEX

Vamos acessar o APEX através da url abaixo:

http://localhost:8082/apex/apex_admin

Entre com o usuário ADMIN e a senha que você definiu.

Agora é só criar o seu workspace/usuário e depois conectar no ORDS.

Conectando no ORDS

Com o workspace e usuário criados, acesse o link abaixo para se conectar ao ORDS:

http://localhost:8202/ords

Faça o login com o workspace/usuário criados.

Parabéns !!!! Tudo instalado, configurado e funcionando !!!!!

Espero que esse artigo tenha sido de grande valia e que ajude nos estudos daqueles interessados em ORDS.

No próximo artigo, mostrarei como configurar e administrar o REST Data Services no SQL Developer !

Referências

Share

You may also like...

Deixe um comentário

O seu endereço de e-mail não será publicado.