Instalação Oracle RAC 10g com VirtualBox – Parte 2
July 27, 2011

Parte 1 – Introdução
Parte 2 – Criação e configuração da VM
Parte 3 – Criação do Oracle Linux
Parte 4 – Configuração do Oracle Linux
Parte 5 – Configuração do Oracle Linux II
Parte 6 – Clonagem da VM e criação dos disk image
Parte 7 – Configuração dos discos ASM e OCFS2
Parte 8 – Instalação do Oracle Clusterware
Parte 9 – Aplicação do Patch 10.2.0.5 no Oracle Clusterware
Parte 10 – Instalação Oracle Database 10g
Parte 11 – Aplicação do Patch 10.2.0.5 no Oracle Database
Parte 12 – Criação do Listener e ASM em modo cluster
Parte 13 – Criação do banco de dados

Dando inicio hoje a criação do nosso ambiente de teste Oracle RAC 10g utilizando VirtualBox tanto para criar as máquinas virtuais como os discos compartilhados entre as instâncias.

Não colocarei aqui o passo a passo para instalar o VirtualBox, visto que é extremamente simples, basta alguns “NEXT” e o seu VirtualBox estará instalado, até mesmo no Linux (no meu caso o Ubuntu) a utilização do VirtualBox é muito simples e amigável.

 

Criando a máquina virtual

A parte 2, está destinada a criação e configuração da VM. Estarei aqui demonstrando de forma mais detalhada possível a criação da máquina 1 do cluster que depois será clonada para a máquina 2.

Sem mais rodeios, vamos ao trabalho …

Quando se abre o VirtualBox é listado todas as máquinas virtuais instaladas no seu lado esquerdo (ver figura 1), caso você tenha instalado agora o seu VirtualBox, você será essa listagem vázia.

 

figura 1


Vamos iniciar a criação de uma nova VM, ela será criada do zero. Para isso clique no botão azul New no canto superior esquerdo.

figura2

 

Será aberto o Wizard da criação da VM, basta clicar em Next.

figura 3


Nessa parte é necessário atribuir um nome para a máquina, no meu caso coloquei de Oracle RAC 10g – 1, fique a vontade para colocar o nome que preferir. Escolhemos nesse ponto também o Sistema Operacional e a Versão dele. Como nesse exemplo estarei utilizando o Oracle Linux escolhi a opção Linux para SO e Oracle para a versão.
figura 4


Definimos aqui a quantidade de memória utilizada pela VM, 512 MB é um número bom para termos um ambiente de teste, coloque o valor que desejar.
figura 5


Quando se cria uma VM no VirtualBox, temos a opção de criar um novo Virtual Hard Disk ou utilizar um existente. Como estamos criando do zero nossa máquina virtual, devemos escolher a opção Create new hard disk. Esse é o disco que iremos instalar os binários Oracle, é o disco local da máquina. Escolha as opções abaixo e clique em Next para abrir o Wizard da criação do disco virtual.
figura 6


Aqui, já estamos no Wizard para criarmos nosso disco virtual. Apenas clique em Next.
figura 7


Um Virtual Hard Disk pode ser dinâmico ou fixo. Para melhor utilização do espaço do meu HD, estarei utilizando o disco virtual em modo dinâmico.
figura 8


Nesse ponto é onde definimos o caminho e o tamanho do nosso disco. O caminho fica a seu critério, porém o tamanho não recomendo colocar menor do que 15G, já que pode não ser suficiente para instalar os binários do cluster e do oracle.
figura 9


Observe o resumo de toda as configurações do Virtual Hard Disk e caso esteja de acordo clique em Finish para criar o disco.
figura 10


Com o hard disk criado, o Wizard de criação de disco será finalizada e voltará para o Wizard da máquina virtual. Nesse momento, observe atentamente o nome, quantidade de memória, localização de disco etc … Caso tudo esteja conformo você deseja basta clicar em Finish para concluir a criação da VM.
figura 11

figura 12


Configuração da máquina virtual

Iremos iniciar agora, a configuração da máquina virtual recém criada. Para iniciar o Wizard de configuração da VM, basta selecionar a máquina desejada e clicar em Settings, como exibido na figura 13.

figura 13

A primeira aba de configuração é a General. Nela não temos que realizar nenhuma configuração, por isso pule para a aba System.
figura 14

Na aba System, desmarque o Floppy (disquete) no boot order, fazendo com que no momento do boot, o VirtualBox não utilize o floppy.
figura 15

A próxima aba de configuração é a Storage. Devemos remover a unidade de CD/DVD-ROM vazia e adicionar uma nova apontando para a ISO Oracle Linux 5. Veja os passos  nas figuras 16, 17, 18, 19, 20 e 21.
figura 16

Confirme a remoção da unidade de CD/DVD-ROM vazia.
figura 17

Adicione um novo dispositivo de CD/DVD-ROM clicando no primeiro ícone do IDE Controller
figura 18

Escolha a opção Choose disk(Escolher disco).
figura 19

Selecione a ISO correspondente do Oracle Linux 5 e clique em Open.
figura 20

figura 21


Desabilite o Audio na máquina virtual através da aba Audio. Após desabilitar feito isso, vá até a aba Network.
figura 22


Aqui é onde se define os adaptadores de rede. Temos que habilitar 2 adaptadores de rede em modo Bridged. As figuras 23,  24 demonstra como realizar essa configuração
figura 23

figura 24

Por fim, basta desabilitar a USB da máquina na aba USB, como na figura 25.
figura 25

Com todos os passos acimas realizados, temos uma máquina virtual criada e pronta para iniciar a instalação do Linux, que será nossa próxima etapa. Caso ficou alguma dúvida em algum processo poste seu comentário que terei prazer no que puder ajudar.
Até a próxima etapa

O que é um Database Services?
July 18, 2011

Para início de conversa … de nada vale um RAC se ele é mau distribuído, de nada vale se ele não tem services trabalhando para ele e não contra ele. Services são importantes para administração como também para a performance do RAC database. Um service por ser a cura ou a doença do seu RAC.

Mais o que são services e porque elas são tão importantes?

Em Oracle RAC, service significa um grupo de sessões que tem as mesmas características (duração, tempo de execução, acessos a um conjunto de objetos), uma grande ou pequena associação de sessões que realizam o mesmo tipo de trabalho.

Você pode se beneficiar muito utilizando services em ambiente Oracle RAC, a realização de performance-tuning e até mesmo tarefas administrativas podem ser  feitas em cima dos services, permitindo realizar a sua tarefas por grupos de sessões e não no banco todo, diminuindo assim o seu trabalho . Services é a base da alta disponibilidade e o melhor que quase tudo pode ser feito dinamicamente como por exemplo a realocação de serviços.

Services podem ser configurado em relação a instâncias de três maneiras distintas.

  • Preferred – São as instâncias preferenciais. Instâncias que tem preferência para a conexão do service.
  • Available – As available instances são utilizadas quando uma preferred-instance falha.
  • None – A instância não é utilizada pelo service.

Uma available instance não inicia um suporte a um service, ao contrário da preferred instance que sempre terá esse papel. Caso, em um determinado momento a preferred instance falha então o service é restaurado para uma available instance definido pelo service.

O mais importante sobre os services é saber balancear de maneira inteligente entre os nós existentes do cluster, nesse ponto conhecer a aplicação é fundamental porque é nesse momento que se deve saber os tipos de objetos (tabelas, índices, …) que a aplicação utiliza.

Nos próximos posts estarei criando e administrando um service em um ambiente RAC e os outros métodos de configuração do service.

Confira mais detalhes na própria documentação:
http://download.oracle.com/docs/cd/E11882_01/server.112/e17120/create007.htm#ADMIN11126

Até lá.

Certificação Oracle RAC 10g
July 12, 2011

Olá Pessoal.

Andei sumido para responder os comentários e e-mails … mais foi por uma boa causa.

Depois de um tempo estudando pra valer Oracle RAC … hoje prestei a prova 1z0-048 (Oracle Database 10g: RAC Administrator Certified Expert) e passei. Muito bom ver o PASS na tela …

Agora apertem o cinto … vamos ver muitos posts sobre RAC a partir de hoje : )

Até mais

Colunas Virtuais
July 7, 2011

Coluna Virtual é uma nova feature do Oracle 11g que permite utilizar colunas puramente como expressões que são armazenadas no dicionário de dados.

Desde a versão 8i temos ao nosso alcance a possibilidade de armazenar expressões utilizando function-based indexes. Agora com a versão 11g temos a possibilidade de armazenar expressões diretamente em tabelas através das colunas virtuais.

Nesse artigo vou demonstrar usos básicos das colunas virtuais, algumas considerações sobre performance e suas limitações.

Criando uma coluna virtual

SYNTAX:

column_name [datatype] [GENERATED ALWAYS] AS (expression) [VIRTUAL]
SQL> create table triangulo
2 (
3 base number,
4 altura number,
5 area number generated always as ((base * altura) / 2) virtual
6 )
7 /

Table created.

A tabela criada, é responsável por armazenas bases e alturas de triângulos, onde a coluna area armazenará a expressão matemática ((base x altura) / 2).

Agora vamos inserir um triângulo com base 5 e altura 6. Observe que não inserimos nada na coluna area, ela será gerada automaticamente. O primeiro insert gerará um erro propositalmente, aonde estou querendo mostrar que não podemos adicionar colunas virtual na syntax insert (e update).

SQL> insert into triangulo (base, altura, area) values (5, 6, 15);
insert into triangulo (base, altura, area) values (5, 6, 15)
*
ERROR at line 1:
ORA-54013: INSERT operation disallowed on virtual columns

Insert correto:

SQL> insert into triangulo (base, altura) values (5, 6);

1 row created.

SQL> select * from triangulo;

BASE        ALTURA          AREA
---------- ---------- ----------
     5             6              15

A expressão pode ser visualizada pela coluna DATA_DEFAULT na view [DBA|ALL|USER]_TAB_COLUMNS.

SQL> select column_name, data_default
2 from dba_tab_columns
3 where table_name = 'TRIANGULO';

COLUMN_NAME     DATA_DEFAULT
-------------- -----------------------
BASE
ALTURA
AREA            "BASE"*"ALTURA"/2

SQL> select column_name, data_type
2 from dba_tab_cols
3 where table_name = 'TRIANGULO'
4 and virtual_column = 'YES';

COLUMN_NAME          DATA_TYPE
-------------------- --------------------------------
AREA                  NUMBER

Algumas considerações sobre performance

Embora muito já se falou sobre o famoso “SELECT * FROM”, com colunas virtuais irá punir ainda mais a performance para quem emprega essa prática. Imagine que para cada linha que trouxer do seu SELECT, existam 3 colunas virtuais, isso tudo deverá ser gerado em runtime, ou seja, somente no momento da execução do SELECT que os dados serão “criados”, implicações significativas de desempenho são possíveis nesses casos. É extremamente importante, qualquer aplicação que utilize das colunas virtuais que use explicitamente as colunas que deseja utilizar, evitando assim desperdicio de processamento.

Limitações

  • Colunas virtuais não podem ser baseadas em outras colunas virtuais.
  • Elas não suportadas em index-organized, external, object, tabelas temporarias ou cluster.
  • Indexes nas colunas virtuais, são iguais a function-based indexes.
  • Eles podem ser usadas na clausula WHERE em updates e deletes, mais não podem ser manipuladas como DML.