segunda-feira, 20 de setembro de 2010

DICAS DE LEITURA - ORACLE

Ambiente : Unix Linux / Windows - Oracle 10g

Hoje recebi um email do Eduardo Borges, à quem agradeço por visitar este blog, em que ele pede dicas de leitura para pessoas que estão iniciando na área de banco de dados. Este blog já destina-se à este público porquê na verdade me interessei em criá-lo já pela minha dificuldade quando iniciei neste mundo, mas realmente há formas de se tornar isso mais acessível através de livros.  
Este livro é índicado tanto para quem já tem alguma vivência quanto para quem está iniciando. Sim, é preparatório para certificação mas ele explica de forma muito  didática cada passo para criação e manutenção de base de dados para os níveis de iniciante à intemediário.
A explicação de conceitos de instânce, base de dados, segmentos de dados, especificação de arquivos fica muito clara pela forma como este livro foi escrito. 

Seu custo é realmente alto, entre R$ 120,00  à  R$ 250,00. Sim , salgado, mas tenho uma péssima notícia para todos: Bons livros da área não são baratos. Outra forma de "baratear" este custo é a compra de livros em sebos ou através de sites te leilões da internet. 

Um bom DBA tem como premissa a perseverança. Não desistir dos objetivos e saber como alcança-lo é fundamental para seu sucesso. O impossível não existe!

Rogério de O. Matos

sexta-feira, 5 de fevereiro de 2010

ORACLE - INTALAÇÃO EM LINUX FEDORA

INSTALAÇÃO DO ORACLE 10g NO LINUX FEDORA 6
Ambiente : Unix Linux Oracle 10g


A implantação do Oracle no Unix/Linux não se difere em muito do ambiente Windows, porém são necessárias algumas configurações antes de se chamar o pacote de instalação.
As primeiras configurações devem ser executadas com o usuário root ou com permissão similar.

Configurando arquivo hosts
No diretório  /etc/hosts o arquivo de hosts precisar ser configurado como abaixo



 Para editar os arquivos em um ambiente não gráfico sugiro o 'vi'.
No caso o ip configurado é o local 'loopback' 127.0.0.1 . Poderia também ser configurado o IP para acesso externo como 192.168.0.1 por exemplo.









Configurar o Kernel
Edite o arquivo em /etc/sysctl.conf


kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144


Após configurar o Kernel execute o comando /sbin/sysctl -p para atualizar a sessão atual.


Edite o arquivo que está emm  /etc/pam.d/login adidionando o valor abaixo, caso não exista:
session required pam_limits.so como mostrado ao lado .





 
No mesmo diretório etc será necessário acessar /etc/selinux e editar o arquivo config. Mais uma vez sugiro a utilização do 'vi' para este processo.

Deixar a opção SELINUX=disabled
Estamos aqui baixando a segurança do linux, porém como estamos trabalhando com um laboratório não teremos problemas. Em uma rede corporativa isso deverá ser feito pela área de segurança liberando as portas necessárias para a comunicação do banco com o sistema.


Instalando pacotes necessários

Alguns pacotes linux são necessários para a instalação do Oracle sendo alguns referentes a bibliotecas de comunicação. Abaixo segue a lista que deve ser instalada, neste caso, utilizei o rpm para descompactar e instalar. Em alguns casos podemos utilizar o yum

 Em meu caso, a unidade de dvd foi montada em /media/dvd/

cd /media/dvd/Fedora/RPMS

rpm -Uvh setarch-*
rpm -Uvh --force tcl-*
rpm -Uvh --force libXau-devel-* libXp-*
rpm -Uvh compat-db-*
rpm -Uvh compat-libstdc++-33*
rpm -Uvh compat-libf2c-34-*
rpm -Uvh compat-gcc-34-*
rpm -Uvh libaio-*
rpm -Uvh compat-gcc-34-c++-*
rpm -Uvh compat-libstdc++-296*
rpm -Uvh compat-libgcc-296*
rpm -Uvh openmotif21-2.1.30-14.i386.rpm

A criação de grupos de acesso e usuários pertencentes a estes grupos se faz necsssário porque até aqui utilizamos o usuário root e já para a efetiva instalação do Oracle este não poderá ser utilizado como pré-requisito de segurança. O que fizemos até agora foi o papel do administrador do sistema operacional executando pré-requsitos necessários para a instalação.
 
Criando grupos e usuários


groupadd oinstall
groupadd dba
groupadd oper

Criando usuário e relacionado ao grupo oinstall

useradd -g oinstall -G dba oracle
passwd oracle

Vamos agora criar o ponto de montagem, diretório no Windows, onde o software do Oracle será instalado

mkdir -p /u01/app/oracle/product/10.2.0/db_1

Definindo o grupo oinstall como 'owner' do diretório

chown -R oracle.oinstall /u01

Este passo tem grande importância.
O Oracle ainda não está homologado para o Fedora, apesar deste ser herança free do red hat.
Muitos dizem que não é um sistema operacional que seja comparado ao Enterprise Linux ou mesmo Red Hat, mas em meu treinamento na Oracle utilizamos um ambiente fedora exatamente como este em que o arquivo redhat-release fora criado.


Quando o Oracle inicia sua instalação ele verifica se existe este arquivo para validar a compatibilidade como sistema operacional.

Edit, ou crie,  o arquivo  /etc/redhat-release alterando a informação para:

redhat-4

 
 
 
 
 
Acesse o sistema operacional com o usuario oracle criado e adicionado ao grupo oinstall também criado anteriormente.
 
O arquivo para a instalação do oracle em linux pode ser baixado no site da oracle  onde existem também outras versões onde já verifiquei que a 11 segue o mesmo processo, porém aqui utilizamos a versão 10g.
 
 
Descompactei os arquivos em /instalacao/database e nele basta chamar o arquivo ./runInstaller lembrando que o ambiente unix é case sensitive.
 
 A partir dai a instação segue o mesmo padrão do Windows, exceto pelo final da instalação.
 
 
 
 
 
 
 
 
Aqui o Oracle faz a verificação de todos os pré-requisitos que configuramos anteriormente.
 
 Poderá no máximo lhe aparecer um alerta de espaço lhe perguntando ser deseja continuar assim mesmo, clique em sim. Caso uma advertencia não lhe permita continuar a instalaçaõ reveja se atentou para todos os detalhes dos passos anteriores.
 
 
 
 
 
 
 


Aqui são mostratos todos os detalhes básicos para a instalação do software.
 
 Optamos por não criar um banco de dados após a instalação.
 
 
 
 
 
 
 
 
 
 
 
 
 
Aqui já estamos instalando o Oracle no diretório indicado para o software, posteriormente poderemos criar o banco de dados com o utilitário DBCA (./dbca).
 
Até aqui não tivemos nenhuma novidade, após início da instalação do Oracle com ./runInstaller, em relação a instalação no ambiente Windows.
 
 
 
 
 
 
Eis a novidade. Aqui,para finalizar a instalação,um ou  dois scripts são diponibilizados para serem rodados com usuário root. Para tanto abra um terminal de comandos, digite su , senha, e simplesmente digite ou cole o todo o caminho mostrado na tela
 
 
 
 
 
 
 
 
 
 
Feito isso a instalação estará pronta.
 Experimente e utilize o ./dbca para criar sua base de dados.
 
 
 
 
 
 
 
 
 
 
 
 
Configure a variável de ambiente export ORACLE_HOME=//u01/app/oracle/product/10.2.0/db_1.
Depois acesso do diretório cd $ORACLE_HOME/bin e execute ./dbca
 

segunda-feira, 28 de dezembro de 2009

RENOVE-SE

A Águia é a ave que possui a maior longevidade da espécie. Chega a viver 70 anos. Mas para chegar a essa idade, aos 40 anos, ela tem de tomar uma séria e difícil decisão.


Aos 40 anos ela está com as unhas compridas e flexíveis, já não consegue agarrar as suas presas, das quais se alimenta; o bico alongado e pontiagudo curva-se, apontando contra o peito; as suas asas estão envelhecidas e pesadas em função da grossura das penas, e voar torna-se muito difícil.

Então, a águia só tem duas alternativas: morrer ou enfrentar um doloroso processo de renovação que irá durar 150 dias. Este processo consiste em voar para o alto de uma montanha e recolher-se num ninho próximo a um paredão, onde ela não necessite de voar.

Após encontrar esse lugar, a águia começa a bater com o bico numa parede até conseguir arrancá-lo. Depois espera até nascer outro, com o qual vai arrancar as unhas. Quando as unhas novas começam a nascer, ela passa a arrancar as velhas penas e só depois de cinco meses é que sai para o famoso voo de renovação e para então viver mais 30 anos.

Na nossa vida, muitas vezes temos de nos resguardar por algum tempo e começar um longo processo de renovação. Para que continuemos a voar em voo de vitória, devemos desprender-nos de ideias, lembranças, conceitos e de outras tradições que nos causam dor.


Somente livres do peso do passado é que poderemos aproveitar o resultado valioso que uma renovação sempre traz. Somente livres do peso do passado é que podermos abrir-nos para novas aventuras que nos levarão à vida que viemos a terra viver

quarta-feira, 18 de novembro de 2009

ORACLE - CRIAR TABLESPACE

 Ambiente : Windows 2003 Server / Unix Linux Oracle 10g (funciona também com 9i)

Antes de iniciarmos com este processo é importante entender o que vem a ser tablespaces.
  •  Existe no Oracle o conceito de base guarda de dados em áreas de armazenamento lógico denominadas Tablespace;
  •  Um banco de dados poderá conter uma ou mais tablespace que guardam os dados deste banco;
  •  Cada tablespace conterá um ou mais arquivos de dados denominados datafiles, estes sim são físicos e podem serser manipulados pelo sistema operacional e por esta razão sendo tratados como segmentos de dados pelo Oracle.
  • Segmentos de dados, como os data files, são formados por extensões de blocos do sistema operacional definidos no momento da instalação da instância.



 Entendido isso, vamos criar nossas tablespaces para a base de dados ESTOQUE  criado anteriormente.

 Criando tablespace

CREATE SMALLFILE TABLESPACE "TBSESTOQUE1" DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ESTOQUE\DFESTOQUE01.ORA' SIZE 250M REUSE;

CREATE SMALLFILE TABLESPACE "TBSESTOQUEIDX1" DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ESTOQUE\DFESTOQUEIDX01.ORA' SIZE 250M REUSE;

CREATE SMALLFILE TEMPORARY TABLESPACE "TBSESTOQUETMP" TEMPFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ESTOQUE\DFESTOQUETMP1.ORA' SIZE 100M;


Ao lado temos a aplicação do comando para criação de dados baseados em DML

Neste caso estamos criando três tablespace´s: Uma para dados, a segunda para indices e a terceira para uso temporário.



Os arquivos serão criados como mostrados na tela ao lado extamente onde estão os demais arquivos do banco de dados ESTOQUE que segue o padrão OFA da Oracle.

 O usuário utilizado para este processo foi o sys porém este não deve ser o owner do banco. Vamos então criar um usuário owner (dono) do banco ESTOQUE para administração desta base.


Criando usuário administrador (OWNER) do banco de dados ESTOQUE .

Este usuário será um user DBA que poderá criar demais usuários do banco de dados e também administrará toda a manutenção do mesmo.Note que na criação já definimos as tablespaces de dados e temporários para este usuário.

CREATE USER ADMESTOQUE IDENTIFIED BY ESTOQUE DEFAULT TABLESPACE TBSESTOQUE1 TEMPORARY TABLESPACE TBSESTOQUETMP ;

Concedendo a este usuário direitos de DBA.

GRANT DBA TO ADMESTOQUE


Vemos que o usuário foi criado com sucesso bem como a utilização de comando DCL para liberar direitos de DBA para este usuário (GRANT).

Com este usuário criaremos os demais usuários e poderemos criar toda a estrutura de nossa base de dados.

segunda-feira, 19 de outubro de 2009

ORACLE - DICAS PARA O DIA A DIA

Ambiente : Windows 2003 Server / Unix Linux Oracle 10g (funciona também com 9i)

Seguem alguns comandos para nos ajudar no dia a dia em ambientes ORACLE.
É importante conhecermos as definições de cada comando antes de utilizá-las pois caso o seu banco não possua, ou não esteja trabalhando, com flash recover, os dados poderão ser perdidos definitivamente em um comando truncate por exemplo


DDL (Data Definition Language): São comandos de definição de dados de Definição de Dados que tratam como a criação, alteração e exclusão de objetos de banco como por exemplo usuários, procedures, funções, tabelas, etc.


DML (Data Manipulation Language):  São comandos de Manupulação de Dados como Select, Insert, Update,Lock, etc Tratam de fato da manipulação de dados inseridos ou a serem inseridos no banco.


DCL (Data Control Language): Trata do controle para o acesso a dados e utilizan-se principalmente dos comandos de Grant e Revoke de determinado objeto para usuários ou Roles.

Exemplo para comando DDL

Criar usuário
 Vamos criar o primeiro usuário para nosso banco de dados RMATOS
  Importante sempre levar em consideração o que este usuário deverá fazer, informações estas que podem vir do desenvolvedor do aplicativo.
 Em nosso exemplo o usuário irá apenas ser criado e definido posteriormente direito de conexão ao banco.

 USUARIO = ROGERIO
 SENHA     = rogeriomatos
 BANCO    = RMATOS
 TBSPACE =  ESTOQUE
 TEMP        = ESTOQUETMP

CREATE USER 'ROGERIO' IDENTIFIED BY rogeriomatos DEFAULT TABLESPACE ESTOQUE TEMPORARY TABLESPACE ESTOQUETMP;

O que fizemos acima foi dizer que o usuário foi criado para que tenha acesso ao banco RMATOS sendo que as tablespaces referen-se a um objeto chamado ESTOQUE.

Exemplo para comando DCL
Agora que temos o usuário criado precisamos ao menos dar ao mesmo o direito de conexão. Para tanto utilizamos aqui um exemplo de comando que agrega direitos a determinado usuário. Estamos conectados com perfil que permita lesta liberação, como por exemplo sysdba.

GRANT CONNECT TO ROGERIO ;

Uma boa prática para manutenção de bancos é permitir que um usuário criado, e apenas um, tenha totais direitos ao banco, como um sysdba, preservando assim os usuarios nativos 'sys' e 'system'  com a senha inicial definida para qualquer emergência.,com senha bem guardada preferencialmente de conhecimento apenas do DBA da área. Vamos dar este direito ao usuário criado.

GRANT DBA TO ROBERIO;

CRIANDO DATABASE LINK

Quando estamos conectados a uma base de dados, por exemplo RMATOS e precisamos acessar dados de outra base de dados, por exemplo KAREN cujo a tabela se chama 'PESSOAS';

Nome do dblink = BUSCA
Banco loca         = RMATOS
Banco destino    =  KMATOS
Tabela               = PESSOAS
TNSNAMES    = KMATOS.WORLD (deve estar no servidor local, no caso RMATOS)
Senha                = skmatos

CREATE DATABASE LINK BUSCA CONNECT TO KMATOS IDENTIFIED BY skmatos USING KMATOS.WORLD

Feito, basta testar buscando o que se deseja da tabela PESSOAS

  SELECT * FROM PESSOAS@BUSCA ;

domingo, 23 de agosto de 2009

ORACLE - UTILIZANDO O DBCA PARA CRIAR BANCO DE DADOS

Ambiente : Windows 2003 Server / Oracle 10g (funciona também com 9i)

Ao instalar o software do Oracle, ou binário como também é conhecido, poderemos utilizar as ferramentas administrativas disponibilizadas para esta versão. Vamos conhecer agora o DBCA que é a ferramenta gráfica para criação de base de dados. Estamos trabalhando em ambiente Windows más as mesmas sequencias servem também para o ambiente Unix/Linux, claro com o devido direcionamento dos arquivos de dados para o ponto de montagem desejado /U01/Oracle.





No Windows podemos simplismente executar o comand dbca para acionarmos o módulo de instação ( ./dbca no linux), ou seguir os passos a seguir. Todos os programas >> Oracle(Versão) >>Cconfiguration and Migration Tools >>Data Base Configuration Assistent.



A tela apresentada a seguir mostra apenas informações iniciais para a criação do banco desejado, sem qualquer possibilidade de alteração de parâmetros.









Aqui podemos ver que o DBCA nos permite tanto a criação de base de dados quanto a exclusão e gerenciamento de bases e gabaritos. O Gabarito é um modelo de banco já criado anteriormente e que pode ser utilizado nesta ferramenta.
Iremos gerar o gabarito da base a ser criada no final da parametrização de instalação.








Aqui definimos o nome da instância dobanco de dados. No Windows, a exemplo da base criada manualmente, o nome será "OracleServiceESTOQUE"










As opções que aqui aparecem 4 opções para criação de banco, e não é simplesmente para se ter opções. Cada opção tem uma parametrização típica para cada fim. Exemplo: Data Warehouse é o tipo de banco que está paremetrizado para grande demanda de busca de dados. Vamos selecionar a opação de 'Banco de dados Personalizado'.





 
Aqui podemos ativar o backup da base de dados em determinado intervalo de tempo.
Não iremos fazê-lo uma vez que, ao meu ver, temos que primeiro entender o que vem a ser este processo antes de ativá-lo. Isso será demonstrado posteriormente já que esta será a nossa base de dados para muitos estudos.


 

 
Senhas: Muito cuidado com este passo. A senha que írá escolher é a do usuário sys e demais usuários de administração da base. Eu prefiro criar todos com o mesmo valor e posteriormente alterar conforme projeto a ser desenvolvido e devidamente registrado em procedimento.






 
Aqui definimos a guarda de dados , por padrão 'File System', ou seja o padrão do sistema operacional utilizado. ASM é um padrão da Oracle que simula uma storage para a guarda de dados.
Existe também um tipo para o uso do RAC, padrão Oracle para cluster que veremos posteriormente.

 



 
Nesta tela podemos definir onde será arquivado o gabarito da base de dados.
Conforme dito, este gabarito será criado ao final do processo, e irá ser gravado no diretório padrão ou o que definirmos nesta tela.




 


 
Área de recuperação flash e tamanho da recuperação. No Oracle 10g foi introduzido a possibilidade de recuperação imediata de perda de dados de uma tabela, ou até mesmo da tabela inteira, desde que armazenada nesta área. Como recuperar veremos posteriormente. Ative esta opção para que possamos fazê-lo

 


 
Aqui selecionamos os pacotes a serem instalados, como nos interessa somente o banco, selecionamos apenas a última opção para repositório do Enterprise Manager. Evite selecionar pacotes pois isso gera cobrança de licença que pode ser tranquilamente detectado em auditorias da Oracle.





 
Em existindo scripts para execução no momento da criação do banco, como criação de usuários, estes poderão ser configurados aqui.







 
Aqui temos algo de grande relevância. A área de uso de memória. Definimos aqui que a base utilizará 21% da memória disponível para o servidor. Em Windows Standard 32bits temos que tomar muito cuidado com este gerenciamento. Sugiro a edição do arquivo boot.ini informando este parâmetro para evitar futuros problemas como o ORA-04030
"[operating systems]multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Standard" /4G "

 
Process: Isso é sempre interessanse se levantar com o responsável da aplicação ao qual será acessado pelo banco, pois se a quantidade de processos for menor que o recomendado, muitos usuarios não poderão sequer conectar no banco.
Podemos otimizar inicialmente para 500 e depois diminuir se for o caso. Somente processos ativos consomem recursos.
Padrão de caracteres padrões, no SQL Server conhecido como "Colation". Importante ter este padrão registrado em documento para uso dos desenvolvedores.
O padrão UTF-8 Unicode atende a grande maioria das necessidades.



 
Para uso de estudo utilizaremos o modo Dedicado de gerenciamento de memória que reserva uma área fixa para cada usuário conectado.
No modo compartilhado a mesma área de memória é utilizada por mais de um usuário, utilizado para aplicações com grande quantidade de conexões.




 
Aqui podemos ver, e alterar, a estrutura do banco em file system. Alterar os segmentos de redolog, arquvos de dados, etc.
Vale lembrar que estamos optando por uma instalação padrão, logo, será utilizado o padrão OFA da Orale que determina a árvore padrão e nomeação de de diretórios gerenciamento. Não iremos adicionar nenhuma nova tablespace agora, faremos isso no proximo 'post' deste blog.




 


Aqui vamos, finalmente dar nome ao Gabarito que será criado com base neste banco. Caso precise, isso poderá ser feito posteriormente a adicionarmos mais tablespaces.
Também temos a criação dos scripts de criação de banco para geração manual, bem parecido com o que vimos anteriormente em outro 'post'





 
Aqui temos uma tela que apresenta, em html que pode ser salvo, os parâmetros escolhidos para a criação desta base. É interessante a guarda para análise futura quando se faz necessário análise de crescimento em razão da demanda de dados, por exemplo.










 
Após esta apresentação temos a tela confirmação
de criação de script e gabarito










 


Aqui já temos a criação da base propriamente dita.
Podemos acompanhar esta criação e visualizar o que acontece abaixo da barra de status.









 
Após a finalização da criação da base temos temos a tela de confirmação e a possibilidade de troca de senha dos usuários de gerenciamento da base.
Em ambientes Unix/Linux existe ainda a tela que mostra o caminho para execução de script de liberação de direitos de usuário no sistema operacional relacionado a base de dados.
 


 
Podemos confirmar a criação do banco de dados usando o sqlplus /nolog e conectando da seguinte forma:
sys/@ :que em nosso caso ficará:

 
Se quisermos acessar via Enterprise Manager, ferramenta administrativa da base Oracle, agora WEb, podemos simplesmente acessar via ferramentas ou digitando diretamente o endereço
A primeira base geralmente tem a porta 1158







 
Utilizamos também o usuário sys, ou outro criado após este processo, via tela de acesso WEB.











 

Aqui já temos a tela com informações sobre o processamento da base criada, instância, etc.
Vamos manter esta base como ferramente de estudo para as próximas publicações.

Forte abraço
Rogério de Oliveira Matos
O impossível não existe!

















Seguidores