Arquivo de março, 2013

A Oracle oferece duas modalidades de licenciamento do banco de dados Oracle: Ele pode ser licenciado por usuário nomeado (Named User Plus) ou por processador. No caso do Oracle Database, cada edição tem suas particularidades.

Licenciamento por usuário:

  • Oracle Standard Edition One: Caso o licenciamento se dê por usuário nomeado (NUP), deve-se respeitar um mínimo de 5 usuários licenciados. O Oracle SE One oferece as mesmas funcionalidades do SE, mas só pode ser instalado em máquinas com no máximo 2 sockets.
  • Oracle Standard Edition: Exige um mínimo de 5 licenças NUP e pode ser instalado em máquinas com até quatro sockets. A partir da versão 10g do Oracle Database SE, é possível utilizar o Oracle Real Application Cluster (RAC) sem a necessidade de pagamento de licença adicional por uso desta funcionalidade.
  • Oracle Enterprise Edition: É necessário licenciar um mínimo de 25 usuários em um database EE. Opções como Real Application Clusters, Partitioning, etc devem ser licenciadas à parte.

Algumas regras adicionais são aplicadas ao licenciamento Named User Plus:

  • A Oracle não distingue usuários por login ou por equipamento, mas por usuário nomeado, ou seja, máquinas compartilhadas por diversos usuários devem ter todos os usuários licenciados, mesmo que compartilhem um mesmo login no Sistema Operacional.
  • Equipamentos não operados por humanos, como sensores, devem ser licenciados como se cada equipamento fosse um usuário nomeado.
  • No caso de equipamentos operados por humanos, como leitores de código de barras, todos os operadores dos equipamentos devem ser licenciados como usuários nomeados.
  • Se houver dispositivos não operados por humanos e dispositivos operados por humanos conectando em um mesmo banco de dados, todos os dispositivos não operados por humanos e todos os operadores de equipamentos devem ter licença no banco de dados.

Licenciamento por processador:

  • Oracle Standard Edition e SE One: Considera-se uma licença por socket, independente da quantidade de núcleos.
  • Oracle Enterprise Edition: Para determinar a quantidade de licenças necessárias em uma máquina com o Database EE, deve-se aplicar as regras contidas na tabela Oracle Processor Core Factor (http://www.oracle.com/us/corporate/contracts/processor-core-factor-table-070634.pdf). No caso de um processador Intel Xeon, por exemplo, conta-se uma licença a cada dois cores, ou seja, em uma máquina com 4 sockets six-core, deve-se adquirir 12 licenças.

Regras adicionais ao licenciamento por processador:

  • A Oracle não cobra licenças individuais por instância em uma mesma máquina, portanto uma máquina licenciada pode conter inúmeras instâncias Oracle.
  • Em caso de máquinas virtuais, a regra padrão é o licenciamento de todos os processadores físicos do servidor de máquina virtual. Caso a virtualização seja física ou utilize-se o Oracle VM, pode-se licenciar somente os processadores da máquina virtual em que o Oracle está instalado.

Atualização

Ao comprar uma licença Oracle, geralmente se compra junto o suporte anual ao produto. O pagamento deste suporte anualmente permite a aplicação de patches, patchsets ou realizar updates do software. Isto significa que, se sua empresa adquiriu ha alguns anos uma licença de 9i EE e paga anualmente o suporte a este banco de dados, você está habilitado a atualizar sua versão para 10g ou 11g, aplicar patches e patchsets. Do mesmo modo, comprando uma licença atual lhe permite a instalação de uma versão anterior.

 

Fonte: http://ivanschuster.wordpress.com/2012/12/04/licenciamento-oracle-database-guia-rapido/

Uma forma de obter velocidade na execução de tabelas, principalmente as temporárias, é criá-las em memória. Como estas tabelas são usadas e depois descartadas, é possível obter um ganho de performance muito grande com este truque.

Para criar uma tabela temporária em memória, faça:

CREATE TEMPORARY TABLE <nome_da_tabela> (<campos>) ENGINE=MEMORY;

Observe a necessidade obrigatória de informar o tipo de engine usado. Neste caso, a memória do servidor.

Esta dica também é válida para a criação de tabelas comuns (não-temporárias), bastando remover o argumento TEMPORARY. Mas cuidado, se o servidor cair, os dados são perdidos e não é possível recuperá-los.

Fonte: http://codare.net/2008/02/19/mysql-criando-tabelas-temporarias-em-memoria/

Um dos elementos principais da arquitetura do Oracle são as estruturas de memórias. Podemos dividir estas estruturas de memória em 3 componentes principais:

  1. System Global Area (SGA).
  2. Software Code Area (SCA).
  3. Private Global Area (PGA).

Ao iniciar um banco de dados o Oracle aloca uma área na memória denominada SGA – System Global Area e também inicia alguns processos em background formando assim o que chamamos de Instância do Banco de Dados. Para que a SGA seja alocada de forma correta, antes de alocar a área na memória o Oracle busca por um arquivo de parametrização onde constam todas as informações necessárias para manter a Instância do banco de dados. Ao ler os parâmetros e alocar a SGA na memória o oracle associa a instância aos dados específicos fazendo o banco acessível aos usuários que possuem a permissão para utilizá-lo. Cada instância possui uma SGA.

instance

A SGA é uma área compartilhada da memória que contém os dados e as informações de controle de uma instância. Por ser uma memória dinâmica o Oracle permite que ela seja configurada sem a necessidade de reiniciar o ambiente.

A SGA é composta das seguintes estrutura de dados:

  • Database buffer cache.
  • Redo Log buffer.
  • Shared Pool.
  • Large Pool.
  • Java Pool.
  • Stream Pool.

Se o sistema usa a arquitetura de servidor compartilhado podem existir PGA’s (Program Global Area) dentro da SGA. Explicarei sobre PGA em outro tópico.

Para verificar como a SGA está configurada basta executar o seguinte comando:

SQL> select * from V$sga

ou

SQL> SHOW SGA

Sem título

Fixed Size – Pequena área interna do Oracle que varia de acordo com a plataforma onde está instalado.
Variable Size – Se refere a shared pool, large pool, java pool.
Database Buffers – Tamanho do database buffer cache.
Redi Buffers – Tamanho do redo buffer cache.
Total System Global Area – Tamanho geral da SGA.

O tamanho geral da SGA pode ser configurado pelo parâmetro : SGA_MAX_SIZE.

No próximo post explicarei as estruturas que compõe a SGA.