O QUE FAZER QUANDO USAMOS O AWR SEM LICENÇA?
Autor: David Ricardo | Publicado: 2017-01-10T11:17:00-02:00




Olá como estão todos?&nbsp;

Bem, eu me deparei recentemente com uma situação um tanto quanto comum, contudo bastante inquietante. Trata-se de uso de uma feature de banco de dados, onde o cliente não possui a modalidade de licenciamento adequado, o time técnico não possuia tal informação e para complicar ainda mais, a parte de gestão afirmou ser licenciado.&nbsp;

Todavia vale lembrar que, nós como técnicos no momento da criação de novos ambientes, sempre que possível é claro, devemos ter em mãos todo e qualquer tipo de informação a cerca de customizações e parametrizações especificas a serem utilizadas durante o processo.

O CENÁRIO

Falando um pouco mais sobre o ambiente, não era de alta complexidade, sua volumetria era pouco mais de 60GB, relativamente pequeno se comparado a grandes massas de dados de outros ambientes OLTP.

O versionamento usado era o atual Oracle Database 12c R1, sem multitenant, ainda usando arquitetura nos moldes 11g, sistema operacional MSWindows Server 2008 e Discos oriundos de um Storage.

O AWR

Trocando em míudos trata-se de uma ferramenta de apoio aos diagnósticos quanto a saúde do banco de dados Oracle, juntamente com outras ferramentas de igual importancia, formam o famoso DIAGNOSTIC TUNNING PACK, uma feature licenciada para bancos de dados Oracle mais precisamente. Seu uso é através de relatórios de apresentação de informações quanto aos principais setores do banco de dados ( memória, disco e consultas), com um repositório próprio o AWR coleta os seus SNAP IDs de tempos em tempos ( de 1 em 1 hora por padrão) e guarda-os em uma BaseLine, onde podem serem consultados sempre que necessário for ou solicitado pelo time de desenvolvimento ou ainda por razões de verificação de problemas com performance de aplicativos armazenados em banco de dados e etc.

O LICENCIAMENTO

Como trata-se de uma fatia do Diagnostic Tuning Pack, óbviamente que há um valor para tal, atualmente é algo em torno de U$ 7.500,00 ( por processador) , ha também as formas por usuário nomeados e para Upgrades, todos os valores podem ser consultados no link abaixo, mas fale com seu contato comercial para certificar-se desses valores mais atualizados :

Licenciamento Oracle

O PROBLEMA

Quando estamos falando de um ambiente novo, onde ainda não temos nenhum tipo de informação nem tão pouco aplicações plugadas ao banco de dados, fica mais fácil de manter o controle dessas features e seus usos, porém quando já temos algo gerando workloads em nosso ambiente, tudo se torna mais complexo. Eis então que me veio a pergunta : É possível eliminar qualquer vestigio de uso do AWR do banco de dados, uma vez que sabemos não ter licença de concessão do seu uso?

A resposta veio em forma de pesadelo, ou seja, NÃO, não é possível faze-lo, para tal atividade precisamos reconstruir toda a base de dados, e não há nenhum vestigio no MOS ou em nenhum lugar que oficialmente dê subsidios ou uma receita de bolo para limpar completamente qualquer resquicio de presença do AWR.

Tudo isso se deve por razões óbvias, que se resumem em uma palavra "COMÉRCIO", uma vez que você usou a feature para melhorar o desempenho de seu aplicativo, sabendo que a mesma é paga e ainda assim gostaria de não paga-la, em uma possível auditoria a oracle fatalmente irá pegar essa informação, como? Através das VIEWS de banco de dados, eis o nome do nosso "algoz" :


DBA_FEATURE_USAGE_STATISTICS

DBA_FEATURE_USAGE_STATISTICS&nbsp;displays information about database feature usage statistics.


ColumnDatatypeNULLDescription

DBIDNUMBERNOT NULLDatabase identifier of the database being tracked
NAMEVARCHAR2(64)NOT NULLName of the feature (See&nbsp;Table 4-1)
VERSIONVARCHAR2(17)NOT NULLDatabase version in which the feature was tracked
DETECTED_USAGESNUMBERNOT NULLNumber of times the system has detected usage for the feature
TOTAL_SAMPLESNUMBERNOT NULLNumber of times the system has woken up and checked for feature usage
CURRENTLY_USEDVARCHAR2(5)&nbsp;Indicates whether usage was detected the last time the system checked (TRUE) or not (FALSE)
FIRST_USAGE_DATEDATE&nbsp;First sample time the system detected usage of the feature
LAST_USAGE_DATEDATE&nbsp;Last sample time the system detected usage of the feature
AUX_COUNTNUMBER&nbsp;This column stores feature-specific usage data in number format.
FEATURE_INFOCLOB&nbsp;This column stores feature-specific usage data in character format.
LAST_SAMPLE_DATEDATE&nbsp;Amount of time (in seconds) between the last two usage sample times
LAST_SAMPLE_PERIODNUMBER&nbsp;Amount of time (in hours) between the last two usage sample times
SAMPLE_INTERVALNUMBER&nbsp;Sample interval
DESCRIPTIONVARCHAR2(128)&nbsp;Description of the feature and usage detection logic (See&nbsp;Table 4-1)




Table 4-1 DBA_FEATURE_USAGE_STATISTICS Statistics

NameDescription


Advanced Replication

Advanced Replication has been enabled.


Advanced Security

External Global users are configured.


Audit Options

Audit options in use.


Automatic Database Diagnostic Monitor

A task for the Automatic Database Diagnostic Monitor has been executed.


Automatic Segment Space Management (system)

Extents of locally managed tablespaces are managed automatically by Oracle.


Automatic Segment Space Management (user)

Extents of locally managed user tablespaces are managed automatically by Oracle.


Automatic SQL Execution Memory

Sizing of work areas for all dedicated sessions (PGA) is automatic.


Automatic Storage Manager

Automatic Storage Management has been enabled


Automatic Undo Management

Oracle automatically manages undo data using an UNDO tablespace.


Automatic Workload Repository

A manual Automatic Workload Repository (AWR) snapshot was taken in the last sample period.


Change-Aware Incremental Backup

Track blocks that have changed in the database.


Client Identifier

Application User Proxy Authentication: Client Identifier is used at this specific time.


Data Guard

Data Guard, a set of services, is being used to create, maintain, manage, and monitor one or more standby databases.


Data Guard Broker

Data Guard Broker, the framework that handles the creation maintenance, and monitoring of Data Guard, is being used


Data Mining

Oracle Data Mining option is being used.


Dynamic SGA

The Oracle SGA has been dynamically resized through an ALTER SYSTEM SET statement.


File Mapping

File Mapping, the mechanism that shows a complete mapping of a file to logical volumes and physical devices, is being used.


Flashback Database

Flashback Database, a rewind button for the database, is enabled


Internode Parallel Execution

Internode Parallel Execution is being used.


Label Security

Oracle Label Security, that enables label-based access control Oracle applications, is being used.


Locally Managed Tablespaces (system)

There exists tablespaces that are locally managed in the database.


Locally Managed Tablespaces (user)

There exists user tablespaces that are locally managed in the database.


Messaging Gateway

Messaging Gateway, that enables communication between non-Oracle messaging systems and Advanced Queuing (AQ), link configured.


MTTR Advisor

Mean Time to Recover Advisor is enabled.


Multiple Block Sizes

Multiple Block Sizes are being used with this database.


OLAP - Analytic Workspaces

OLAP - the analytic workspaces stored in the database.


OLAP - Cubes

OLAP - number of cubes in the OLAP catalog that are fully mapped and accessible by the OLAP API.


Oracle Managed Files

Database files are being managed by Oracle.


Parallel SQL DDL Execution

Parallel SQL DDL Execution is being used.


Parallel SQL DML Execution

Parallel SQL DML Execution is being used.


Parallel SQL Query Execution

Parallel SQL Query Execution is being used.


Partitioning (system)

Oracle Partitioning option is being used - there is at least one partitioned object created.


Partitioning (user)

Oracle Partitioning option is being used - there is at least one user partitioned object created.


PL/SQL Native Compilation

PL/SQL Native Compilation is being used - there is at least one natively compiled PL/SQL library unit in the database.


Protection Mode - Maximum Availability

Data Guard configuration data protection mode is Maximum Availability.


Protection Mode - Maximum Performance

Data Guard configuration data protection mode is Maximum Performance.


Protection Mode - Maximum Protection

Data Guard configuration data protection mode is Maximum Protection.


Protection Mode - Unprotected

Data Guard configuration data protection mode is Unprotected.


Real Application Clusters (RAC)

Real Application Clusters (RAC) is configured.


Recovery Area

The recovery area is configured.


Recovery Manager (RMAN)

Recovery Manager (RMAN) is being used to backup the database.


RMAN - Disk Backup

Recovery Manager (RMAN) is being used to backup the database to disk.


RMAN - Tape Backup

Recovery Manager (RMAN) is being used to backup the database to tape.


Resource Manager

Oracle Database Resource Manager is being used to control database resources.


Segment Advisor

A task for Segment Advisor has been executed.


Server Parameter File

The server parameter file (SPFILE) was used to startup the database.


SGA/Memory Advisor

SGA/Memory Advisor has been used.


Shared Server

The database is configured as Shared Server, where the server process can service multiple user processes.


Spatial

There is at least one usage of the Oracle Spatial index metadata table.


SQL Access Advisor

A task for SQL Access Advisor has been executed.


SQL Tuning Advisor

SQL Tuning Advisor has been used.


SQL Tuning Set

A SQL Tuning Set has been created in the database.


Standby Archival - LGWR

Data Guard configuration: Remote archival is done by LGWR.


Standby Archival - ARCH

Data Guard configuration: Remote archival is done by ARCH.


Standby Transmission

Standby database: Network transmission mode was chosen for a standby destination.


Streams (system)

Oracle Streams has been configured


Streams (user)

Users have configured Oracle Streams


Tablespace Advisor

Tablespace Advisor has been used.


Transparent Gateway

Heterogeneous Connectivity, access to a non-Oracle system, has been configured.


Undo Advisor

Undo Advisor has been used.


Virtual Private Database (VPD)

Virtual Private Database (VPD) policies are being used.






Esta view acima traz todas as vezes e quantas delas você usou determinada feature no banco de daos, esteja ela licenciada ou não. Um ponto importante é que, a Oracle durante o processo de instalação não impede que você use nenhum dos recursos contidos no tipo de instalação que você esta fazendo, este nível de refinamento quanto ao que pode ou não pode, fica por conta de cada técnico responsável, desde que é claro tenha acesso a essas informações momentos antes de criar o novo ambiente, gerando assim nenhum ou o minimo de riscos possíveis ao negócio.

AS POSSIBILIDADES ANALISADAS

Diante do exposto, se pensarmos um pouco temos muito poucas opções a nosso favor, pelo menos eu só consegui pensar nessas no momento :



recriar o control file do banco - FAIL
fazer um restore via RMAN do Banco - FAIL
re-executar o catalog e catproc - FAIL
reconstruir o banco de dados e reimportar os dados - SUCCESS


As opções acima citadas que falharam, se analisarmos friamente, realmente não surtiriam muito efeito, uma vez que a hierarquia das visões de banco de dados respeitam uma origem dos dados, onde as tabelas bases de todas as informações contidas no dicionário de dados ( X$, $% e etc) são o que alimentam todas as outras ( V$,V_$,DBA_,ALL_ &nbsp;e USERS_).



E essas opções não modificam essas informações base, o que não nos ajuda, no metalink ou My Oracle Support para os mais jovens, temos uma nota que nos remete ao entendimento de como funciona essa dinâmica de detectar esse uso, vou deixar aqui abaixo o link para a DocID :



Disabling and Uninstalling AWR (Doc ID 1909073.1)



O PLANO B



Nem tudo está perdido, a Oracle contudo não removeu de seu core de aplicações o antigo porém funcional STATSPACK, que pode ser usado no lugar do AWR para os não licenciados, este ainda não requer nenhum tipo de modalidade especifica de licença para concessão de uso, e pode sim ajudar no diagnostico de problemas com o banco de dados.&nbsp;



O Statspack não contém todos os mesmos recursos do AWR, mas auxilia na compreensão de planos de acessos e etc se utilizado com outras ferramentas em conjunto como TKPROF, utilitarios mais na linha "OLD SCHOOL".



Caso queiram e tenham interesse em compreender melhor a extensão do auxilio prestado pelo statspack, sugiro uma leitura rápida da doc abaixo :



Using Statspack



CONCLUSÃO



Se você por um acaso se deparar com essas situações, lembre-se de analisar friamente o que é melhor para seu ambiente, no meu caso era pequeno, mais vocês podem ter bases de Teras e mais Terabytes em questão, o que inviabilizaria o uso desse mesmo método.&nbsp;



E sempre vejam primeiramente a possibilidade de licenciamento, para os empresários e gestores que não entendem o "tecnes oracoles" você precisa justificar em cifras ( $$$ ), é preciso que eles compreendam a tênue relação chamada CUSTO/BENEFICIO, uma vez bem documentado e embasado tecnicamente os "por quês", não creio que terão problemas em conseguir o tão sonhado licenciamento das ferramentas de diagnóstico que ajudam não somente o DBA, mas desenvolvedores, aplicações e consequentemente os lucros da empresa.


Obrigado pela atenção, deixem seus comentários que prometo responde-los. Um abraço á todos.

SUCESSO SEMPRE!!!