Árvore de páginas

A Engenharia Protheus, em conjunto com a equipe da Oracle (responsável pela OCI - Oracle Cloud Infrastructure), realizou o trabalho colaborativo de homologação do Oracle Autonomous Transaction Processing (uma das modalidades do Oracle Autonomous Database), gerando melhores insights para a arquitetura computacional a ser utilizada com o Protheus.

Nesta página, constam os insumos obtidos dos testes de benchmark realizados com este banco de dados e ambiente na OCI.

Resumo sobre a página e links relacionados

Esta página traz informações sobre o uso do Protheus com o banco de dados Oracle Autonomous Database: Autonomous Transaction Processing, com arquitetura na nuvem pública OCI; quais configurações foram realizadas, pontos de atenção e outras informações relevantes ao assunto.

Note que:

  • Este banco de dados é homologado a partir do Protheus Release 12.1.33, verifique especificações de cada release;
  • O banco de dados provisionado foi o Autonomous 19c, conforme homologação mais recente do banco de dados Oracle;
  • Cada OCPU equivale à 2 vCPUs;
  • Cada OCPU suporta até 300 sessions abertas no banco de dados;
  • Cada usuário do Protheus abre, pelo menos, 2 sessions no banco de dados quando com dicionário no banco (reforçamos que Jobs, WebServices e RESTs também contam como usuários);
  • É necessário utilizar a Wallet na configuração do Oracle Client;
  • Recomenda-se o uso do DBAccess em modo distribuído;
  • Algumas tabelas não podem ser acessadas conforme explicitado ao final da página, isto interfere no uso da chave UseSysTables;

Links de apoio ao conteúdo desta página:

Autonomous Database for Transaction Processing and Mixed Workloads (Oracle, em inglês)Overview of Autonomous Databases (Oracle, em inglês)Oracle’s Converged Database (Oracle, em inglês) • Banco de dados homologado: Oracle (TDN)DBAccess - Como configurar o DBAccess para utilizar o Oracle com OCIDBAccess - Configuração distribuídaOracle - Grants mínimos para o funcionamento do DBAccess

Sobre o Oracle Autonomous Transaction Processing (ATP)

O Oracle Autonomous Transaction Processing (ATP) é uma das modalidades de banco de dados Oracle Autonomous Database (ADB) em nuvem que elimina a complexidade de operar e proteger bancos de dados de alto desempenho. O serviço automatiza o provisionamento, configuração, ajuste, dimensionamento, aplicação de patches, criptografia e reparo de bancos de dados. Além disso, o serviço inclui todas as opções avançadas de banco de dados da Oracle, como clusters de aplicativos reais (RAC), multitenant, particionamento na memória, segurança avançada e compactação avançada. O serviço ATP está disponível no Oracle Cloud Infrastructure (OCI), Cloud Pública, e também em seu próprio data center no Exadata Cloud@Customer.

Diferenças entre o banco de dados tradicional e o Autonomous

Um banco de dados On-Premise demanda monitoramento constante e downtime (paradas) para manutenções; sejam estas no servidor ou no próprio software de banco de dados. Em resumo, a proposta do Oracle Autonomous Database é minimizar os riscos associados à interferência humana relacionados à itens como manutenções, escalonamento, configurações, atualizações e segurança; bem como incluir todas as opções avançadas de banco de dados da Oracle. Para mais informações sobre o Oracle Autonomous Transaction Processing, clique para expandir os tópicos de interesse. Veja também a página sobre o Autonomous Database e o Autonomous Transaction Processing.

Provisionamento: Implementa bancos de dados tolerantes a falhas e altamente disponíveis em minutos.

Dimensionamento automático: Escala os recursos de computação automaticamente para atender aos requisitos de desempenho e taxa de transferência sem nenhum tempo de inatividade. Permite a verdadeira experiência de pagamento por uso com escalonamento dinâmico online.

Ajustes automáticos: Configura e ajusta bancos de dados automaticamente, mesmo quando os dados e o esquema mudam com o tempo. A configuração da memória, formatos de dados, índices e estruturas de acesso são otimizados automaticamente para melhorar o desempenho.

Backups automatizados: Executa backups incrementais completos e diários semanais do banco de dados no armazenamento de objetos da Oracle e os retém por até 60 dias para restaurar e recuperar a qualquer momento.

Reparação automática: Corrige falhas de hardware e software monitorando e prevendo falhas continuamente. As solicitações são redirecionadas imediatamente para dispositivos saudáveis, mantendo o desempenho do banco de dados.

Failover automático: Elimina o tempo de inatividade do site mantendo uma cópia remota em tempo real de um banco de dados de produção e alternando automaticamente da cópia primária para a remota usando o Autonomous Data Guard.

Clonagem rápida: Crie clones rápidos de todo o banco de dados ou apenas dos metadados, para iniciar rapidamente novos projetos. Crie clones a partir de instâncias de banco de dados em execução ou de um banco de dados de backup.

Criptografia sempre ativa: Fornece criptografia automática para todo o banco de dados e para backups com chaves de criptografia que você cria e controla. Isso garante que os dados estejam sempre seguros em repouso e em movimento.

Correção automática: Corrige e atualiza bancos de dados para vulnerabilidades de segurança com tempo de inatividade zero. Os aplicativos continuam em execução conforme ocorrem os patches.

Privacidade de dados: Permite que os administradores de banco de dados executem todas as tarefas administrativas sem nunca ver os dados do cliente. Bloqueia o acesso ao sistema operacional ou privilégios de administrador para evitar ataques de phishing.

Segurança para dados confidenciais: O Oracle Data Safe, incluído no Autonomous Transaction Processing, torna mais fácil descobrir dados confidenciais, avaliar riscos de segurança, mascarar dados confidenciais e implementar e monitorar controles de segurança.

Auditoria avançada: Registra todos os eventos com impacto mínimo no desempenho. Você pode monitorar auditorias a qualquer momento para análise, análises forenses e conformidade.

Alto desempenho: Oferece latência 80% menor e mais de 5X de rendimento do que outros provedores de nuvem, utilizando hardware otimizado para banco de dados, ajuste automatizado e indexação.

Sempre online: Oferece mais de 99,95% de disponibilidade usando uma combinação de Infraestrutura de Gen 2 Cloud da Oracle, Oracle RAC, Autonomous Data Guard e backups automáticos diários.

Proteção contra erro humano: O Oracle Flashback, fornecido com o Autonomous Transaction Processing, rebobina instantaneamente as alterações acidentais nos esquemas do aplicativo, protegendo os usuários de erros humanos. Oferece suporte à recuperação em todos os níveis, incluindo linha, transação e tabela - e em todo o banco de dados.

Suporte para modelos de dados relacionais e não relacionais: Oferece suporte nativo a vários tipos de dados, incluindo documento, gráfico, espacial, JSON, XML e mais para desenvolvimento mais rápido de aplicativos. Evita a fragmentação de dados e reduz os incômodos de gerenciamento de dados resultantes de armazenamentos de dados isolados.

Suporte de API REST para desenvolvimento de aplicativos modernos: Forneça APIs REST de gerenciamento de banco de dados, interface da web e Gateway PL/SQL para habilitar em REST todos os seus dados para um acesso mais simples e rápido.

Algoritmos de Machine Learning (ML) no banco de dados: Mais de 30 algoritmos de ML, funções de ML automatizadas e integração com código aberto Python e R, para facilitar a construção de modelos de ML e painéis analíticos sem mover dados do banco de dados.

Multi-Modelo: Suporte nativo para vários tipos de modelos de dados e métodos de acesso.

Multitenant: Banco de dados em container proporcionando consolidação, isolamento e agilidade.

Multi-Workload: Otimizações de software que funcionam sozinhas ou em conjunto para oferecer um preço excepcional e um alto desempenho em todas as tarefas do banco de dados.

Para mais informações sobre Arquitetura Convergente, confira este documento (PDF, em inglês)

BYOL (Bring Your Own License): Enterprise Edition

Se você tiver o Oracle Database Enterprise Edition e as opções necessárias listadas abaixo, seus requisitos de BYOL serão os seguintes:

Para 1-16 OCPUs de uma única instância do Oracle Autonomous Database:

  • Para cada licença de Processador suportada do Oracle Database Enterprise Edition mais Opções: Multitenant, você pode ativar até 2 OCPUs do Serviço em Nuvem BYOL.
  • Para cada 25 licenças de Usuário Nomeado Plus suportado do Oracle Database Enterprise Edition mais Opções: Multitenant, você pode ativar 1 OCPU do Serviço em Nuvem BYOL.

Para 17 OCPUs ou mais de um único Oracle Autonomous Database:

  • Para cada licença de Processador suportada do Oracle Database Enterprise Edition mais Opções: Clusters Multitenant e Real Application, você pode ativar até 2 OCPUs do Serviço em Nuvem BYOL.
  • Para cada 25 licenças de Usuário Nomeado Plus suportado do Oracle Database Enterprise Edition mais Opções: Clusters Multitenant e Real Application, você pode ativar 1 OCPU do Serviço em Nuvem BYOL.

BYOL: Standard Edition

Para 1-8 OCPUs do Oracle Autonomous Transaction Processing Cloud:

- Para cada Licença de Processador suportada de Programas Oracle Database Standard Edition (onde um Processador é definido como equivalente a um soquete ocupado), você pode ativar até 4 OCPUs do Serviço de Nuvem BYOL. 

- Para cada 10 licenças Named User Plus suportadas dos Programas Oracle Database Standard Edition, você pode ativar 1 OCPU do BYOL Cloud Service.

Cada instância do Oracle Autonomous Transaction Processing Cloud não pode exceder 8 OCPUs.

Licensing Included: Todos os recursos estão inclusos de acordo com a edição do banco de dados, atualmente a versão disponível é a Oracle 19c.

Para informações sobre o serviço de créditos universais, acesse este link.

Considerações sobre o uso do Oracle ATP

Embora a proposta do banco de dados seja minimizar a interferência humana, para uso do banco de dados com o Protheus é importante ressaltar alguns itens e configurações iniciais.

Character set

Altere o character set para WE8MSWIN1252 no momento de criação da instância do Oracle ATP.

Atenção

 O APEX User Interface é homologado no Autonomous Database apenas com o character set original. Caso esta funcionalidade precise ser utilizada, deverá ser provisionada uma instância do Autonomous separada ao APEX.

Conectando-se ao banco de dados

O Protheus utiliza a ferramenta DBAccess para conexão aos bancos de dados homologados; este, por sua vez, utiliza o Instant Client, e precisa, dentre outras configurações, que o arquivo TNSNAMES.ora seja configurado. Para mais informações, consulte a documentação: Como configurar o DBAccess para utilizar o Oracle com OCI - TOTVSTEC - TDN.

Caso possua o ambiente em Linux, confira dicas para a configuração de seu ambiente.

Como a conexão com o banco de dados Oracle Autonomous é obrigatoriamente SSL (Secure Sockets Layer), se faz necessário também utilizar Wallet na configuração do Oracle Client.

Para esclarecer a configuração, a linha de conexão adicionada foi:

adbtotvs_tp = (description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=XXXadb.sa-saopaulo-1.oraclecloud.com))(connect_data=(service_name=XXXXXXXXXXXXX_adbXXXXX_tp.adb.oraclecloud.com))(security=(ssl_server_cert_dn="CN=adb.sa-saopaulo-1.oraclecloud.com, OU=Oracle ADB SAOPAULO, O=Oracle Corporation, L=Redwood City, ST=California, C=US")))

Onde o significado de cada parâmetro é:

  • retry_count: número de tentativas de conexão ao(s) endereço(s) especificado(s) antes de se abortar a conexão;
  • retry_delay: intervalo, em segundos, entre as tentativas especificadas;
  • address: endereço de conexão;
  • protocol: protocolo de conexão;
  • port: porta para conexão;
  • host: nome do host;
  • connect_data: dados de conexão;
  • service_name: nome do serviço;
  • security: informações de segurança da conexão;
  • ssl_server_cert_dn: especifica o nome distinto do servidor de database, similar à como um path especifica a localização de um arquivo.

Sizing e quantidade de usuários

É possível realizar o escalonamento de OCPUs para o banco de dados. Tenha em mente que cada usuário do Protheus abre, no mínimo, 2 sessions no banco de dados, e que cada OCPU suporta até 300 sessions.

Os valores descritos em cada documentação são referência de uma configuração mínima, e é possível que sejam necessários mais OCPUs, a depender dos processos executados. Sempre realize a validação em um ambiente de homologação antes de migrar seu ambiente de produção.

Consulte na página sobre a homologação do Protheus em OCI exemplos para o sizing.

Mais informações

De acordo com a documentação de Oracle - Grants mínimos para o funcionamento do DBAccess, são necessários grants específicos no banco de dados Oracle. Porém, com o ATP, não é possível atribuir permissão sobre as tabelas:

  • SYS.COL$
  • SYS.OBJ$
  • SYS.IND$
  • SYS.ICOL$

Estas tabelas são utilizadas quando a chave UseSysTables está ativa; certifique-se de que a ausência destas chaves não afetará o funcionamento de seu produto.