Instalação do Oracle XE 21c com Docker Compose e Execução do Scripts SQL para Limpeza

Instalação do Oracle XE 21c com Docker Compose e Execução do Scripts SQL para Limpeza

O Oracle XE (Express Edition) 21c é uma versão gratuita e leve do banco de dados Oracle, ideal para desenvolvimento e testes. Utilizando a imagem Docker gvenzl/oracle-xe:21-slim, você pode rapidamente criar um ambiente Oracle em containers, automatizando a inicialização e execução de scripts SQL. Este artigo mostrará como instalar o Oracle XE 21c com Docker Compose e como configurar scripts para remover dados antigos.

Pré-requisitos

Antes de começar, certifique-se de que:

  • O Docker e Docker Compose estão instalados no seu sistema.
  • Você tem conhecimentos básicos de SQL para entender os scripts fornecidos.

Passo 1: Criando o Arquivo docker-compose.yml

A primeira etapa é configurar o Docker Compose para rodar o Oracle XE 21c e mapear os scripts SQL para inicialização automática.

Exemplo de docker-compose.yml

Crie um arquivo chamado docker-compose.yml no diretório onde você deseja rodar o Oracle XE, com o seguinte conteúdo:

version: '3'
services:
  oracle-xe:
    image: gvenzl/oracle-xe:21-slim
    container_name: oracle-xe
    ports:
      - "1521:1521"   # Porta do banco de dados
      - "5500:5500"   # Oracle Enterprise Manager
    environment:
      - ORACLE_PASSWORD=MyPassword123   # Defina a senha padrão
    volumes:
      - ./init-scripts:/docker-entrypoint-initdb.d   # Mapeia os scripts SQL
      - ./data:/opt/oracle/oradata
    restart: always

Explicação:

  • image: A imagem do Oracle XE 21c.
  • container_name: Nome do container Oracle XE.
  • ports: Mapeia as portas do host para o container.
  • environment: Define a senha padrão para os usuários SYS e SYSTEM.
  • volumes: Mapeia um diretório local (./init-scripts) para o diretório /docker-entrypoint-initdb.d dentro do container. Qualquer script SQL ou shell script dentro deste diretório será executado automaticamente quando o container for iniciado.
  • restart: always: Garante que o container seja reiniciado automaticamente se falhar.

Passo 2: Criar Scripts SQL para Limpeza e Criação de Schema

Agora, vamos criar os scripts que serão executados quando o container for iniciado.

1. Script para Remover Dados Antigos

Este script irá percorrer todas as tabelas e outros objetos no schema atual e removê-los:

Crie um arquivo chamado clean_schema.sql no diretório init-scripts:

CREATE USER fake_user IDENTIFIED BY "senha_forte_2033" ;

GRANT CREATE SESSION TO fake_user;

alter session set "_oracle_script"=TRUE;

drop table APPQOSSYS.WLM_CLASSIFIER_PLAN;
drop table APPQOSSYS.WLM_FEATURE_USAGE;
drop table APPQOSSYS.WLM_METRICS_STREAM;
drop table APPQOSSYS.WLM_MPA_STREAM;
drop table APPQOSSYS.WLM_VIOLATION_STREAM;

DROP USER APPQOSSYS CASCADE;
DROP USER DBSFWUSER CASCADE;
DROP USER DGPDB_INT CASCADE;
DROP USER DIP CASCADE;
DROP USER DVF CASCADE;
DROP USER DVSYS CASCADE;
DROP USER GGSYS CASCADE;
DROP USER GSMADMIN_INTERNAL CASCADE;
DROP USER GSMCATUSER CASCADE;
DROP USER GSMUSER CASCADE;
DROP USER LBACSYS CASCADE;
DROP USER OPS$ORACLE CASCADE;
DROP USER REMOTE_SCHEDULER_AGENT CASCADE;
DROP USER SYS$UMF CASCADE;
DROP USER ANONYMOUS CASCADE;

Este oracle tem uma limitação de 12 GB, portanto, se precisar de algo maior, não será possível.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *