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:
linux - (curl https://releases.rancher.com/install-docker/20.10.sh | sh)
macos - (brew install docker)
windows - (https://github.com/codeedu/wsl2-docker-quickstart#docker-engine-docker-nativo-diretamente-instalado-no-wsl2)
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:

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.

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.

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.
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



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.

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 bashBase 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