Você está na página 1de 14

Criando um banco de dados Oracle 10g manualmente no Linux

Conhea o curso ao vivo:

Tcnicas de Produo e Estratgias de Contedo Digital

Uma das tarefas mais legais do DBA a criao de uma banco de dados manualmente, ou seja, sem a utilizao da ferramenta grfica DBCA (Database Configuration Assistant) da Oracle para realizar essa tarefa. Deste modo, o DBA consegue acompanhar todos os processos bsicos do incio ao fim da criao do banco de dados sem a necessidade de executar apenas um batch ou shell e acaba no sabendo o que aconteceu. Porm, antes de iniciar os passos, temos alguns pr-requisitos que devemos salientar, que so: 1. Possuir um hardware com os requisitos mnimos exigidos pela verso do banco de dados; 2. Verificar se o seu Linux homologado pela Oracle para efetuar a instalao do Oracle Server; 3. Ter os binrios do Oracle Server instalado no servidor. Ou seja, ter uma verso do Oracle Database 10g instalada corretamente no ambiente Linux, com todos os pacotes necessrios; 4. Conhecer a metodologia OFA (Optimal Flexible Architecture) para criao do banco de dados. Esses passos so necessrios para quem deseja criar um banco de dados manualmente, pois ir realizar uma instalao igual ao do DBCA, que na verso 10g j utiliza a metodologia OFA por padro. Abaixo esto alguns links para realizar a instalao apenas do software do Oracle Database, para quem no o possui instalado:Sites de referncia iMasters - Instalao do Oracle Database 11g em Linux Puschitz - Installing Oracle 10gR1, R2 on RHEL 4 OTN - Installing Oracle Database 10g Release 2 on Linux x86 Para dar mais enfse, vamos criar um "resumo" de um pequeno projeto de banco de dados, para conseguimos imaginar como ficar a nossa estrutura disponvel e o banco de dados em si.

Projeto de Banco de dados


Nome: RANET (DBNAME e SID) Plataforma: Linux Red Hat EL As 4 Volumetria Inicial: 2GB Tablespaces Permanentes: SYSTEM (500MB), SYSUAX (250MB) e UNDO (500MB). Tablespaces Aplicao para Dados: RADAT (500MB) Tablespaces Aplicao para ndices: RAIDX (250MB) Tablespaces Temporrias: TEMP Modo de Gerenciamento das tablespaces: LMT (Local Management Tablespace)

Valor em memria (SGA): 1GB Quantidade de usurios atendidos: 10 Portas do Listener: 1521 e 1522 E agora vamos ao que interessa!

1 Passo | Criando a estrutura fsica do banco de dados


A estrutura fsica consiste em diretrios que sero utilizados pelo banco de dados no nvel de sistema operacional, que podem ou no obedecer o padro OFA. Sua principal funo organizar e armazenar os arquivos do banco de dados no sistema operacional. Para a criao do banco de dados, devemos conhecer duas variveis de ambiente importantes criadas nas instalaes Unix/Linux, que so as variveis ORACLE_BASE e ORACLE_HOME. A varivel ORACLE_BASE o caminho da instalao do software do Oracle Database, no confunda com as pastas do banco de dados, como ORADATA e ADMIN, um ORACLE_BASE pode ser o mesmo para uma instalao do Database como do Application Server. A varivel ORACLE_HOME responsvel em dizer o caminho que os produtos do banco de dados esto executando, como os binrios, configurao de rede (SQL*NET), bibliotecas, grupos de programas e etc. No exemplo utilizado, nosso caminho para ORACLE_BASE e ORACLE_HOME este: ORACLE_BASE = /u01/app/oracle ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1 Aps validar as variveis da sua instalao ou verificar quais os caminhos de cada varivel, vamos criar os diretrios de dados e administrativos para o banco de dados. Quando estamos realizando um projeto de banco de dados, devemos analisar as opes que temos de armazenamento, organizao e volumes lgicos disponveis para sua criao, baseando-se a partir do ORACLE_BASE e File System disponveis. Nosso objetivo agora criar os diretrios administrativos do banco de dados, que seguiro a estrutura fsica abaixo: $ORACLE_BASE/admin/<nome_do_banco>/<diretorios> Conforme o exemplo abaixo:
[oracle@pelspos7h oracle]$ cd $ORACLE_BASE [oracle@pelspos7h product]$ mkdir admin [oracle@pelspos7h product]$ cd admin [oracle@pelspos7h admin]$ mkdir ranet [oracle@pelspos7h admin]$ cd ranet [oracle@pelspos7h ranet]$ mkdir adhoc adump bdump cdump flash_recovery_area udump exp[oracle@pelspos7h ranet]$ cd .. [oracle@pelspos7h admin]$ cd .. [oracle@pelspos7h product]$ ls -R |grep ranet ranet./admin/ranet: ./admin/ranet/adhoc: ./admin/ranet/adump: ./admin/ranet/bdump: ./admin/ranet/cdump: ./admin/ranet/flash_recovery_area:

./admin/ranet/udump: ./admin/ranet/exp:

Acima est a nossa estrutura fsica administrativa montada, onde cada um tem sua finalidade como: ./admin Responsvel por organizar os arquivos administrativos de cada instncia Oracle. ./admin/ranet: Pasta que recebe o nome do meu futuro banco de dados. ./admin/ranet/adhoc: Pasta destinada a armazenar scripts SQL, PL/SQL ou shells. ./admin/ranet/adump: Audit Dump, onde so gerados os arquivos e auditoria do banco de dados, com extenso AUD. ./admin/ranet/bdump: Background Dump, caminho que utilizado pelos processos de plano de fundo do Oracle e do alert.log da instncia. ./admin/ranet/cdump: Core Dump, onde so gerados traces do Core do Oracle, geralmente ligados a problemas do sistema operacional. ./admin/ranet/flash_recovery_area: Flashback Recovery Area (FRA) um caminho opcional no momento da criao do banco de dados. Nesse caminho, so gerados backupsets, backup pieces, archive logs, online logs e flashback logs. opcional pois dependendo do tamanho e quantidade de archived logs gerados pelo banco de dados, necessrio ter um disco dedicado ao FRA. ./admin/ranet/udump: User Dump, o diretrio que armazena os traces gerados por usurios ou por processos especficos do banco de dados. ./admin/ranet/exp: Export, diretrio destinado aos arquivos gerados atravs do Data Pump Export (Expdp) ou Export Utility (exp). Depois de realizar a criao dos diretrios administrativos, devemos criar a estrutura que ir armazenar os arquivos do banco de dados propriamente ditos, como datafiles, redo logs e control files. E, nesse momento, devemos verificar no servidor qual a melhor opo para o armazenamento desses arquivos, veja:
[oracle@pelspos7h oracle]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 127G 64G 57G 53% / none 2.0G 0 2.0G 0% /dev/shm /dev/sdb1 404G 279G 105G 73% /u02

No exemplo, a melhor opo para o meu banco de dados o FileSystem /u02, que tem bastante espao em disco sobrando, o FileSystem /u01 (que no est montado) ficou para os arquivos de traces, archives, dumps e os binrios do Oracle. Aps decidida a localizao dos arquivos, devemos criar as pastas para armazen-los.
[oracle@pelspos7h [oracle@pelspos7h [oracle@pelspos7h [oracle@pelspos7h [oracle@pelspos7h [oracle@pelspos7h [oracle@pelspos7h u02]$ mkdir oracle u02]$ cd oracle oracle]$ mkdir oradata oracle]$ cd oradata oradata]$ mkdir ranet oradata]$ cd ranet ranet]$ pwd/u02/oracle/oradata/ranet

Onde,
/u02/oracle/oradata/ranet | | | |-> de dados. | | |--------> | |---------------> |---------------------> dados. Diretrio para armazenamento dos arquivos do respectivo banco Diretrio para armazenamento de dados, segundo o padro OFA. Diretrio que especfica do software. File System com capacidade suficiente para criar o banco de

PRONTO! J estamos com a nossa estrutura fsica criada para suportar o novo banco de dados.

2 Passo | Criao do Arquivo de parmetros


O arquivo de parmetro, conhecido como PFILE, um arquivo texto responsvel pelas caractersticas e comportamento da instncia Oracle. Esses parmetros so para trabalhar diretamente em memria da mquina e pelo banco de dados fisicamente. um arquivo essencial para iniciar uma instncia Oracle. Abaixo vou colocar um arquivo de parmetro bsico para iniciar a instncia.
control_files db_name db_domain log_archive_dest db_block_size pga_aggregate_target processes sessions open_cursors undo_management undo_tablespace compatible sga_target nls_language nls_territory db_recovery_file_dest db_recovery_file_dest_size background_dump_dest core_dump_dest user_dump_dest audit_file_dest = = = = = = = = = = = = = = = = = = = = = (/u02/oracle/oradata/ranet/control01.ctl) ranet world LOCATION=LOCATION=USE_DB_RECOVERY_FILE_DEST 8192 250M 100 120 80 AUTO UNDOTBS 10.1.0.0.0 1G AMERICAN AMERICA /u01/app/oracle/admin/ranet/flash_recovery_area 10G /u01/app/oracle/admin/ranet/bdump /u01/app/oracle/admin/ranet/cdump /u01/app/oracle/admin/ranet/udump /u01/app/oracle/admin/ranet/adump

Veja que alguns parmetros receberam os valores da nossa estrutura fsica, seguindo o padro OFA. Deste modo, podemos salvar o nosso pfile em sua respectiva pasta (/u01/app/oracle/admin/ranet/pfile) como intranet, pois estamos seguindo um padro da Oracle, que init<nome_do_banco>.ora para gerar o arquivo.

Posteriormente, vamos criar um SPFILE, sigla para Server Parameter File, que um melhorando do PFILE, pois j um arquivo binrio, que permite alterar o valores para os parmetros dinmicos da instncia Oracle.

3 Passo | Preparando script de criao do banco de dados


Uma das tarefas que devemos realizar no momento a preparao do script que ir criar nosso banco de dados. Esse script ser necessrio para criar nosso banco de dados fisicamente. Lembre-se de que na arquitetura Oracle, quando trabalhamos com recursos em memria, chamamos de Instncia Oracle e quando vamos gravar, apagar, modificar, consultar e manipular os dados, estamos trabalhando diretamente no banco de dados fsico, onde ficam nossos datafiles, control files e redo logs. O Script para criao est abaixo:
CREATE DATABASE ranet MAXINSTANCES 1 MAXLOGHISTORY 1 MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 200 DATAFILE /u02/oracle/oradata/ranet/system01.dbf SIZE 500M AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SYSAUX DATAFILE /u02/oracle/oradata/ranet/sysaux01.dbf SIZE 500M AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE /u02/oracle/oradata/ranet/temp01.dbf SIZE 2000M AUTOEXTEND OFF SMALLFILE UNDO TABLESPACE UNDOTBS DATAFILE /u02/oracle/oradata/ranet/undotbs01.dbf SIZE 2000M AUTOEXTEND OFF CHARACTER SET WE8ISO8859P1 NATIONAL CHARACTER SET AL16UTF16 LOGFILE GROUP 1 (/u01/oracle/oradata/ranet/redo01a.log, /u02/oracle/oradata/ranet/redo01b.log) SIZE 50M, GROUP 2 (/u01/oracle/oradata/ranet/redo02a.log, /u02/oracle/oradata/ranet/redo02b.log) SIZE 50M, GROUP 3 (/u01/oracle/oradata/ranet/redo03a.log, /u02/oracle/oradata/ranet/redo03b.log) SIZE 50M USER SYS IDENTIFIED BY DBARODRIGO USER SYSTEM IDENTIFIED BY SUECO_REPITA;

O script acima possui diversos parmetros e instrues de criao das tablespaces do banco de dados, diga-se de passagem, as principais do banco de dados, e vamos discutir um pouco sobre cada ponto. Primeiro, vamos comentar sobre os parmetros utilizados na clusula de CREATE DATABASE, veja: MAXINSTANCES Especifica o nmero mximo de instncias simultneas para o banco de dados quando est em MOUNT ou OPEN. Vlido para bancos de dados com RAC (Real Application Cluster). MAXLOGHISTORY Especifica o nmero mximo de archived redo logs files para automatic media recovery. Vlido para bancos de dados com RAC (Real Application Cluster). MAXLOGFILES Especifica o nmero mximo de grupos de redo logs que o banco de dados pode possuir. MAXLOGMEMBERS Especifica o nmero mximo de membros (ou cpias do aruqivo de redo) que cada grupo pode ter. MAXDATAFILES

O nmero mximo de arquivos de dados (datafiles) do banco de dados. Agora vamos para as instrues que criam as principais tablespaces do banco de dados. DATAFILE /u02/oracle/oradata/ranet/system01.dbf SIZE 500M AUTOEXTEND ON NEXT 10240K Responsvel em criar a tablespace SYSTEM. Sem ele, sem banco de dados! No incio estamos criando a tablespace SYSTEM com apenas 500MB e com a opo de auto-expansvel a cada 1MB. SYSAUX DATAFILE /u02/oracle/oradata/ranet/sysaux01.dbf SIZE 500M AUTOEXTEND ON NEXT 10240K Essa tablespace nova e foi introduzida no Oracle 10g, a tablespace SYSAUX para "prestar suporte" a tablespace SYSTEM, com owners de produtos da prpria Oracle. Como Oracle Spatial, RMAN, Workflow e etc. A tablespace tambm ser criada com 500MB inicialmente. SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE /u02/oracle/oradata/ranet/temp01.dbf SIZE 2000M AUTOEXTEND OFF A tablespace temporria, muito utilizada no banco de dados para operaes de SORT, AGREGAO, CRIAO DE NDICE e etc. Vamos inici-la com 2GB, pois desde a criao do banco de dados ser muito utilizada, a nica diferena que estamos limitando o seu crescimento em 2GB, caso seja necessrio mais, aumentamos conforme a necessidade. SMALLFILE UNDO TABLESPACE "UNDOTBS" DATAFILE /u02/oracle/oradata/ranet/undotbs01.dbf SIZE 2000M AUTOEXTEND OFF Essa instruo responsvel pela criao da tablespace de UNDO, que ser chamada de "UNDOTBS", que o mesmo valor do parmetro undo_tablespace que colocamos em nosso PFILE. A tablespace de UNDO tem como finalidade armazenar nossos dados no comprometidos, desfazer as transaes sem sucesso e controlar as modificaes dos dados no banco de dados, falando resumidamente. CHARACTER SET WE8ISO8859P1 Especifica o conjunto de caracteres que ser armazenado no banco de dados. Se errar nesse momento o conjunto de caracteres, para alterar, somente reconstruindo o banco de dados. NATIONAL CHARACTER SET AL16UTF16 Especfica o conjunto nacional de caracteres, para armazenar os dados em colunas que so do tipo NCHAR, NVARCHAR2 e NCLOB. LOGFILE GROUP 1 (/u01/oracle/oradata/ranet/redo01a.log, /u02/oracle/oradata/ranet/redo01b.log) SIZE 50M, GROUP 2 (/u01/oracle/oradata/ranet/redo02a.log, /u02/oracle/oradata/ranet/redo02b.log) SIZE 50M, GROUP 3 (/u01/oracle/oradata/ranet/redo03a.log, /u02/oracle/oradata/ranet/redo03b.log) SIZE 50M Essas instrues especificam os membros e a quantidade dos grupos de redo log. Eles podem ser alterados posteriormente quando o banco de dados estiver criado. E perceba que em cada grupo (1,2,3) possui dois arquivos de redo log, isso se chama multiplexao. Caso um disco (/u01 ou /u02) d

problemas, ter uma replica do arquivo em outro disco, que poder facilitar a sua recuperao e no perder os dados. USER SYS IDENTIFIED BY DBARODRIGO A instruo acima para mencionar a senha do usurio SYS. USER SYSTEM IDENTIFIED BY SUECO_REPITA A instruo acima para mencionar a senha do usurio SYSTEM. Bom, j conseguimos criar o PFILE e o script do banco de dados, agora vamos colocar a mo na massa. Vamos realizar os processos que criao.

4 Passo | Processo de criao


Aps o PFILE e SCRIPT prontos, vamos realizar as atividades de criao do banco de dados. 4.1 - Definindo Variveis de ambiente Vamos logar na mquina em que ser criado o banco de dados, e vamos configurar a varivel de ambiente ORACLE_SID e conferir os valores de ORACLE_BASE e ORACLE_HOME. ORACLE_SID A varivel ORACLE_SID responsvel em dizer ao Oracle Server qual o nome do banco de dados que ser utilizado, e como estamos criando a base, devemos mencionar o seu nome, que o mesmo que o parmetro DB_NAME. Exemplo:
[oracle@pelspos7h adhoc]$ export ORACLE_SID=ranet [oracle@pelspos7h adhoc]$ echo $ORACLE_SID=ranet

Depois, vamos checar os valores de ORACLE_BASE e ORACLE_HOME.


[oracle@pelspos7h adhoc]$ echo $ORACLE_BASE/u01/app/oracle [oracle@pelspos7h adhoc]$ echo $ORACLE_HOME/u01/app/oracle/product/10.2.0/db_1

4.2 - Abrindo o SQL*PLUS Vamos iniciar o SQL*PLUS e nos conectar instncia.


[oracle@pelspos7h adhoc]$ sqlplus /nolog SQL*Plus: Release 10.2.0.4.0 - Production on Fri Feb 13 11:16:54 2009 Copyright (c) 1982, 2007, Oracle. SQL> conn / as sysdba Connected to an idle instance. All Rights Reserved.

A mensagem "Connected to an idle instance" normal, porque voc no iniciou a instncia. 4.3 - Iniciando a instncia Oracle Vamos pegar o caminho completo do nosso PFILE e vamos iniciar a instncia, com o comando STARTUP NOMOUNT, que significa que vamos apenas carregar seus valores em memria, pois ainda no temos o control file da base criado.
SQL> startup nomount pfile=/u01/app/oracle/admin/ranet/pfile/initranet.ora; ORACLE instance started. Total System Global Area 524288000 bytes Fixed Size 1268412 bytes

Variable Size Database Buffers Redo Buffers

146801988 bytes 369098752 bytes 7118848 bytes

Instncia iniciada em modo NOMOUNT. Podemos prosseguir. 4.4 - Criando o banco de dados Vamos executar o script de criao do banco de dados.
SQL> @/u01/app/oracle/admin/ranet/adhoc/create_db.sql Database created.

Nesse momento criamos o banco de dados, os arquivos com extenso .DBF, .CTL e .LOG devem estar disponveis no sistema operacional. Como no exemplo:
oracle@pelspos7h ranet]$ ls -ltr total 3390508 -rw-r----- 1 oracle oinstall 52429312 -rw-r----- 1 oracle oinstall 52429312 -rw-r----- 1 oracle oinstall 52429312 -rw-r----- 1 oracle oinstall 52429312 -rw-r----- 1 oracle oinstall 2097160192 -rw-r----- 1 oracle oinstall 524296192 -rw-r----- 1 oracle oinstall 2097160192 -rw-r----- 1 oracle oinstall 524296192 -rw-r----- 1 oracle oinstall 52429312 -rw-r----- 1 oracle oinstall 52429312 -rw-r----- 1 oracle oinstall 8011776

Feb Feb Feb Feb Feb Feb Feb Feb Feb Feb Feb

13 13 13 13 13 13 13 13 13 13 13

11:24 11:24 11:24 11:24 11:25 11:25 13:55 13:55 14:00 14:00 14:04

redo03b.log redo03a.log redo02b.log redo02a.log temp01.dbf sysaux01.dbf undotbs01.dbf system01.dbf redo01b.log redo01a.log control01.ctl

O comando acima foi para verificar nossos datafiles, redo logs e control files. Criados com sucesso. 4.5 - Criando o dicionrio de dados Oracle A criao do dicionrio de dados do Oracle atravs de scripts que a prpria Oracle fornece quando instalado o software. Esses scripts NO PODEM SER MODIFICADOS e toda vez que for criar um banco de dados, devem ser executados. Eles so obrigatrios. A localizao dos scripts fica em $ORACLE_HOME/rdbms/admin, nessa pasta existem diversos scripts que so usados para criao de pacotes administrativos, de produtos adicionais e etc. Assim que localizados, devemos executar os seguintes scripts, obrigatrios: catalog.sql Cria as views do dicionrio de dados. catproc.sql Executa diversos scripts para criao de views e objetos necessrios para o banco de dados. Veja o exemplo:
SQL> @?/rdbms/admin/catalog.sql ... SQL> @?/rdbms/admin/catproc.sql

Como os scripts so longos e principalmente o catproc.sql que chama diversos outros scripts do /rdbms/admin, essa operao pode demorar um pouco, ento pode ir tomar um cafezinho nesse momento.

Dica 1 No linux, para executar os scripts voc pode utilizar os seguintes caminhos na execuo, $ORACLE_HOME/rdbms/admin ou simplesmente ?/rdbms/admin. Aps o trmino da execuo do catproc.sql, vamos verificar nosso novo banco de dados. Vamos efetuar as seguintes instrues SQL:
SQL> select instance_name, host_name, status from v$instance; INSTANCE_NAME HOST_NAME STATUS ---------------- ------------------------------ -----------ranet pelspos7h OPEN 1 row selected.

Com isso, temos nosso banco de dados no ar. Para quem j conhece a arquitetura Oracle, quando um banco de dados criado, estar sempre no modo NOARCHIVELOG, como mostra o exemplo:
SQL> select log_mode from v$database; LOG_MODE -----------NOARCHIVELOG 1 row selected.

E caso queira mudar para o modo ARCHIVELOG e trabalhar com as vantagens que o ARCHIVELOG, pode lhe oferecer para recuperao do banco de dados, basta fazer os procedimentos abaixo: 4.5.1 - Descendo o banco de dados
SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down.

4.5.2 - Colocando o banco de dados em modo MOUNT


SQL> startup mount pfile=/u01/app/oracle/admin/ranet/pfile/initranet.ora; ORACLE instance started. Total System Global Area 524288000 bytes Fixed Size 1268412 bytes Variable Size 146801988 bytes Database Buffers 369098752 bytes Redo Buffers 7118848 bytes Database mounted.

Dica 2 Sempre que trabalhar com o pfile em $ORACLE_BASE/admin/ranet/pfile, quando for realizar qualquer tipo de startup, ir aparecer o erro ORA-01078 e LRM-00109, pois o arquivo de parmetro no se encontra no diretrio padro do Oracle, que $ORACLE_HOME/dbs. Se quiser resolver esse tipo de problema, copie o seu arquivo de parmetro para o diretrio $ORACLE_HOME/dbs e PRONTO! 4.5.3 - Alterar o modo de arquivamento do banco de dados
SQL> alter database archivelog; Database altered.

4.5.4 - Abrindo o banco de dados SQL> alter database open; Database altered. 4.5.5 - Verificando o modo de arquivamento
SQL> archive log list; Database log mode Automatic archival Archive Mode Enabled

Archive destination Oldest online log sequence Next log sequence to archive Current log sequence

USE_DB_RECOVERY_FILE_DEST 13 15 15

4.5.6 - Fora a gerao dos archived logs


SQL> alter system switch logfile; System altered. SQL> alter system switch logfile; System altered. SQL> alter system switch logfile; System altered.

Agora, verifique a origem dos seus archived logs e veja-os no sistema operacional. Foi executado o comando ALTER SYSTEM SWITCH LOGFILE trs vezes, pois ns tinhamos trs grupos de redo logs.
SQL> show parameters db_reco NAME TYPE VALUE ------------------------------------ ----------- -----------------------------db_recovery_file_dest string /u01/app/oracle/admin/ranet/fl ashback_area db_recovery_file_dest_size big integer 10G SQL> host; [oracle@pelspos7h adhoc]$ cd /u01/app/oracle/admin/ranet/flashback_area [oracle@pelspos7h flashback_area]$ ls -ltr total 4 drwxr-x--- 3 oracle oinstall 4096 Feb 13 14:52 RANET [oracle@pelspos7h flashback_area]$ ls -R .: RANET ./RANET: archivelog ./RANET/archivelog: 2009_02_13 ./RANET/archivelog/2009_02_13: o1_mf_1_15_4sc99r39_.arc o1_mf_1_16_4sc99x0o_.arc o1_mf_1_17_4sc9b2j5_.arc

PRONTO! Agora j temos um banco de dados criado e trabalhando no modo archivelog, agora temos que criar as tablespaces que fazem parte do projeto de banco de dados e realizar alguns ajustes finais, como criao do SPFILE, LISTENER, TNSNAMES e um backup do banco.

5 passo | O projeto de banco de dados


Como o objetivo era aproximar ao mximo do mundo corporativo, criamos um micro-projeto no incio para podermos criar um banco de dados com alguns recursos e preparado para aplicao. Todo o processo de criao do banco de dados foi realizado, agora falta somente criar as tablespaces necessrias e ajustes no banco de dados para disponibilizar aos usurios. 5.1 - Criao da tablespace RADAT A tablespace RADAT ser para abrigar todas as tabelas de usurios ou aplicao, e seu tamanho inicial de 500MB.
SQL> create tablespace RADAT 2 datafile 3 /u02/oracle/oradata/ranet/radat01.dbf size 500M 4 online 5 permanent 6 extent management local autoallocate 7 segment space management auto; Tablespace created.

5.2 - Criao da tablespace RAIDX A tablespace RAIDX ir armazenar os ndices dos usurios ou aplicao, e seu volume inicial de 200MB.
SQL> create tablespace RAIDX 2 datafile 3 /u02/oracle/oradata/ranet/raidx01.dbf size 250M 4 online 5 permanent 6 extent management local autoallocate 7 segment space management auto; Tablespace created.

Na criao das tablespaces foram utilizadas algumas opes de criao, como por exemplo o extent management e segment space. Para tirar as dvidas de como trabalha cada opo, leia o documento oficial, Oracle Database SQL Reference 10g Release 2.

6 Passo | Criando um SPFILE


Uma dos recursos importantes ao DBA a utilizao do SPFILE, que permite ao DBA alterar alguns parmetros dinmicos sem a necessidade de efetuar um stop/start no banco de dados em horrios no apropriados. Para criar o SPFILE bem simples, veja:
SQL> create spfile from pfile=/u01/app/oracle/admin/ranet/pfile/initranet.ora; File created.

Para confirmar que iremos utilizar os valores dos parmetros que montamos o banco de dados, criamos o spfile a partir do nosso arquivo de parmetros construdo no incio, por isso a passagem do caminho completo e o nome do pfile. Porm, mesmo como o SPFILE criado, ainda no possvel utilizar-lo, como mostra o comando abaixo:
SQL> show parameters spfile NAME TYPE VALUE ------------------------------------ ----------- -----------------------------spfile string

Para comear a utilizao do SPFILE, necessrio um stop/start do base, e logo depois verifique se a coluna VALUE j est preenchida com o caminho completo e nome do seu SPFILE.
SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup; ORACLE instance started. Total System Global Area 524288000 bytes Fixed Size 1268412 bytes Variable Size 146801988 bytes Database Buffers 369098752 bytes Redo Buffers 7118848 bytes Database mounted. Database opened. SQL> show parameters spfile NAME TYPE VALUE ------------------------------------ ----------- -----------------------------spfile string /u01/app/oracle/product/10.2.0 /db_1/dbs/spfileranet.ora

Como dito na Dica 2, o caminho utilizado pelo Oracle foi o caminho padro, $ORACLE_HOME/dbs.

7 Passo | Criando os servios de rede

Como j estamos com todo o nosso banco de dados criado, vamos ter que disponibilizar aos usurios e possveis aplicaes, e para isso, precisamos do servio ouvinte (LISTENER) e depois efetuar as configuraes nas mquinas client (TNSNAMES) para acessar o banco de dados. E para isso, devemos configurar os arquivos responsveis por essa tarefa. 7.1 - Criando o Listener A atividade a ser realizada agora a criao do LISTENER, ou o servio ouvinte, que um processo separado no banco de dados que tem como responsabilidade receber as conexes dos clientes (usurios ou outras bases de dados) e gerenciar o trfego e pedidos dessas requisies. O arquivo LISTENER.ORA que pode ser encontrado em $ORACLE_HOME/network/admin o resposvel por esse servio. Abaixo segue um exemplo de criao de um LISTENER usando protocolo TCP e disponibilizando as portas 1521 e 1522 para comunicao. Arquivo: LISTENER.ORA
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = PELSPOS7H)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = PELSPOS7H)(PORT = 1522)) ) )

Aps criar o seu arquivo listener.ora e salv-lo, dever iniciar o servio do listener, usando o aplicativo LSNRCTL (Listener Control), veja:
[oracle@pelspos7h admin]$ lsnrctl LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 27-FEB-2009 23:06:18 Copyright (c) 1991, 2007, Oracle. All rights reserved. Welcome to LSNRCTL, type help for information. LSNRCTL> status Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=PELSPOS7H)(PORT=1521))) TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linux Error: 111: Connection refused Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=PELSPOS7H)(PORT=1522))) TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linux Error: 111: Connection refused

Ao verificar o atual status do servio de LISTENER, verificamos que no est disponvel, basta iniciarmos o servio e pronto! Aps a configurao nos clientes, a comunicao ser possvel com o banco de dados.
LSNRCTL> start LISTENER Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 10.2.0.4.0 - Production System parameter file is /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora Log messages written to /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=pelspos7h)(PORT=1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=pelspos7h)(PORT=1522))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=PELSPOS7H)(PORT=1521))) STATUS of the LISTENER -----------------------Alias LISTENER Version TNSLSNR for Linux: Version 10.2.0.4.0 - Production Start Date 27-FEB-2009 23:06:38 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication

SNMP OFF Listener Parameter File /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora Listener Log File /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=pelspos7h)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=pelspos7h)(PORT=1522))) The listener supports no services The command completed successfully

Dica 3 Na verso do Oracle Database 10g, existe uma opo no SQL*NET de trabalhar por servios ou SERVICE_NAME, onde devero ser realizados outros procedimentos. Mais detalhes nesse documento Quick Start to Oracle Net Connections. PRONTO! O servio no lado do servidor de banco de dados j est configurado e pronto para utilizao. 7.2 - Configurando o TNSNAMES.ORA e SQLNET.ORA do cliente Os arquivos TNSNAMES.ORA e SQLNET.ORA so os arquivos de configurao no lado do cliente ou em algum banco de dados remoto, cada arquivo com sua respectiva funo. O arquivo TNSNAMES.ORA tem como finalidade fornecer as principais informaes para um servio ouvinte, como nome do banco de dados, porta de comunicao, tipo de protocolo utilizado e host de destino. A funo do arquivo SQLNET.ORA dizer o metdo de conexo, habilitar a rota de especficas conexes, tipo de autenticao utilizada e fornecer um rastreamento detalhado sobre a comunicao do cliente e servidor. Ambos os arquivos podem ser encontrados em $ORACLE_HOME/network/admin. Abaixo segue um modelo que iremos utilizar. Arquivo: SQLNET.ORA
AUTOMATIC_IPC = OFF names.directory_path = (TNSNAMES) names.default_domain = world name.default_zone = world

Arquivo: TNSNAMES.ORA
ranet.WORLD = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = 10.72.30.83)(Port = 1522)) ) (CONNECT_DATA = (SID = ranet) ) )

Caso voc queira acessar o seu banco de dados de uma outra mquina que tenha o Oracle Client instalado, basta adicionar a entrada de TNS acima, mostrada no modelo do TNSNAMES.ORA e caso seja necessrio, colocar as configuraes de SQLNET acima. 7.3 - Validao da conexo Ao realizar todas as tarefas acima de configurao dos arquivos do SQLNET, basta validar se a conexo com o banco de dados remotamente ser realizada com sucesso, para isso, basta utilizar o aplicativo TNSPING para validar. Exemplo.
[oracle@pelspos7h admin]$ tnsping ranet TNS Ping Utility for Linux: Version 10.2.0.4.0 - Production on 27-FEB-2009 23:33:58 Copyright (c) 1997, 2007, Oracle. All rights reserved. Used parameter files:

/u01/app/oracle/product/10.2.0/db_1/network/admin/sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = 10.72.30.83)(Port = 1522))) (CONNECT_DATA = (SID=ranet))) OK (0 msec)

UFA! Agora podemos liberar o nosso mini-banco de dados aos usurios e iniciar posteriormente as configuraes de usurios e aplicaes na base. Esse artigo foi bem longo e cansativo, porm, a principal ideia era fornecer os conceitos bsicos na criao de um banco de dados manualmente, como:

Entender os conceitos do Optial Flexible Architecture (OFA) Variveis de ambiente essnciais ao Oracle; Entender os scripts e processos de criao do banco de dados; Conhecer os scripts bsicos para criar o dicionrio de dados do Oracle Server; Colocar o banco de dados no modo de arquivamento automtico; Realizar as tarefas bsicas de tablespaces para um determinado projeto; Ajustar o banco de dados para acesso remoto.

Todos esses passos so de real importncia para um projeto de banco de dados, e nunca se esquea: depois de realizar todas as tarefas acima, faa um BACKUP FULL do banco de dados para no ter problemas e aumentar a segurana do projeto. Qualquer dvida, crtica e sugesto, estou disponvel no e-mail ou no blog. Abraos,

Você também pode gostar