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):
