Pré Requisitos para migração e utilização do Novo Log de Auditoria.

ORACLE

Por questões de organização, segurança e performance, foi criada uma rotina que é executada no momento da migração para o Novo Log de Auditoria, a mesma faz a criação do Esquema TOTVSAUDIT e dos TABLESPACES TOTVSAUDIT_DADOS e TOTVSAUDIT_INDICES

Os tablespaces serão criados nos mesmos diretórios de dados onde já existem os arquivos de dados dos tablespaces de sistema RM_DADOS e RM_INDICES. (Caso seja de sua preferência os tablespaces podem ser criados antecipadamente pela sua equipe de DBA's, assim pode-se definir um local diferente para os mesmos.)

Para esta utilização é pré-requisito que o usuário Owner do Sistema RM (Padrão: RM) tenha perfil DBA e possua as seguintes permissões:

SELECT ANY DICTIONARY, SELECT ON DBA_LOBS e SELECT ON DBA_SEGMENTS.

É necessário também que o parâmetro do SGBD Oracle JOB_QUEUE_PROCESSES esteja com o valor superior a 100.

Caso o usuário não atenda aos pré-requisitos acima, poderão ocorrer erros na conversão da Base de Dados para nova versão.

A partir da versão 12.1.24 foi implementada uma nova ACTION que realiza algumas verificações na base de dados Oracle, a mesma tem a funcionalidade de verificar se existem problemas no Schema ou objetos do Novo Log de Auditoria, para que não ocorra problemas na Conversão da base de dados.

Caso apresente o erro abaixo durante a conversão, deve-se realizar as seguintes verificações.

1) Verificar se existem as tabelas ZAUDITCHANGES e ZAUDITSCHEMAEVENTS do Schema de Auditoria:

2) Verificar se o Owner do Sistema RM possui permissão de SELECT ANY DICTIONARY:

3) Verificar se os Jobs do Oracle encontram-se configurados e com valor superior a 100 JOBS:

As verificações acima devem ser executadas com o Owner do Sistema RM no banco de dados. (Padrão, Schema RM)

Testes de Homologação de Novas versões em Bases de Dados Oracle

Caso seja necessário restaurar uma base de dados Oracle em um ambiente de homologação, utilizando-se das ferramentas IMP ou IMPDP, deve-se restaurar o Schema RM,  após o final da restauração deve-se executar a Stored Procedure p_FixNovoLog.(Disponível nas versões 12.1.22 e superiores, verificar junto ao suporte o Patch que possui esta feature disponível)

Comando: EXEC p_FixNovoLog

Esta nova Stored Procedure faz uma verificação e cria ou recria os objetos necessários para o correto funcionamento do Novo Log de Auditoria como Schema de Auditoria, Tabelas, Grants, Etc.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

SQL SERVER

Caso esteja sendo utilizado o Novo Log de Auditoria em MS SQL Server e aplicações em Delphi é necessário se atentar ao seguinte ponto:

Devido ao funcionamento do Delphi o parâmetro CONCAT_NULL_YIELDS_NULL  e ANSI_WARNINGS devem estar ligados.

Este será o comportamento padrão do MS SQL Server em versões futuras de acordo com a Microsoft.

Parâmetro CONCAT_NULL_YIELDS_NULL

https://docs.microsoft.com/en-us/sql/t-sql/statements/set-concat-null-yields-null-transact-sql?view=sql-server-2017

Parâmetro ANSI_WARNINGS 

https://docs.microsoft.com/en-us/sql/t-sql/statements/set-ansi-warnings-transact-sql?view=sql-server-2017

Este parâmetro deve ser alterado a nível de banco de dados, conforme exemplo abaixo:

Parâmetro CONCAT_NULL_YIELDS_NULL 

USE [master]

GO
ALTER DATABASE [CorporeRM]* SET CONCAT_NULL_YIELDS_NULL ON WITH NO_WAIT
GO

Parâmetro ANSI_WARNINGS 

USE [master]

GO
ALTER DATABASE [Corpore]* SET ANSI_WARNINGS ON WITH NO_WAIT
GO

CorporeRM será o nome do Database em uso pela aplicação.