Escolar Documentos
Profissional Documentos
Cultura Documentos
“Tarefa 01 – O inicio : a Empresa DIA-A-DIA acabou de abrir as portas, para Suportar as suas Aplicações
precisa de um banco Oracle – para Atender á solicitação, instalar o Virtualbox, criar um ele uma VM com
Oracle Enterprise Linux 7.9 (o mais recente da família 7.x) , e nessa VM instalar o RDBMS Oracle XE 18c.
O Objetivo final é que haja nesse Ambiente um Container Database (que pode ser o default XE que a
instação vai criar) , mas esse CDB será reservado apenas pára tarefas administrativas, a Aplicação vai
consumir/conectar no Pluggable database chamado DB_APP que deverá ser controlado/gerenciado pelo
Container Database.
No database DB_APP, criar um schema APP_OWNER para ser o schema aonde residirão os objetos da
Aplicação todos, criar a(s) tablespace(s) necessárias para armazenar os futuros objetos da Aplicação (em
princípio haverão apenas tabelas e índices como objetos armazenáveis em disco fora da tablespace
SYSTEM), criar um usuário DB_ADMIN para gerenciar o banco (com privs de CREATE SESSION, RESOURCE,
SELECT ANY DICTIONARY, SELECT_CATALOG_ROLE, EXECUTE_CATALOG_ROLE,
RESOURCE e SCHEDULER_ADMIN, bem como de SELECT em qualquer V$ e/ou view DBA_xxxx).
Criar também os usuários de banco (E os objetos de banco que futuramente possam ajudar na separação
de privilégios de cada usuário em cada setor : HUGUINHO, ZEZINHO e LUISINHO do setor CONTABILIDADE,
os usuários DONALD e PENINHA (do setor VENDAS/COMERCIAL) e o usuário PATINHAS, que será o gerente-
geral e portanto no futuro terá acesso a qualquer objeto da Aplicação.”
Avançando no Assistente , criar um disco rígido virtual de 30 GB (para não haver falta de espaço) , a
máquina será criada . Selecionando a VM recém-criada, no menu de Configuração, no item Geral aba
Avançado informar :
No item Sistema, aba processador, indicar 4 processadores virtuais, na aba Monitor indicar o máximo
possível de memória de Vídeo, e no item Armazenamento indicar o .ISO como imagem para o DVD
virtual :
No item Rede, desabilitar todas as interfaces de rede (serão habilitadas depois) , e se desejado (para
facilitar transferências de/para máquina física x VM) indicar no item Pastas compartilhadas uma pasta
da máquina física que poderá ser acessada pela VM.
Ativando a VM com duplo-click no nome dela, será exibida a tela inicial do .ISO Linux, escolher a
primeira opção, Install . Não é obrigatório, mas é recomendado na tela de escolha de Linguagem a ser
usada na instalação escolher Português brasileiro, para que assim o SO seja automaticamente
configurado para permitir e exibir Acentos :
No item “Sistema” aceitar os defaults para partição de disco e , Opcionalmente, pode ser desativado
Kdump para poupar espaço e memória RAM .
Na tela seguinte, será solicitado senha do root user E sugerido a criação de um usuário administrativo
pessoal, recomenda-se clickar nas duas opções e informar os dados requeridos, seguindo tudo default
daí pra frente até o final da instalação.Quando a instalação terminar, será solicitado reboot, antes
disso desmontar a imagem de DVD no Virtualbox, menu Configurações da Vm item “Storage”.
É totalmente Opcional, mas é Muito Recomendado que , depois do reboot e da finalização da
configuração que acontecerá após o login , que se faça o desligamento da máquina Linux clickando no
ícone de Energia no topo da tela e escolhendo o botão de desligamento :
Com a VM desligada, no menu Configuração item rede, criar um adaptador de rede do tipo host-only
e um adaptador do tipo Bridge :
Iniciada novamente a VM , antes de proceder à instalação do Oracle XE 18c que já foi previamente
baixado em https://www.oracle.com/br/database/technologies/xe-downloads.html opcionalmente
se pode montar um CD virtual com a imagem do software de Adicionais de Convidados :
Isso é útil especialmente se o Sistema Operacional da máquina física for Windows, pois com esse
software instalado, se obtém drivers de I/O melhores, resoluções de tela maiores no Linux, e
melhorias do tipo.
Instalação do software Oracle XE 18c : logado no console gráfico com o usuário administrador que foi
criado, se necessário Ativar as interfaces de rede no mesmo ícone de rede anteriormente indicado,
abrir prompt de comando :
Nesse prompt de comando, passar para o usuário root com su - :
E o restante da instalação será feito como root nesse prompt de comando, executando os 3
comandos indicados em https://jlc1967.wordpress.com/2021/09/05/instalacao-oracle-xe-18c-sob-
oracle-linux-7/ , a saber :
(em havendo já sido transferido para a pasta atual o arquivo .rpm de instalação, previamente
baixado) e, depois dos dois anteriores:
/etc/init.d/oracle-xe-18c configure
Este último .rpm é que cuidará da criação do database Oracle e do usuário Linux chamado oracle.
Não será usado aqui no Bootcamp, mas há algumas utilidades de interesse presentes no Oracle
Enterprise Manager Database Express, a versão ultra-reduzida do Oracle Enteprise Manager que é
instalada junto com o Oracle XE – porém, como ele usa o plugin Flash Player, cujo Suporte foi encerrado
nos principais browsers de Internet, quem se interessar pelo OEM DBEXPRESS , pode baixar qualquer
browser que ainda suporte Flash, como o OPERA (basta fazer um Ajuste nas configurações) ou o
Centbrowser
o usuário Linux chamado oracle (que foi criado pelo instalador) por segurança vem Bloqueado, se for
desejado o desbloquear, para que se possa logar diretamente com ele, nas Configurações do sistema
(acessando pelo menu Aplicativos, item Sistema) :
tanto o sqlplus quanto o rman (que são ferramentas interativas do Oracle) não possuem no Linux a
funcionalidade de recuperar o comando anteriormente executado teclando seta para cima no
teclado: para se adicionar essa funcionalidade, baixar o utilitário rlwrap (como root) :
- o shell de comandos default carregado ao abrir um prompt de comandos é o bash shell , para
Automatizar qualquer Ação desejada para quando um usuário, basta editar o arquivo
/home/nomedousuario/.bash_profile , alterei o meu para que seja criada a variável NLS_LANG e que
seja executado o ORAENV :
[jchiappa@localhost ~]$ su -
Senha:
Último login:Qui Set 16 22:24:47 -03 2021em pts/0
[root@localhost ~]# cat /home/oracle/.bash_profile
# .bash_profile
# Chamar oraenv
ORACLE_SID=XE
ORAENV_ASK=NO
. oraenv
#criar variável NLS_LANG, que no XE tem que ser sempre com Characterset UTF
export NLS_LANG="BRAZILIAN PORTUGUESE_BRAZIL.AL32UTF8"
[root@localhost ~]#
a ferramenta default para conexão ao banco é o sqlplus , e ele possui diversas capacidades de
configuração/automação no arquivo $ORACLE_HOME/sqlplus/admin/glogin.sql : aqui ela foi
configurada para formatar algumas colunas que os DBAs consultam frequentemente, e para mostrar
no prompt do sqlplus em qual database/container a sessão está logada :
-- definições extras
SET SERVEROUTPUT ON SIZE UNLIMITED
SET LINES 180 PAGES 50000 FEED ON
SET LONG 1000000
SET TRIMSPOOL ON
SET TAB OFF
-- colunas extras que sempre uso
column host format a30
column file_name format a50
column member format a60
column name format a33
column column_name format a30
column object_name format a30
column file_name format a68
column what format a30 word_wrapped
column parameters format a15 trunc
column data_type format a15
column owner format a16
column username format a24
column host format a12
column db_link format a23
COLUMN message format a100
COLUMN units format a15
COLUMN target format a48
COLUMN opname format a35
column segment_name format a35
column external_name format a20
column sum(bytes) format 999G999G999G999G999G999
column result format 999G999G999G999G999G999
column resultado format 999G999G999G999G999G999
column sid format 999
column serial# format 99999
column audsid format 9999999
column user# format 999
column def_parameters format A20
column comments format a100
column min(partition_name) format a14
column max(partition_name) format a14
column bytes format 99G999G999G999G990
-- set term on para voltar ao normal
set term off
column where new_value CONT format a50
SELECT 'CNTNR='||SYS_CONTEXT('USERENV','CON_NAME')
"WHERE"
FROM DUAL;
-- definir o prompt
set sqlprompt "_USER'@'_CONNECT_IDENTIFIER::&&CONT> "
set term on
define _EDITOR=vi
column name format a33
[oracle@localhost ~]$
Vide na config anterior que o LINESIZE (tamanho da linha, abreviado no script apenas para LINES, isso
é aceito) no sqlplus foi definido para 1000 : por causa disso, comandos como DESCRIBE (que pode ser
abreviado para DESC, serve para mostrar a estrutura de um objeto) ficam desconfigurados na tela, a
solução é criar (no mesmo local onde o sqlplus vai ser usado) um arquivo desc.sql , que recebe um
argumento e será executado no logar do comando DESC, assim :
[oracle@localhost ~]$
Configurações externas feitas, dando prosseguimento à tarefa, o primeiro passo será criar o pluggable
database DB_APP exigido : antes do procedimento, consultaremos a situação corrente :
4 linhas selecionadas.
SYS@XE::CNTNR=CDB$ROOT>
Não é obrigatório, mas para melhor organização, criar uma nova pasta DB_APP abaixo da pasta
principal XE – poderia ser feito no prompt de comando mas será feito de dentro do sqlplus apenas
para demonstrar :
SYS@XE::CNTNR=CDB$ROOT> host mkdir /opt/oracle/oradata/XE/DB_APP
SYS@XE::CNTNR=CDB$ROOT>
(Há Diversas possibilidades para se criar um novo pluggable database, entre elas GUis como ORACLE
ENTERPRISE MANAGER, ORACLE SQL DEVELOPER, etc, mas no exemplo será usado o sqlplus) :
SYS@XE::CNTNR=CDB$ROOT> ALTER SESSION SET
PDB_FILE_NAME_CONVERT='/opt/oracle/oradata/XE/pdbseed/', '/opt/oracle/oradata/XE/DB_APP/';
Sessão alterada.
3 linhas selecionadas.
3 linhas selecionadas.
7 linhas selecionadas.
SYS@XE::CNTNR=CDB$ROOT>
SYS@XE::CNTNR=CDB$ROOT>
Antes de executar a porção final da tarefa, configurar o ambiente para que a instância se inicie
automaticamente, que o novo database DB_APP seja acessível por TNS e que o default, se não for
informado @entradatns , seja conexão à esse database DB_APP :
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
DB_APP =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = db_app)
)
)
LISTENER_XE =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
TNS Ping Utility for Linux: Version 18.0.0.0.0 - Production on 17-SET-2021 19:03:55
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
# Chamar oraenv
ORACLE_SID=XE
ORAENV_ASK=NO
. oraenv
#criar variável NLS_LANG, que no XE tem que ser sempre com Characterset UTF
export NLS_LANG="BRAZILIAN PORTUGUESE_BRAZIL.AL32UTF8"
Informe a senha:
Horário do último log-in bem-sucedido: Sex Set 17 2021 16:55:14 -03:00
Conectado a:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
SYSTEM@XE::CNTNR=CDB$ROOT> exit
Desconectado de Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
[oracle@localhost ~]$ export TWO_TASK=db_app
[oracle@localhost ~]$ echo $TWO_TASK
db_app
[oracle@localhost ~]$ sqlplus system
Informe a senha:
Horário do último log-in bem-sucedido: Sex Set 17 2021 19:05:26 -03:00
Conectado a:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
SYSTEM@db_app::CNTNR=DB_APP> exit
Desconectado de Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
[oracle@localhost ~]$~
[root@localhost ~]#