Oracle Database 23ai FREE – Instalação Simplificada no Oracle Linux 8 Com Uma Única Linha de Comando

Atualizado 06/09/2024.

As etapas para instalação do Oracle Database 23ai FREE Developer já são bem simples por si só, mas eu busquei facilitar um pouco mais minha vida para subir laboratórios rápidos com a versão de teste do Oracle DB 23ai recém lançado.

Tenho montado alguns laboratórios com Oracle Database 23ai – FREE, onde organizei todos os comandos necessários para realizar a instalação usando todas as configurações padrão, de forma que possibilite o processo de instalação e configuração em um único comando.

1) Instalação simplificada em uma única linha de comando:

curl https://raw.githubusercontent.com/maiconcarneiro/blog-dibiei/main/oracle_23c-free_install.sh | bash

O pré requisito é ter a VM criada com Oracle Linux 8 (minimal software installation)

2) Conteúdo do script:

#!/bin/bash
# Maicon Carneiro - Salvador BA | 27/04/2023 - Created
# Maicon Carneiro - Salvador BA | 06/09/2024 - Last update

systemctl stop firewalld
systemctl disable firewalld

# 1) add o IP e hostname no /etc/hosts
export IP_ATUAL=$(ip a | grep -A2 "ether" | grep inet | awk '{print $2}' | awk -F "/" '{print $1}')
export HOSTNAME_ATUAL=$(hostname)
echo "$IP_ATUAL $HOSTNAME_ATUAL" >> /etc/hosts

# 2) preinstall
#dnf update -y
dnf install -y oraclelinux-developer-release-el8
dnf config-manager --set-enabled ol8_developer
dnf -y install oracle-database-preinstall-23ai

# 3) download
curl -L -o oracle-database-free-23ai-1.0-1.el8.x86_64.rpm https://download.oracle.com/otn-pub/otn_software/db-free/oracle-database-free-23ai-1.0-1.el8.x86_64.rpm

# 4) install 
dnf -y localinstall oracle-database-free-23ai-1.0-1.el8.x86_64.rpm

# 5) configure (silent com a senha padrao = oracle)
(echo "oracle"; echo "oracle";) | /etc/init.d/oracle-free-23ai configure

# 6) set env
echo 'export ORACLE_SID=FREE' >> /home/oracle/.bash_profile
echo 'export ORACLE_BASE=/opt/oracle' >> /home/oracle/.bash_profile
echo 'export ORACLE_HOME=/opt/oracle/product/23ai/dbhomeFree' >> /home/oracle/.bash_profile
echo 'export PATH=$ORACLE_HOME/bin:$PATH' >> /home/oracle/.bash_profile

echo "
FREEPDB1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP) ( HOST = $(hostname) ) (PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = FREEPDB1)
    )
  )
" >> /opt/oracle/product/23ai/dbhomeFree/network/admin/tnsnames.ora

# 7) Cria o esquema de exemplo HR
su - oracle

curl -L -o sample_schemas.zip https://github.com/oracle-samples/db-sample-schemas/archive/refs/tags/v23.1.zip
unzip sample_schemas.zip

sqlplus system/oracle@freepdb1 <<EOF
create user hr identified by oracle quota unlimited on users;
grant DB_DEVELOPER_ROLE to hr;

conn hr/oracle@freepdb1 
@db-sample-schemas-23.1/human_resources/hr_create.sql
@db-sample-schemas-23.1/human_resources/hr_populate.sql
@db-sample-schemas-23.1/human_resources/hr_code.sql

set pages 100
set lines 400
col object_name format a30
col object_type format a20
select object_type, object_name, created, status from user_objects order by 1;
quit;
EOF

3) O que o script faz

  • Adiciona uma entrada no arquivo /etc/hosts com o IP e HOSTNAME da máquina atual
  • Atualiza os pacotes do SO
  • Adiciona e habilita o repositório ol8_developer
  • Instala o pacote que executa todos os préreqs de instalação do Oracle Database 23ai
  • Download do rpm de instalação do Oracle Database 23ai FREE Developer no site da Oracle
  • Executa a o rpm de instalação do Oracle 23ai
  • Cria o banco de dados FREE com todas as configurações padrão
  • Adiciona as variáveis de ambiente no .bash_profile do usuário “oracle”
  • Adiciona um ALIAS para o PDB FREEPDB1 no arquivo tnsnames.ora
  • Cria o esquema de exemplo HR

NOTA: Todas as senhas dos usuários SYS, SYSTEM, PDBADMIN e HR são “oracle”.

O script não faz validação entre uma etapa e outra, mas se tudo ocorrer bem, o resultado final deve ser similar ao print abaixo (relação de objetos criados no owner HR):

Leave a Reply

Scroll to Top

Discover more from Blog do Dibiei

Subscribe now to keep reading and get access to the full archive.

Continue reading