# Oracle Database 23ai Free RPM Installation on Oracle Linux 8 (OL8)

O **Oracle Database 23ai Free** permite instalar um banco Oracle no Oracle Linux 8 por meio de pacotes RPM, sem usar o instalador gráfico. Este guia apresenta as etapas de preparação, instalação, configuração, validação e troubleshooting, além de explicar os limites da edição Free e sua diferença em relação às edições comerciais.

> **Escopo e versão:** este tutorial trata especificamente do **Oracle Database 23ai Free para Oracle Linux 8 x86-64**. A Oracle também disponibiliza a linha **26ai**, cujos pacotes e scripts possuem nomes diferentes. Não misture comandos das duas versões. O procedimento abaixo foi revisado documentalmente, mas não executado em laboratório como parte deste artigo.

## 1. O que significa Oracle Database Free?

A edição **Free** é uma distribuição gratuita do Oracle Database, voltada especialmente a aprendizado, desenvolvimento e testes. Não é uma Enterprise Edition integral disponibilizada sem licença. Ela oferece SQL, PL/SQL e arquitetura multitenant, mas impõe limites específicos de utilização e não inclui o mesmo suporte comercial das edições licenciadas.

### Limitações da edição 23ai Free

| Recurso | Limitação |
|---|---|
| CPU | O banco utiliza até **2 cores** |
| Memória | Até **2 GB** de memória para o banco |
| Dados de usuário | Até **12 GB** |
| Instalações | **Uma instalação Free por ambiente lógico** (host físico, VM ou contêiner) |
| Suporte | Sem suporte comercial convencional |

O limite de processamento e memória continua valendo mesmo que o servidor tenha mais recursos disponíveis. O limite de 12 GB diz respeito aos dados de usuário, e não ao tamanho total dos binários e arquivos internos.

Uma segunda instalação Free no mesmo ambiente lógico não é uma maneira válida de contornar as restrições. Consulte os termos oficiais da edição antes de adotar o produto em produção.

### Free, Standard Edition 2 e Enterprise Edition

| Característica | Free | Standard Edition 2 (SE2) | Enterprise Edition (EE) |
|---|---|---|---|
| Licença gratuita | Sim, conforme termos | Não | Não |
| Limites de 2 cores, 2 GB e 12 GB da Free | Sim | Não | Não |
| SQL e PL/SQL | Sim | Sim | Sim |
| Recursos avançados | Restritos pela edição | Conforme recursos e limites da SE2 | Mais amplos, conforme opções licenciadas |
| Suporte comercial convencional | Não | Disponível por contrato | Disponível por contrato |

**O RPM Free instala SE2 ou EE? Não.** O pacote `oracle-database-free-23ai-1.0-1.el8.x86_64.rpm` e o script `oracle-free-23ai configure` são próprios da edição Free. Instalações SE2/EE devem seguir a mídia e a documentação correspondentes à edição e versão, com verificação de certificação do sistema operacional e de licenciamento. A existência de comandos SQL ou funcionalidades na documentação geral não implica autorização de uso em todas as edições.

## 2. Arquitetura do laboratório

```text
Oracle Linux 8 (x86-64)
└── Oracle Database 23ai Free
    ├── ORACLE_BASE: /opt/oracle
    ├── ORACLE_HOME: /opt/oracle/product/23ai/dbhomeFree
    ├── Listener: TCP/1521
    └── CDB: FREE
        └── PDB: FREEPDB1
```

O RPM instala os binários. O CDB `FREE` e a PDB `FREEPDB1` são criados posteriormente pelo script de configuração.

## 3. Pré-requisitos do Oracle Linux 8

Utilize **Oracle Linux 8 x86-64**, com acesso aos repositórios e permissões administrativas. A documentação específica do 23ai informa aproximadamente **9 GB de espaço em /opt** para a instalação; reserve espaço adicional para operações e crescimento. A instalação não suporta links simbólicos para `/opt/oracle`.

```bash
cat /etc/oracle-release
uname -m
free -h
df -h /opt
sudo dnf repolist
```

**Atenção:** antes de instalar, verifique a existência de Oracle Database XE/Free ou bancos com SID `XE` ou `FREE`. A documentação prevê a remoção de instalações conflitantes, mas **não remova nenhum banco existente sem backup, inventário e plano de migração**.

Atualizações do sistema devem ocorrer em janela apropriada:

```bash
sudo dnf update -y
```

## 4. Instalar o pacote de pré-instalação

Execute com `sudo`, a partir de uma conta com privilégios administrativos:

```bash
sudo dnf install -y oracle-database-preinstall-23ai
rpm -q oracle-database-preinstall-23ai
id oracle
```

Esse pacote prepara dependências, o usuário e os grupos Oracle e parâmetros do sistema. Revise os ajustes aplicados em hosts compartilhados.

## 5. Baixar o RPM do Oracle Database 23ai Free para OL8

```bash
mkdir -p ~/oracle23ai-install
cd ~/oracle23ai-install

curl -fJLO https://download.oracle.com/otn-pub/otn_software/db-free/oracle-database-free-23ai-1.0-1.el8.x86_64.rpm

ls -lh oracle-database-free-23ai-1.0-1.el8.x86_64.rpm
rpm -qpi oracle-database-free-23ai-1.0-1.el8.x86_64.rpm
```

Caso a URL deixe de disponibilizar o pacote, consulte a [página oficial de downloads da Oracle](https://www.oracle.com/database/technologies/free-downloads.html). **Não substitua o arquivo por um RPM 26ai sem adaptar todo o procedimento.**

## 6. Instalar o software Oracle

```bash
sudo dnf localinstall -y oracle-database-free-23ai-1.0-1.el8.x86_64.rpm

rpm -q oracle-database-free-23ai
ls -ld /opt/oracle/product/23ai/dbhomeFree
```

**Importante:** a instalação do software não significa que a instância já foi criada.

## 7. Criar e configurar o banco

Revise os parâmetros:

```bash
sudo cat /etc/sysconfig/oracle-free-23ai.conf
```

Execute:

```bash
sudo /etc/init.d/oracle-free-23ai configure
```

O script solicita uma senha inicial para **SYS**, **SYSTEM** e **PDBADMIN**, cria o CDB `FREE` e a PDB `FREEPDB1` e configura o listener na porta padrão **1521**. Utilize senha forte e evite registrá-la em scripts ou no histórico do shell.

## 8. Configurar o ambiente do usuário oracle

**Execute os comandos a seguir como o usuário de sistema operacional `oracle`**, e não como `root`:

```bash
sudo su - oracle
export ORACLE_SID=FREE
export ORAENV_ASK=NO
. /opt/oracle/product/23ai/dbhomeFree/bin/oraenv

echo "$ORACLE_HOME"
echo "$ORACLE_SID"
which sqlplus
```

O esperado é `ORACLE_SID=FREE` e `ORACLE_HOME=/opt/oracle/product/23ai/dbhomeFree`.

## 9. Validar instância, PDB e edição instalada

Ainda como usuário `oracle`:

```bash
sqlplus / as sysdba
```

```sql
SELECT instance_name, status FROM v$instance;
SELECT name, open_mode, database_role FROM v$database;
SHOW PDBS;
SELECT name, open_mode FROM v$pdbs;
SELECT banner_full FROM v$version;
SELECT product, version, status FROM product_component_version;
```

A visão `v$version` permite identificar o release e a edição instalada. A visão `product_component_version` exibe componentes e versões, mas **não substitui a avaliação de licenciamento**.

Se a PDB estiver fechada e não houver erro impedindo sua abertura:

```sql
ALTER PLUGGABLE DATABASE FREEPDB1 OPEN;
ALTER PLUGGABLE DATABASE FREEPDB1 SAVE STATE;
```

## 10. Listener e conectividade

Como usuário `oracle`, no shell:

```bash
lsnrctl status
lsnrctl services
sqlplus system@//localhost:1521/FREEPDB1
```

Informe a senha quando solicitado. Em acesso remoto, substitua `localhost` pelo hostname do servidor e restrinja TCP/1521 às redes autorizadas. **Não desabilite o firewall inteiro** para solucionar problemas de conectividade.

## 11. Administração do serviço

Execute os comandos de serviço em uma sessão de shell com `sudo`:

```bash
sudo systemctl status oracle-free-23ai
sudo systemctl start oracle-free-23ai
sudo systemctl stop oracle-free-23ai
sudo systemctl enable oracle-free-23ai
```

Confira a unidade instalada e alinhe a inicialização automática à política operacional do host.

## 12. Troubleshooting

### O pacote de pré-instalação não foi encontrado

```bash
sudo dnf repolist
sudo dnf info oracle-database-preinstall-23ai
```

Revise repositórios habilitados, DNS e conectividade.

### Espaço insuficiente em /opt

```bash
df -h /opt
sudo du -sh /opt/oracle 2>/dev/null
```

Planeje expansão ou montagem apropriada antes da instalação; não utilize symlink em `/opt/oracle`.

### ORA-12514: listener não conhece o serviço

```bash
lsnrctl services
```

Verifique se a PDB está aberta, se o service name é `FREEPDB1` e se houve registro do serviço. Não confunda o SID `FREE` com o serviço da PDB.

### ORA-01034 ou falha na conexão local

```bash
echo "$ORACLE_SID"
echo "$ORACLE_HOME"
ps -ef | grep '[p]mon'
```

Confira o ambiente e o estado da instância; consulte o alert log antes de tentar recuperação.

### Localizar o alert log

No SQL*Plus:

```sql
SELECT name, value
FROM v$diag_info
WHERE name IN ('Diag Trace', 'Alert Log');
```

## 13. Checklist de validação

- [ ] Oracle Linux 8 e arquitetura x86-64 confirmados.
- [ ] Recursos, disco e instalações preexistentes verificados.
- [ ] Pré-instalação `oracle-database-preinstall-23ai` concluída.
- [ ] RPM **23ai Free para OL8** instalado.
- [ ] Script `oracle-free-23ai configure` concluído.
- [ ] Instância `FREE` iniciada e PDB `FREEPDB1` validada.
- [ ] Edição e versão conferidas por `v$version`.
- [ ] Listener e conectividade testados.
- [ ] Limites da edição, senhas e acesso de rede revisados.

## Conclusão

A instalação via RPM simplifica a criação de laboratórios Oracle no OL8, mas é essencial diferenciar **instalação do software**, **criação do CDB/PDB** e **validação operacional**. A edição **23ai Free** é uma excelente opção de aprendizado dentro de seus limites, mas não deve ser confundida com as edições comerciais SE2 e EE. E, com a disponibilidade da linha 26ai, os leitores devem sempre confirmar que estão seguindo a documentação e os pacotes da **mesma versão**.

## Referências oficiais — específicas para 23ai

- [Oracle Database 23ai Free — Installation Guide for Linux x86-64 (PDF)](https://download.oracle.com/docs/en/database/oracle/oracle-database/23/xeinl/database-free-installation-guide-linux.pdf)
- [Oracle — Get Started with Oracle Database Free on Oracle Linux (procedimento RPM 23ai)](https://docs.oracle.com/en/learn/ol-db-free/)
- [Oracle Database Free — Downloads](https://www.oracle.com/database/technologies/free-downloads.html)
- [Oracle Database 23ai — Licensing Information](https://docs.oracle.com/en/database/oracle/oracle-database/23/dblic/)

> **Nota de atualização:** algumas páginas de documentação online redirecionam para Oracle AI Database 26ai. Para reproduzir este tutorial, priorize o **PDF de instalação 23ai** e os nomes de pacotes 23ai exibidos acima.

*Material revisado com documentação oficial. Antes de aplicar os comandos em ambiente corporativo, teste-os em laboratório e valide a certificação, os requisitos e as condições de licenciamento da versão utilizada.*
