sexta-feira, 29 de maio de 2009

O que é um Banco de Dados, no Oracle

O que é o Servidor de Banco de Dados Oracle

Quando você instala o Oracle Database, você na verdade está instalando um SGBD – Sistema de Gerenciamento de Bancos de Dados. Para que você possa, efetivamente, ter um banco de dados, você precisa de uma instância rodando. Nas versões comerciais, você pode definir esta instância durante a instalação ou criá-la depois, usando o utilitário DBCA.

Ao se instalar o XE, uma instância é criada automaticamente. Esta instância recebe o sugestivo nome de XE.

O que é uma Instância Oracle

Para os propósitos deste artigo, uma instância Oracle é um conjunto de processos e serviços em execução, destinados a realizar tarefas pertinentes à um Servidor de Banco de Dados. Esta instância recebe um nome, que é usado como SID (System ID); possui um conjunto de Processos que correspondem ao gerenciamento da instância; e possui um Listener, que é o canal de comunicação entre os Processos do servidor e os Clientes do banco de dados.

O Oracle Database

Um banco de dados Oracle é uma coleção de dados tratados como uma unidade. O propósito de um banco de dados é armazenar e recuperar informações relacionadas. Um servidor de banco de dados é a chave para resolver problemas de gerenciamento de informação.

Em geral, um servidor gerencia confiavelmente uma grande quantidade de dados em um ambiente multiusuário onde vários usuários podem acessar o mesmo dado, concorrentemente. Tudo isto é realizado ao mesmo tempo em que o servidor garante alta performance. Um servidor de banco de dados também evita acessos não autorizados aos dados e ainda provê uma eficiente solução de recuperação de falhas.

Fig. 1 - Arquitetura de Processos em um servidor Oracle

A figura acima mostra a arquitetura de processos de um servidor de banco de dados Oracle. Nesta postagem eu não vou entrar em detalhes arquitetônicos do Oracle. Mas esta introdução à sua arquitetura irá esclarecer muita coisa de seu funcionamento. Em primeiro lugar, o que é um banco de dados, no Oracle?


O que é, afinal, um Banco de Dados, no Oracle

O Oracle trabalha com o conceito de “Schemas”. Numa tradução livre, “Schema” significa esquema. Mas vamos usar sempre o termo original, agora sem as aspas: Schema. Então, o que é um Schema?

Um Schema é uma coleção de estruturas lógicas de dados, ou objetos de um usuário. Um Schema é, ainda, uma espécie de "área de trabalho" de um usuário e tem sempre o mesmo nome do usuário. Cada usuário possui um único Schema. Os objetos de um Schema podem ser criados e manipulados com SQL (Structured Query Language) e incluem os seguintes tipos de objeto:

  • Clusters
  • Database links
  • Database triggers
  • Dimensions
  • External procedure libraries
  • Indexes and index types
  • Java classes, Java resources, and Java sources
  • Materialized views and materialized view logs
  • Object tables, object types, and object views
  • Operators
  • Sequences
  • Stored functions, procedures, and packages
  • Synonyms
  • Tables and index-organized tables
  • Views

Fig. 2 - Tablespaces em um banco de dados Oracle

Outros tipos de objetos podem também ser armazenados no banco de dados e podem ser criados e manipulados via SQL, mas não estão contidos num Schema:

  • Contexts
  • Directories
  • Profiles
  • Roles
  • Tablespaces
  • Users
Os objetos de um Schema são estruturas lógicas de armazenamento de dados. E eles não têm uma correspondência um-para-um com arquivos físicos em um disco que armazena tais informações. Ao invés disto, o Oracle armazena logicamente os objetos de um Schema dentro de uma Tablespace do banco de dados (ver Fig. 2). As Tablespaces, sim, tem relação com arquivos físicos. Mas isto não é importante do ponto de vista do armazenamento lógico dos objetos de um esquema.

Não há um relacionamento de exclusividade entre Schemas e Tablespaces: uma Tablespace pode conter objetos de diferentes Schemas, e os objetos de um Schema podem ser contidos em diferentes Tablespaces.

Para não ficar muito confuso, vou deixar para falar sobre Tablespaces em outra postagem específica. Por enquanto, vamos ver como criar um usuário de banco de dados e ver qual sua relação com as Tablespaces.

Vou dar um exemplo, baseado numa situação hipotética:

Dado um Sistema de Protocolo, seria lógico criar no servidor de banco de dados Oracle um Schema chamado PROTOCOLO. No Schema PROTOCOLO, então, nós criaríamos todos os objetos necessários para o Sistema de Protocolo: tabelas, views, procedures, functions, packages, índices e etc.

Então, como criar um Schema? Simples, muito simples: crie um usuário de banco de dados, ou simplesmente: crie um usuário!

Criando um Usuário de Banco de Dados

Para criar um usuário de banco de dados, basta você se conectar ao Oracle como um usuário DBA (DataBase Administrator ou Administrador de Banco de Dados) e usar comandos apropriados da SQL.

Os comandos da SQL são classificados, basicamente, nas seguintes categorias:

DML - Linguagem de Manipulação de Dados
DDL - Linguagem de Definição de Dados
DCL - Linguagem de Controle de Dados
DTL - Linguagem de Transação de Dados
DQL - Linguagem de Consulta de Dados

A criação de um usuário se enquadra na categoria DCL e o comando é CREATE USER. Então, para criar um usuário no Oracle, é só comandar:

CREATE USER FulanoDeTal IDENTIFIED BY SenhaDoFulanoDeTal;

Apenas isto já criaria o usuário. Mas existem alguns detalhes relacionados à Tablespaces que são importantes saber desde o início. Então o comando para criar nosso usuário de banco de dados no Oracle ficaria assim:

CREATE USER PROTOCOLO IDENTIFIED BY Senha
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;

Se não tivéssemos informado a Default Tablespace e a Temporary Tablespace, o Oracle usaria aquelas que foram configuradas como Tablespaces Padrão ou Default. No Oracle, estas Tablespaces são USERS e TEMP.

Privilégios de um usuário

Criar o usuário não basta! Nós ainda precisamos dizer o que ele pode fazer no servidor de banco de dados Oracle. Fazemos isto através de outro comando da categoria DCL. Seu nome é GRANT. Em nosso exemplo faríamos:

GRANT CONNECT, RESOURCE, UNLIMITED TABLESPACE TO PROTOCOLO;

Há inúmeros outros privilégios, mas estes aí permitem conectar-se ao servidor Oracle (CONNECT), criar recursos (RESOURCE) ou objetos, tais como tabelas e etc, sem nenhum limite estabelecido para armazenamento destes recursos (UNLIMITED TABLESPACE).

As TableSpaces default

Mesmo que não sejam informadas as tablespaces default, ao se criar um usuário, o Oracle atribui as tablespaces necessárias para a criação dos objetos de um usuário ou Schema. Mas, qual o significado destas tablespaces?

A Default TableSpace é a tablespace onde o Oracle armazena as estruturas lógicas que um usuário cria em seu Schema, caso não seja informada uma. Assim, se nosso usuário PROTOCOLO criasse uma tabela, através do comando:

CREATE TABLE ASSUNTO_PROTOCOLO(
ID_ASSUNTO INTEGER PRIMARY KEY,
DS_ASSUNTO VARCHAR2(128)
);

a estrutura lógica da tabela ASSUNTO_PROTOCOLO seria criada e armazenada dentro da Default Tablespace USERS. Mas nada impede o usuário PROTOCOLO de fazer o seguinte:

CREATE TABLE ASSUNTO_PROTOCOLO(
ID_ASSUNTO INTEGER PRIMARY KEY,
DS_ASSUNTO VARCHAR2(128)
)
TABLESPACE NomeDaTableSpace;

Ou seja, ele poderia criar a tabela em seu Schema, mas armazenando sua estrutura lógica em outra Tablespace.

Esta característica ímpar abre uma janela incrível de possibilidades, mas que fogem ao escopo desta postagem. Por hora saiba apenas que é possível!

A Temporary TableSpace é a tablespace onde o Oracle armazena temporariamente estruturas lógicas necessárias quando se está manipulando dados. Em determinadas situações de consultas muito complexas, por exemplo, o Oracle precisa criar estruturas lógicas temporariamente, para somente depois dar o resultado. É na Temporary TableSpace onde ele armazena tais estruturas. Mais uma vez vou dizer que esta característica ímpar abre uma janela incrível de possibilidades, mas vamos falar sobre isto em outra oportunidade.

Resumo da Ópera

Agora que você leu todo o artigo, sugiro rolar a tela para cima e observar as figuras. Certamente agora elas fazem mais sentido, não? (Espero que sim :-)

Um banco de dados, no Oracle, é uma coleção de objetos dentro de um Schema, que é possuído por (owned by) um usuário de banco de dados (ou simplesmente usuário). Em tal usuário nós “preenchemos” o Schema com objetos necessários, que irão atender ao propósito de um banco de dados.

terça-feira, 26 de maio de 2009

AppEx - O "Easter egg" do XE - Parte II

O Application Builder

Nesta segunda parte, vou falar sobre o Application Builder.

Se você for bom observador, terá notado que, ao se conectar com o usuário HR, apareceu mais um daqueles botões enormes na página Home do AppEx: justamente o Application Builder!

Para que você descubra as potencialidades desta ferramenta, a Oracle desenvolveu algumas aplicações de exemplo, que você pode instalar facilmente no AppEx. Basta selecionar a opção Demonstrations, no menu suspenso do botão Application Builder.


Após selecionar esta opção, você verá a lista de aplicações de demonstração (três) e o status delas, se instalada ou não. Vamos instalar a primeira demonstração Sample Application. Para isto, clique no link Install.

Será pedido que você selecione o Schema onde instalar a aplicação. Aceite o Schema HR e clique Next. Você receberá um aviso e deverá confirmar. Basta clicar no botão Install.

Ao final, você verá a tela acima, informando que a aplicação de demonstração foi criada. Tem um monte de coisas nela, mas vamos apenas rodá-la neste momento. Basta clicar no botão Run Application.

Na tela de Login, logo abaixo dos campos User Name e Password, vem as informações necessárias para fazer o Login. Gosta de ler? Então blz... faça o Login.


Não fique tímido e navegue pelas telas da aplicação. Clique nas abas Customers, Products, Orders e Charts. Interessante, não?

Quando estiver visualizando as tabelas, note que à esquerda existe uma pequena figura de um lápis amarelo. Experimente clicar nele. Interessante, não?

Agora experimente na página Home da aplicação, clicar no link Add a new Custommer. Agora aponte os rótulos que identificam os campos. Notou uma exclamação azul? Hmmm, clique em um rótulo e veja o que acontece! Interessante, não?

Vou deixar como exercício você instalar as outras aplicações de demonstração e dar uma boa "fuçada" nelas. Você vai se maravilhar com as possibilidades do AppEx. E fique certo de uma coisa: você poderá desenvolver aplicações ainda mais "elegantes" do que estas da demonstração.

O AppEx é muito poderoso e, embora possua templates para telas, formulários e etc, nada impede que você crie os teus, usando CSS. Além disso, por trás dos bastidores, você pode escrever códigos em JAVA ou PL/SQL! Interessante, não?

See you...

AppEx - O "Easter egg" do XE - Parte I

Embutido no XE está uma poderosa ferramenta pouco compreendida e pouco utilizada, mesmo por aqueles que utilizam o XE como Banco de Dados.

Nesta postagem vou revelar alguns segredos e potencialidades do Application Express (apex) embutido No XE. Além de ser uma interface básica de gerenciamento do XE, o Apex é, ao mesmo tempo, um editor de aplicações para Web, como também o próprio servidor de aplicações para a Web!

Entrando no Appex

Para entrar no Apex, basta abrir um browser e digitar o endereço do Apex. O endereço do Apex é o endereço da máquina onde o XE está instalado : a porta de acesso / apex. Se você está estudando o XE, provavelmente ele está instalado em teu Desktop. Neste caso, ele é chamado de localhost, cujo endereço IP é o cabalístico 127.0.0.1. Então é só por o cursor na barra de endereços do browser e digitar:

http://127.0.0.1:8080/apex

Ao ser exibida a tela de login do Apex, digite o usuário e senha com o qual pretende conectar. Por enquanto, vamos usar o usuário SYSTEM.

A tela Home do Apex

Na tela principal do Apex (Home), você encontrará quatro botões enormes, através dos quais terá acesso à outras telas. Além disso, existe um painel de Links e o painel Usage Monitor.


No painel Usage Monitor, você poderá acompanhar o percentual de utilização dos recursos disponíveis no XE. Como sabem, o XE, por ser gratuito, tem suas limitações. E as principais são: seus arquivos de dados podem ter, "apenas", 4GB; utiliza apenas 1GB de RAM, mesmo que o sistema tenha mais que isto.

Apesar destas limitações, o XE pode e deve ser utilizado por pequenas e médias empresas. Mesmo sistemas com centenas, talvez milhares, de tabelas, milhões e milhões de registros, podem facilmente ser desenvolvidos usando o XE como plataforma de Banco de Dados. Acreditem!

Habilitando o usuário HR

Ao se instalar o XE, é criado automaticamente um "schema", que é usado como exemplo em toda a documentação da Oracle. Além disso, pode ser usado por você para fazer experiências, exercícios e "explorações" no universo do XE.

Para criar, excluir, habilitar ou desabilitar um usuário, via Apex, você acessa a opção Manage Users, clicando na seta para baixo ao lado direito do botão Administration e apontando Database Users.

Na tela que se abre, são listados todos os usuários. Clique no usuário HR, para que possamos "administrá-lo".


Observe cuidadosamente esta tela, pois ela começa a revelar algumas características ímpares do XE e de todos os Ssistemas de Gerenciamento de Bancos de Dados (SGBD) da Oracle Corp.

Numa postagem específica, irei explicar o real significado por trás do termo "Database Users". Por hora, vamos "habilitar" o usuário HR:

  1. Digite uma senha para HR e confirme-a;
  2. Mude o Account Status de Locked para Unlocked;
  3. Clique no botão Alter User.
Conectando com o usuário HR

Clique em Logout e depois em Login e entre agora com as "credencias" do usuário HR.


"Brincando" com o usuário HR

Fique à vontade para explorar o Apex, conectado como o usuário HR. Os bancos de dados Oracle são muito seguros. Nada do que você venha a fazer com o usuário HR, na sua configuração padrão, poderá causar algum "dano irreversível" ao banco de dados como um todo!

Vamos fazer um pequeno experimento: usar a tela de comandos SQL para listar as tabelas do usuário HR.
Selecione a opção Enter Command, clicando na seta do botão SQL e apontando SQL Commands.


Escreve o comando a seguir, depois clique no botão Run:

select *
from tab;

Será exibida no painel inferior (Results) e resultado deste comando. Você então verá uma lista com sete tabelas e uma view.

segunda-feira, 25 de maio de 2009

Tarefas após instalação no Windows e no Linux

Ok, você instalou o XE e tudo deu certo da primeira vez. Mas no dia seguinte você pode ter algumas "surpresinhas", que eu vou revelar aqui e dizer como contorná-las.

Se você é um mimado usuário do Windows, vai ficar todo feliz de ré-ligar (ou reiniciar) tua máquina e ver que tudo continua como "dantes"! Mas não fique tão feliz, pois isto tem um preço!

Se você é um bravo usuário do Linux, pode ficar um pouco decepcionado após ré-ligar (ou reiniciar) tua máquina e ver que alguma coisa "estranha" aconteceu: o XE não está funcionando! Mas não fique tão triste, pois isto tem uma compensação ;-).

Como esta postagem vai ficar grande, aqui vai um resumo:

Ao instalar o XE no Windows, ele deixa tudo automático, ou seja, sempre que você inicia o Windows ele carrega o XE para a memória e põe para funcionar. Se tua máquina for um Desktop de estudos, convém deixar o carregamento do XE em modo Manual.

Já no Linux, optamos por não carregá-lo automaticamente, ao iniciar o sistema. Então veremos como carregá-lo quando for necessário.


Os mimos do Windows e seu preço

A instalação do XE no windows é bem mais "tranquila" que no Linux, é verdade. E é verdade também que no dia seguinte tudo continua como antes: funcionando. Afinal, "ele" não pergunta muita coisa e faz tudo por você. Mas, qual é o bendito (ou maldito) preço que os mimados usuários do Windows pagam? Vou responder: menos memória e menos processador!

Ocorre que o Windows cria serviços dedicados ao XE, de modo que quando você reinicia a máquina o XE é iniciado automaticamente.

Qual o problema nisso tudo? Bem, a não ser que a instalação tenha sido em um servidor de banco de dados... nenhum! Mas se você instalou o XE em teu Desktop, para estudos (e creio ser o nosso caso aqui), poderá perder preciosos bytes de memória e fatias de tempo preciosas do processador, para fazer outras coisas, que não estudar o XE!

Hmmmm, está começando a fazer sentido?

Se a máquina Windows que você instalou o XE for tua máquina de estudos, talvez você queira liberar memória e processador, quando não estiver usando o XE. Sim ou não?

Se sim, continue lendo. Se não, ignore esta postagem!

Os Serviços do Windows dedicados ao XE

Para ver o serviços dedicados ao XE, abra o gerenciamento do computador e procure pelos serviços. Identifique dois serviços relevantes, destinados ao XE: OracleServiceXE e OracleXETNSListener.

Você poderá ver que eles estão Iniciados (coluna Status) e estão configurados como Tipo de inicialização Automático.

Então, para evitar que o Windows inicie o XE toda vez que ligar a máquina, clique duplo em cada um desses serviços e configure-o com o Tipo de inicialização Manual.

Quando precisar e quiser estudar o XE, basta iniciar manualmente estes serviços.

Os percalços dos usuários do Linux

Muito bem, os usuários do Linux não têm o problema de ter o XE lhes "roubando" memória e processador, quando não estão precisando dele. Por outro lado, precisam de um "esforço" a mais para iniciá-lo, toda vez que precisam dele!

Se você, usuário Linux, for na lista de aplicativos instalados e mandar Iniciar Banco de Dados, vai obter uma mensagem de erro.

Operation failed. cawasame is not a member of 'dba' group.

cawasame, obviamente, sou eu! No teu caso irá ver outro nome. Mas, por que isto ocorre?

O usuário "oculto" do XE

Ao instalar o XE no Linux, o programa de instalação faz duas coisas que precisamos saber: cria um usuário chamado oracle e cria um grupo chamado dba.

O usuário oracle é o "dono" do XE. E pertence ao grupo dba criado especialmente para ele. Quem pode iniciar / parar / apagar / etc o XE é o usuário oracle!

E agora? Bem, temos que fazer duas coisas: descobrir como acessar o usuário oracle e iniciar o XE e obter (quase) os mesmos privilégios que o usuário oracle tem.

Obtendo privilégios de DBA

Para você obter os privilégios de DBA, basta fazer parte do grupo dba. Simples assim! Para isto, conecte como root (su) e digite:

usermod -G dba usuario

usuario, obviamente, é teu nome de usuário.

Ativando o usuário oracle

Aproveitando que você está em modo root (su), crie uma senha para o usuario oracle. Assim, você poderá se conectar como "ele". Digite:

passwd oracle

O Linux irá pedir uma senha para o usuário oracle. Digite a senha e repita, para confirmar.

Pronto! Agora você está quase pronto para colocar o XE em operação. Mas talvez seja interessante você fechar a sessão e entrar nela em seguida, para "receber" os novos privilégios!

Finalmente, iniciando o XE, no Linux

Para iniciar o XE, você precisará fazer duas coisas: iniciar o Serviço e iniciar o Listener.
  • Iniciando o Serviço
Agora que você goza do privilégio de DBA, pode ir na lista de aplicativos instalados e mandar Iniciar Banco de Dados.
  • Preparando para iniciar o Listener
Infelizmente, para iniciar o Listener você terá que conectar como o usuário oracle. Nós poderíamos "enganar" o sistema e deixar teu usuário com este "poder". Mas para isto teríamos que dar privilégios perigosos ao teu usuário, como por exemplo a capacidade de deletar tudo que pertence ao XE. Segurança tem preço! Então vamos ter que fazer um esforço a mais.

Mas não é difícil! Agora que você sabe a senha do usuário oracle, basta "entrar" nele de um modo especial, usando o comando su. É só digitar:

su - oracle

Ao ser pedida a senha, é só você digitar a senha dada ao usuário oracle.
  • Definindo as variáveis de ambiente para o XE
Mesmo conectado como o usuário oracle, você ainda vai precisar definir as variáveis de ambiente, para que o XE possa "entender" o que você quer e o Linux saiba onde encontrar os comandos que você vai digitar.
Felizmente, o programa de instalação do XE cria um script, que você pode chamar. O nome do script é oracle_env.sh e encontra-se na pasta a seguir:

/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/


Então, uma vez conectado com o usuário oracle, você pode digitar:

source /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh

Assombrado?! LoL. Não precisa. Lembre-se que o terminal do Linux guarda um histórico dos comandos que você digita. Assim, da próxima vez é só usar a seta para-cima algumas vezes, para encontrar e executar este comando!

Voltando às variáveis... para ver que variáveis de ambiente são estas, você pode usar o comando env. Ao se digitar o comando env o Linux exibe as variáveis de ambiente "setadas" para o usuário conectado no terminal, naquele momento. Vejamos:

ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
ORACLE_SID=XE
NLS_LANG=BRAZILIAN PORTUGUESE_BRAZIL.AL32UTF8

Estas são específicas do XE. NLS_LANG determina como o XE irá tratar tipos data, hora, moeda, etc., e ainda a linguagem em que as mensagens serão exibidas, quando for necessário!

Além destas, o XE "se insere" em outras variáveis de ambiente essencias. Vejamos duas delas:

LD_LIBRARY_PATH=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib:/usr/lib64/mpi/gcc/openmpi/lib64
PATH=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin:/usr/lib64/mpi/gcc/openmpi/bin:(...)

  • Finalmente, iniciando o Listener
Agora que o ambiente está configura, basta digitar o seguinte comando:

lsnrctl start
  • Resumo da ópera Linux
Como o assunto foi extenso, vamos fazer um resumo do que é necessário para iniciar 100% o XE, depois de tomadas as medidas anteriores:
  1. Com teu usuário, inicie o Serviço do XE via menu de aplicativos
  2. Abra um terminal e conecte através do comando su - oracle
  3. Inicie as variáveis de ambiente, rodando aquele script
  4. "Start" o Listener, com aquele comando
  • Para finalizar, a "receita de parar o XE" no Linux:
  1. Com teu usuário, interrompa o Serviço do XE via menu de aplicativos (Interromper Banco de Dados)
  2. Abra um terminal e conecte através do comando su - oracle
  3. Inicie as variáveis de ambiente, rodando aquele script
  4. "Stop" o Listener, com o comando lsnrctl stop
Pronto! LoL

Instalando o Oracle 10g XE no LINUX

Sim, o Oracle 10g Express Edition (XE) também roda no LINUX!

Sem mais delongas, vamos à instalação. Mas antes, um aviso: se você não sabe quem é root, su ou sudo, então vá estudar um pouco de linux e volte aqui depois que tiver aprendido o quem são estas "figuras exóticas"!

Vou partir do princípio que você é um usuário típico de linux, e que está por dentro dos procedimentos de instalação de softwares nesta plataforma, ok? Bom, então vamos lá...

Neste tutorial, vou usar a versão .RPM do pacote de instalação, pois meu glorioso ambiente de teste é o OpenSuSE Linux 11.0.

Faça o download do arquivo de instalação do XE para sua home e depois abra um terminal:

Uma vez no terminal, entre em modo SuperUsuário (su) e digite o comando de instalação, como se segue:

rpm -ivh oracle-xe-10.2.0.1-1.0.i386.rpm

Algumas coisas serão exibidas na tela, indicando o progresso da instalação. Se tudo correr bem, e eu espero que sim, a instalação se dará sem muita "frescura". Ao final, observe uma frase importante: "You must run '/etc/init.d/oracle-xe configure'".

Após a instalação, você precisa rodar o script de configuração. Ainda como su, rode o script:

/etc/init.d/oracle-xe configure

Algumas mensagens irão aparecer e o script irá parar em alguns momentos, te pedindo alguns dados. Vamos visualizar as mensagens e ver que dados são estes:

Bem, o que você tem que fazer é aceitar os valores sugeridos, com excessão da última opção:

Specify the HTTP port that will be used for Oracle Application Express [8080]:
...
Specify a port that will be used for the database listener [1521]:
...
Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [y]:n

Depois explico o por que deste não para a úlltima pergunta. Tudo bem, tudo instalado, tudo configurado, e a última linha da mensagem é:

To access the Database Home Page go to "http://127.0.0.1:8080/apex"

Para testar se a instalação realmente foi perfeita, abra seu browse preferido, que espero seja o FireFox, e escreva http://127.0.0.1:8080/apex na barra de endereços.

Voilá!

domingo, 24 de maio de 2009

Instalando o Oracle 10g XE no Windows

Não há muito "mistério" para se instalar o Oracle 10g XE no windows. Basta fazer o download e proceder a instalação como com qualquer outro aplicativo "for windows".

  • Primeiro passo: o download

Para fazer o download do Oracle 10g XE -- que daqui para frente passarei a chamá-lo de XE -- basta ir na página oficial do XE e escolher a versão para o windows.
Observe o botão [FREE DOWNLOAD] e logo abaixo dele os links para a página de download da versão linux e da versão windows do XE.

Uma vez na página de download, você aceita os termos de licenciamento e escolhe qual versão baixar. Vou fazer uma breve explicação do que você vai encontrar lá:

(Western European) X (Universal)

Algumas pessoas, por serem brasileiras, terminam quase sempre por optar a versão Universal do XE, simplesmente porque vêem escrito Brazili
an Portuguese em algum lugar da descrição das características desta versão. "Big mistake!"
Deveriam prestar mais atenção ao que está escrito antes: "with the Database Homepage user interface available in the following languages"!

O que isto significa? Bem, o XE tem uma interface de "administração" em HTML. E é justamente isto que está sendo dito: que a interface de administração em HTML irá apresentar os textos em português do Brasil. Mas todo o resto é igual, ou seja, a "engenharia" por trás do XE é a mesma, tanto na versão Western European quanto na Universal.

Mas, qual o problema? Bem, a própria Oracle recomenda que, se o idioma inglês não for um problema para você, opte pela versão Western European. Ocorre que esta é a versão "number one", a que eles desenvolvem, testam, blá-blá-blá, blá-blá-blá... Somente depois é que eles cuidam das traduções para outros idiomas e etc. Aí que entram alguns problemas de PÉSSIMA TRADUÇÃO e surgem na tela termos muitas vezes incompreensíveis.

Acho mais fácil procurar um dicionário de inglês e eu mesmo decidir qual a melhor tradução para um termo qualquer, do que confiar num "gringo" traduzindo para mim algo do inglês para o português!

Bem, agora que fiz minhas considerações, fica a critério de cada um qual versão baixar...

  • Segundo passo: a instalação
Sinceramente, não vou perder tempo nesta etapa! Basta você executar o arquivo que você baixou e seguir o passo-a-passo, aceitando todos as opções que são apresentadas. Não mude nenhuma opção!

Todavia, algumas observações:

Quando chegar na tela acima, tenha cuidado em escolher uma boa senha. Esta senha será a senha do usuário SYSTEM, o "semi-deus", aquele que pode fazer quase tudo, inclusive apagar todo o banco de dados! Então escolha uma senha "forte" e que você seja capaz de memorizar.

Veja também que, apesar de eu estar instalando a versão Western European, as mensagens aparecem em português! Tchããã! O install do XE é "inteligente" o bastante para detectar as configurações do windows e "saber" em que país se encontra!

Nesta tela, o cuidado que você deve ter é anotar ou memorizar as "portas" usadas pelo XE. A porta 1521 é a porta padrão do 'Listener'. Vamos explicar isto em outra oportunidade, não prexisa se preocupar com ela. Mas a porta para 'Listener HTTP' informada na tela (8080) pode variar, conforme o caso. Se você já estiver usando esta porta para outra coisa, o XE irá escolher outra. Então é importante ver no teu caso qual o número informado. Esta porta deverá ser informada quando você tentar conectar ao XE, via sua interface HTML.


Aqui estamos nós, na interface HTML do XE! Observe o endereço na barra de endereços do navegador: http://127.0.0.1:8080/apex/

Tá, tem muito mais coisas na barra de endereços do que escrevi, mas não importa! São coisas das "entranhas" do XE aquelas coisas a mais. Todo vez que você quiser acessar a interface HTML do XE, o endereço é http://127.0.0.1:8080/apex/

Note a porta 8080 informada logo após os dois pontos. Como falei, pode mudar se em teu SO esta porta já estiver em uso!

Sobre o Oracle 10g XE

Oracle Database 10g Express Edition
Free to develop, deploy, and distribute

Oracle Database 10g Express Edition (Oracle Database XE) is an entry-level, small-footprint database based on the Oracle Database 10g Release 2 code base that's free to develop, deploy, and distribute; fast to download; and simple to administer. Oracle Database XE is a great starter database for:

  • Developers working on PHP, Java, .NET, XML, and Open Source applications
  • DBAs who need a free, starter database for training and deployment
  • Independent Software Vendors (ISVs) and hardware vendors who want a starter database to distribute free of charge
  • Educational institutions and students who need a free database for their curriculum
With Oracle Database XE, you can now develop and deploy applications with a powerful, proven, industry-leading infrastructure, and then upgrade when necessary without costly and complex migrations.

Oracle Database XE can be installed on any size host machine with any number of CPUs (one database per machine), but XE will store up to 4GB of user data, use up to 1GB of memory, and use one CPU on the host machine.

---X---

Uau! É um monte de coisas, para ser de graça!

Resolvi começar este Blog sobre o Oracle 10g XE com as palavras oficiais da Oracle, copiadas de seu site. Mas a minha intenção ao criar este Blog é registrar as minhas experiências com esta maravilhosa e gratuita versão do melhor servidor de banco de dados do mundo.

Nas páginas que se seguirão, irei mostrar como instalar, configurar, explorar e retirar do Oracle XE o máximo de suas potencialidades.

Não tenho a menor intenção de divulgar este Blog, nem de ser um "guru". Tudo o que quero, na verdade, é praticar o exercício de aprender enquanto escrevo.

Doravante, chamarei o Oracle 10g Express Edition de XE -- apenas XE!