Docker Oracle Xe com Base Desjava

SKDEV-ORACLE-XE-18

Repositorio Gitlab com scripts

Cliquei aqui para acessar o repositório no gitlab ->> SKDEV-ORACLE-XE-18

Este link contém alguns scripts que ajudam no uso de uma imagem docker de um banco Oracle Xe versão 18 com dados da Base Desjava atualizados com a versão 4.20 para uso no desenvolvimento cotidiano.

Introdução


Repositório com scripts que realizam a criação de banco oracle xe 18 para uso no dia a dia dos desenvolvedores sankhya.

Imagens do dockerhub que são usadas:

  • sankhyaimages/develop-database:oracle-xe-18-vazia (SCHEMA skcontainer sem dados)

  • sankhyaimages/develop-database:oracle-xe-18-desjava (SCHEMA skcontainer com dados da desjava)

Scripts:

Descrição dos scripts:

  • init_skdev_oracle_xe.sh

    • Realiza os comandos necessários para subir um docker oracle-xe-18 com o schema skcontainer com dados da base desjava!

  • init_skdev_oracle_xe_empty.sh

    • Realiza os comandos necessários para subir um docker oracle-xe-18 com o schema skcontainer sem tabelas e sem dados!

  • run_skdev_import_database.sh

    • Realiza a copia de um dump de dados para dentro do container oracle-xe-18-vazio, e realiza a importação de dados!


Pre Requisitos

Para os scripts funcionarem e preciso ter os itens abaixo instalados para OS com arquitetura x86_64, geralmente windows e linux.

Docker

Comandos/guias para download:


Pre Requisitos Macs M1/M2 (ARM64)

Para Macbooks com chip de arquitetura ARM64 por exemplo com chips M1 e M2 e preciso instalar um container runtime chamado colima.

Porque isso e necessário?

Resposta: Porque algumas imagens não funciona nessa arquitetura ou podem tem comportamentos diferentes, nesse caso essa imagem oracle-xe da problemas nessa arquitetura.

Link do repositório github Colima

Instalação do homebrew e colima

Geralmente pelo MacOS e usado o homebrew como gerenciador de pacotes.

Link do homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Com o homebrew instalado rode o comando abaixo para instalar o colima!

brew install colima

Depois que o colima estiver sido instalado teste o comando

colima --help

Ele precisa retornar algo como:

708×223 16.1 KB

Depois de verificar que ele esta instalado rode o comando abaixo:

colima start --profile skdev-docker --arch x86_64 --memory 4 --disk 50

Depois verifique se o container runtime esta ativo:

colima status

Rodando os scripts

Foram criados alguns scripts para facilitar o uso das imagens de banco oracle xe no dia a dia.

Container skdev-oracle-xe com dados desjava

Para criar ou iniciar um container skdev-oracle-xe que usa a imagem docker sankhyaimages/develop-database:oracle-xe-18-desjava.

Rode o comando abaixo:

bash init_skdev_oracle_xe.sh

Se aparecer algum erro pode ser porque os scripts precisam de permissão, rode o comando abaixo para garantir.

chmod +x *.sh
bash init_skdev_oracle_xe.sh

Ele vai criar o volume do container, e criar um container oracle-xe, a primeira vez desse processo pode demorar um pouco por causa do download/pull da imagem.

1087×550 71.7 KB

Quando não precisar mais do container em pé você pode pausar ele com o comando:

docker stop skdev-oracle-xe

Se precisar iniciar o container novamente, você tem duas opções:

Rodar novamente o script, porque se estiver pausado ele vai iniciar o container, além de fazer as verificações necessárias.

bash init_skdev_oracle_xe.sh

Ou

docker start skdev-oracle-xe

Para testar a conexão do banco clique aqui

Para remover o container você pode rodar o comando abaixo:

docker rm -f skdev-oracle-xe

Para remover o volume do container você pode rodar o comando abaixo:

docker volume rm -f skdev-oracle-volume-xe

Container skdev-oracle-xe-empty para importar dump de dados

Para criar ou iniciar um container skdev-oracle-xe-empty que usa a imagem docker sankhyaimages/develop-database:oracle-xe-18-vazia.

Rode o comando abaixo:

bash init_skdev_oracle_xe_empty.sh

Se aparecer algum erro pode ser porque os scripts precisam de permissão, rode o comando abaixo para garantir.

chmod +x *.sh
bash bash init_skdev_oracle_xe_empty.sh

Ele vai criar o volume do container, e criar um container oracle-xe sem dados, a primeira vez desse processo pode demorar um pouco por causa do download/pull da imagem.

983×237 31.2 KB

Quando não precisar mais do container em pé você pode pausar ele com o comando:

docker stop skdev-oracle-xe-empty

Se precisar iniciar o container novamente, você tem duas opções:

Rodar novamente o script, porque se estiver pausado ele vai iniciar o container, além de fazer as verificações necessárias.

bash init_skdev_oracle_xe_empty.sh

Ou

docker start skdev-oracle-xe-empty

Para remover o container você pode rodar o comando abaixo:

docker rm -f skdev-oracle-xe-empty

Para remover o volume do container você pode rodar o comando abaixo:

docker volume rm -f skdev-oracle-xe-empty

Importando dados no container skdev-oracle-xe-empty pelo script run_skdev_import_database.sh

Depois de criar o container Oracle-Xe 18 sem dados e possível realizar a importação com dump, locais na sua maquina.

Para isso você precisa de um dump compactado no formato TAR.GZ, abaixo você pode baixar um dump do esocial para realizar testes.

Download Dump Esocial

Notas importantes antes de comando o comando de import!

  • Copie o arquivo tar.gz para um pasta dentro deste projeto chamada dump_model, se ela não existir crie!

Pegue o caminho do arquivo que nesse caso do esocial, ficaria dump_model/ESOCIALFOLHA5.tar.gz vamos precisar informar isso para o script através da variável de ambiente ORACLE_DUMP_FILE.

  • Ao rodar o script e preciso parar o schema atual do dump, pela variável de ambiente ORACLE_DUMP_SCHEMA, no caso do dump de exemplo é ESOCIALFOLHA5.

Depois de realizar o download do tar.gz você pode rodar o comando abaixo para realizar o importe de dados!

chmod +x *.sh 
ORACLE_DUMP_FILE=dump_model/ESOCIALFOLHA5.tar.gz ORACLE_DUMP_SCHEMA=ESOCIALFOLHA5 bash run_skdev_import_database.sh

Em casos de outros arquivos de dump, jogue para pasta dump_model ou copie o PATH absoluto do arquivo para passar na variavel ORACLE_DUMP_FILE

Depois de rodar o comando ele vai seguir os passos abaixo:

  • Verificar se o Container existe;

  • Copiar o dump da sua maquina para dentro do container

1474×836 97.3 KB

1474×836 120 KB

1090×804 127 KB

Pronto base importada e pronta para uso!

Dados de acesso ao container oracle-xe

Endereço: localhost ou 127.0.0.1
Porta: 1521
Service Name: XEPDB1
Usuário: skcontainer
Senha: tecsis

Exemplo de configuração pelo Dbeaver.

703×622 68.5 KB

Manutenção do banco de dados

Para dar manutenção no banco de dados você pode conectar diretamente no linux utilizando o seguinte comando:

Base desjavava com dados

$ docker exec -it skdev-oracle-xe bash

Base vazia

$ docker exec -it skdev-oracle-xe-empty bash

Digitando o comando acima você estará conectado diretamente no linux dentro do container como root.

Para executar a manutenção do banco, utilizando o sqlplus por exemplo, digite os seguintes comandos:

$ root@d1254f0b31fb:/# su oracle
$ oracle@d1254f0b31fb:~$ sqlplus / as sysdba

Caso queira sair desse modo e voltar para sua máquina faça a combinação de teclas CTRL + P e com o control ainda pressionado aperte a tecla Q.

Nota importante

Caso precise executar operações no banco como system utilize os seguintes dados:

Usuário: system
Senha: tecsis
3 respostas
Vale a leitura