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 OCI • DBAccess - Configuração distribuída • Oracle - 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.
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.