Вы находитесь на странице: 1из 42

Criar user no oracle

Para criar um usurio no Oracle utilizando um tablespace sem limite de espao, com o nome meuusuario e senha minhasenha com alguns privilgios bsicos para conseguir logar, criar e apagar tabelas e outros objetos execute: CREATE TABLESPACE meutablespace LOGGING DATAFILE /oracle10/oradata/minhabase/meutablespace.dbf SIZE 32m AUTOEXTEND ON NEXT 32m EXTENT MANAGEMENT LOCAL; CREATE USER meuusuario IDENTIFIED BY minhasenha DEFAULT TABLESPACE MEUTABLESPACE QUOTA UNLIMITED ON MEUTABLESPACE; GRANT create session, alter session, select_catalog_role, execute_catalog_role, create table, create procedure, create view, create materialized view, create trigger, create sequence, create any directory, create type, create synonym, administer database trigger TO meuusuario; Observaes: Eu testei estes comandos no Oracle 10G. And now in english: To create a user in Oracle with an unlimited tablespace, with username myuser, password mypass and with the basic privileges in order to login, create and remove tables and some other objects run: CREATE TABLESPACE mytablespace LOGGING DATAFILE /oracle10/oradata/mybase/myablespace.dbf SIZE 32m AUTOEXTEND ON NEXT 32m EXTENT MANAGEMENT LOCAL; CREATE USER myuser IDENTIFIED BY mypass DEFAULT TABLESPACE mytablespace QUOTA UNLIMITED ON mytablespace; GRANT create session, alter session, select_catalog_role, execute_catalog_role, create table, create procedure, create view, create materialized view, create trigger, create sequence, create any directory, create type, create synonym, administer database trigger TO myuser;

A sintaxe para a criao de usurios seria a seguinte: CREATE USER NOME_USUARIO IDENTIFIED BY CHAVE_ACESSO [DEFAULT TABLESPACE ESPACO_TABELA] [TEMPORARY TABLESPACE ESPACO_TABELA] [QUOTA {INTEIRO {K | M} | UNLIMITED } ON ESPACO_TABELA] [PROFILE PERFIL]; DEFAULT TABLESPACE= Atribui a um usurio o tablespace padro para armazenar os objetos que acha. Se no se atribui nenhum, o tablespace padro SYSTEM. TEMPORARY TABLESPACE= Especifica o nome do tablespace para trabalhar temporais. Se no se especifica nenhum, o tablespace padro SYSTEM. QUOTA= Atribui um espao em megabites ou kilobites no tablespace atribudo. Se no se especifica esta clusula, o usurio no tem quota atribuda e no poder criar objetos no tablespace. Para ter espao e acesso ilimitado a um tablespace : GRANT UNLIMITED TABLESPACE NOME_TABLESPACE; PROFILE= Atribui um perfil a um usurio. Com isto voc pode criar usurios sem nenhum problema. Por Sara lvarez

Oracle user um nome definido no banco de dados que se pode conecta-lo e acessar a determinados objetos segundo certas condies que o administrador estabelece. Os objetos do dicionrio de dados aos que um usurio pode acessar, encontram-se na vista DICTIONARY, que propriedade do usurio SYS. DESC DICTIONARY; Com a ordem: SELECT TABLENAME FROM DICTIONARY; Visualizam-se os objetos do dicionrio de dados aos que se pode acessar. Criao de usurios: CREATE USER NOME_USUARIO IDENTIFIED BY SENHA_ACESSO [DEFAULT TABLESPACE ESPACO_TABELA] [TEMPORARY TABLESPACE ESPACO_TABELA] [COTA {INTEIRO {K | M} | UNLIMITED } ON ESPACO_TABELA] [PROFILE PERFIL]; DEFAULT TABLESPACE= Atribui a um usurio o tablespace padro para armazenar os objetos que crie. Se no se atribui nenhum, o tablespace padro SYSTEM. TEMPORARY TABLESPACE= Especifica o nome do tablespace para trabalhar temporais. Se no se especifica nenhum, o tablespace padro SYSTEM. QUOTA= Atribui um espao em megabites ou kilobites no tablespace atribudo. Se no se especifica esta clusula, o usurio no tem cota atribuda e no poder criar objetos no tablespace. Para ter espao e acesso ilimitado a um tablespace : GRANT UNLIMITED TABLESPACE NOME_TABLESPACE; PROFILE= Atribui um perfil a um usurio. Modificao de usurios: ALTER USER NOME_USUARIO IDENTIFIED BY SENHA _ACESSO [DEFAULT TABLESPACE ESPACO_TABELA] [TEMPORARY TABLESPACE ESPACO_TABELA] [COTA {INTEIRO {K | M } | UNLIMITED } ON ESPACO_TABELA [PROFILE PERFIL];

Eliminao de usuarios: DROP USER USUARIO [CASCADE]; CASCADE= Suprime todos os objetos do usurio antes de elimina-lo.

ORACLE

Estou tentando criar um usurio via linha de comando, porm cheguei em um impasse. Como estou usando o usurio system se eu fizer assim funciona: Cdigo: create user novouser identified by senha_system Mas assim ele fica com a mesma senha do usurio system. Se eu tento fazer assim da erro de senha invlida: Cdigo: create user novouser identified by senha_novouser Tem como eu cadastrar um novo usurio j definindo uma senha para ele via linha de comando?

Criar usuario com privilgio de dba no oracle.

Resumo:
CREATE USER nome IDENTIFIED BY senha GRANT DBA TO nome Logo que comecei a usar o banco de dados Oracle uma dvida que surgiu logo de incio como criar um usurio com privilgios de DBA. Para isto necessrio seguir dois passos: 1 Passo: Criar um usurio no banco de dados: Sintaxe: CREATE USER nome IDENTIFIED BY senha nome - Consiste no nome que o seu usario ter. senha - Consiste na senha que o usurio utilizar para logar no sistema. Exemplo: CREATE USER MAGUSCODE IDENTIFIED BY MAGUSCODE Neste exemplo ser criado um usurio com o nome de MAGUSCODE com a senha de acesso MAGUSCODE 2 Passo: Atribuir privilgio de DBA. Sintaxe: GRANT DBA TO nome nome - Nome do usurio que ser atribudo o privilgio de DBA. Exemplo: GRANT DBA TO MAGUSCODE Neste exemplo ser atribudo ao usurio MAGUSCODE o previlgio de DBA.

Criao de usurio no ORACLE 10g


Criao de usurio no ORACLE 10g Conforme registrei em meu primeiro post, estou me dedicando ao estudo do ORACLE e decidi registrar aqui o fruto dos meus estudos. Aps a instalao do ORACLE, minha prxima misso foi criar um Banco de Dados onde posteriormente seriam criados os objetos a serem estudados. Porem apesar da criao deste banco, no me sinto seguro ainda para falar sobre este assunto. Desta forma irei comear minha sesso de artigos descrevendo o processo de criao de usurios. Para que uma pessoa possa realizar acesso a um banco de dados necessrio que este tenha uma conta com as devidas permisses. Abaixo, mostro um script simplificado, que pode ser utilizado para criar um usurio qualquer. CREATE USER IDENTIFIED BY DEFAULT TABLESPACE TEMPORARY TABLESPACE PROFILE QUOTA ON PASSWORD EXPIRE ACCOUNT Abaixo descrevo os parmetros acima: CREATE USER - Nome do usurio a ser criado. IDENTIFIED BY Aqui definido o tipo de autenticao do usurio Senha Especifica que o usurio ser autenticado por um usurio e senha do dicionrio de dados. Externally Realiza a autenticao atravs do sistema operacional. Globally As define que o usurio ser autenticado por um sistema externo de autenticao. DEFAULT TABLESPACE - Define a tablespace onde sero salvos os objetos criados pelo usurio. fundamental a definio de uma tablespace, pois caso est no seja definida, os objetos sero criados na tablespace default criada durante a instalao do ORACLE. TEMPORARY TABLESPACE Identifica a tablespace para armazenamento temporrio.

PROFILE - Definir profiles, pode facilitar muito a administrao de usurio. Um privilegio concedido/excludo de um profile, ser replicado para todos os usurios contidos neste. QUOTA Especifica o espao na tablespace que o usurio poder utilizar. Obs.: Caso este parmetro seja setado como unlimited o usurio poder alocar espao dentro de uma Tablespace sem limites. ON - Especifica o nome da Tablespace cujo espao ser controlado pela cota anteriormente citada. PASSWORD EXPIRE - Torna obrigatria a definio de uma nova senha do no prximo login. ACCOUNT Lock login bloqueado. Unlock login Habilitado. Aps criado o usurio, ser necessrio aplicar as permisses. Descreverei este ponto no prximo artigo.

Ol pessoal! O Oracle 10g gerencia e controla a segurana dos objetos criados em cada conta de usurios. Isso inclui: * Clusters * ndices * Tabelas * Views * Sequences Cada banco de dados Oracle possui uma lista de usurios vlidos, identificados por USERNAMES. Todos os usurios so cadastrados no Dicionrio de Dados do Banco em tabelas e views consultados pelo DBA. Quando o usurio do Banco de Dados criado, um Schema correspondente com mesmo nome criado para o usurio. Um Schema o conjunto de informaes sobre o USERNAME. Isso inclui: * Username * Password * Privilgios permitidos * Tablespaces de seus objetos * Quotas nas Tablespace * Profile * Role Agora que j entendemos o que vem a ser um usurio no Oracle, veremos como criar, alterar, excluir e monitor-los. Criando um novo usurio: SQL> CREATE USER [Usurio] IDENTIFIED BY [Senha/Externally/Globally as] DEFAULT TABLESPACE [Nome Default] TEMPORARY TABLESPACE [Nome Temporria] PROFILE [Nome Profile] QUOTA [K/M/Unlimited] ON [Tablespace] PASSWORD EXPIRE ACCOUNT [Lock/Unlock] Onde: * Usurio - Nome do usurio a ser criado. * Senha - Especifica a senha do usurio. * Externally - Verifica o acesso do usurio atravs do sistema operacional. * Globally As - Especifica que o usurio ser autenticado por um sistema externo de Gerenciamento de Segurana (Oracle Security Server) ou outro Sistema de Gerenciamento de autenticao.

* Default Tablespace - Identifica a Tablespace onde sero criados os objetos dos usurios. * Temporary Tablespace - Identifica a Tablespace para segmentos temporrios. * Profile - O nome do Profile associado ao usurio. * Quota - Especifica o valor da quota na Tablespace * Unlimited - Permite ao usurio alocar espao dentro de uma Tablespace sem limites. * On - Especifica o nome da Tablespace cujo espao ser controlado pea Quota. * Password Expire - Torna a senha do usurio extinta, solicitando uma nova senha no prximo login. * Lock - Desabilita o login. * Unlock - Habilita o login. Exemplo: SQL> CREATE USER iMasters IDENTIFIED BY Revista DEFAULT TABLESPACE User_Data TEMPORARY TABLESPACE User_Temp PROFILE [Nome Profile] QUOTA 15M ON User_Data QUOTA 10M ON User_Temp PASSWORD EXPIRE ACCOUNT Unlock PROFILE Default; Alterando um Usurio: SQL> ALTER USER <Usurio> <Opes a serem alteradas> <Novo Valor> DEFAULT TABLESPACE [Nome Default] Exemplo: SQL> ALTER USER iMasters QUOTA 5M ON User_Data; Excluindo um Usurio: SQL> DROP USER <Usurio> [CASCADE] <Opes a serem alteradas> <Novo Valor> DEFAULT TABLESPACE [Nome Default] Onde: CASCADE Permite a excluso de todos os objetos associados ao usurio. Essa opo somente ser usado em raras excees. Quando o usurio excludo com a opo CASCADE, o Username e seu Schema associado so removidos do Dicionrio

de Dados e todos objetos contidos no usurio so imediatamente excludos. Exemplo: SQL> DROP USER Imasters; Monitorando Usurios: O Oracle armazena, no Dicionrio de Dados, informaes completas de todos os usurios do banco. Views do Dicionrio de Dados: * DBA_USERS - Descreve todos os usurios do Banco de Dados * ALL_USERS - Lista os usurios visveis ao usurio atual, mas no os descreve * USER_USERS - Descreve somente o usurio atual * DBA_TS_QUOTAS - Descreve as quotas da Tablespace * USER_TS_QUOTAS - Descreve as quotas da Tablespace * USER_PASSWORD_LIMITS - Descreve os parmetros do perfil da senha que so atribudos ao usurio * USER_RESOURCE_LIMITS - Indica os limites do recurso para o usurio atual * DBA_PROFILES - Indica todos os perfis e seus limites * RESOURCE_COST - Lista o custo para cada recurso * VSESSION - Lista a informao da sesso para cada sesso atual, inclu o nome do usurio * VSESSTAT - Lista as estatsticas da sesso do usurio * PROXY_USERS - Descreve os usurios que podem assumir a identidade de outros usurios Todas as consultas s tabelas ou vises do Dicionrio de Dados s sero possveis com privilgio adequado. Exemplo: Mostrando informaes dos usurios, a partir do Dicionrio de Dados: SQL> SELECT USERNAME, PROFILE, ACCOUNT_STATUS FROM DBA_USERS; Cdigo: [Selecionar]
USERNAME PROFILE --------------------------SYS SYSTEM IMASTER ACCOUNT_STATUS -------------DEFAULT DEFAULT DEFAULT OPEN OPEN ---------------OPEN

Mostrando informaes sobre a quantidade de espao que um usurio pode usar nas Tablespaces, a partir do Dicionrio de Dados: SQL> SELECT * FROM DBA_TS_QUOTAS WHERE USERNAME IMASTER;

Cdigo: [Selecionar]
TABLESPACE USERNAME BYTES MAX_BYTES BLOCKS MAX_BLOCKS -------------------------------------------------------------------------------USERS IMASTER 0 512000 0 250

Para maiores detalhes e informaes, voc pode ler a Oracle Database Security Guide (disponvel para download no endereo http://www.oracle.com/pls/db102/homepage ) Por hoje tudo pessoal. At o prximo artigo! Fonte: Imasters

Como criar uma conexo adicional com Oracle 8i


27 de abril de 2010 Por Alex Santos

Requisitos: - Driver do Oracle 9i instalado. (Client) - Configurar uma conexo com o banco via ADO. Primeiramente temos que configurar o banco via ADO, ento:
1. Crie um arquivo de extenso .udl . 2. D um duplo clique e navegue para a aba Provedor . 3. Defina o Driver do Oracle 9i e ento faa as configuraes necessrias para acesso ao servidor Oracle 8i. 4. Efetue o teste de conexo e verifique se a conexo est ocorrendo com sucesso. 5. Ao fim, confirme as alteraes e clique em OK para finalizar esta tela.

Abra o arquivo .udl em um bloco de notas e obtenha a string de conexo. Algo parecido como: Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=scott;Data Source=oracle8i Agora, vamos criar uma conexo adicional no Maker escolhendo o tipo de banco ADO. No campo connection String defina a string obtida no arquivo .udl e informe o login e senha (Ex: scott/tiger (Oracle 8i default)) Ainda nesta tela, crie um novo parmetro chamado: DataSource e nele defina o endereo IP, Porta e Instncia. Ex: 192.168.1.148:1521:Oracle8i Limitaes: Como o Oracle 8i no trabalha com JOINS (caracteristica do banco), o Assistente SQL pode no funcionar como o esperado (Ex: Fazer relacionamentos entre entidades). Para isto, toda e qualquer manipulao com o banco pode ser feito a mo (SQL Ansi). Observao: O Oracle 8i no trabalha como conexo principal no Maker!

Criando um Banco de dados

Ola Pessoal,

Depois de instalar o Oracle Database 10g como no artigo anterior vamos dar continuidade no processo criando um banco de dados manualmente. Para criar um banco de dados devemos subir uma instncia e criar os data files que iro armazenar os nossos segmentos (tabelas, ndices, Dicionrio de dados, etc.) Visto que no momento da instalao do Oracle Database 10g j preparamos o nosso ambiente com as recomendaes da OFA (Arquitetura tima Flexvel) para receber nosso banco de dados, agora hora de entender o conceito de instncia e de banco de dados, e como funciona essa relao. Instncia Oracle Uma instncia consiste de processos em background e a alocao de memria do sistema operacional. Quando definimos os valores dos parmetros de memria no arquivo de parmetros (init.ora) o Oracle Server ir alocar do sistema operacional a quantidade de memria definida no arquivo de inicializao, e iniciar os processos em background responsveis por manipular o banco de dados. Essa combinao de processos em background e buffers de memria chamada de Instncia Oracle. Banco de Dados Um banco de dados consiste de arquivos de dados, ou seja, data files que armazenam os dados de usurios e o dicionrio de dados. O banco de dados manipulado pelos processos em background da instncia. Um nico banco de dados pode ser manipulado por uma nica instncia e uma nica instncia pode manipular um banco de dados. Em ambientes distribudos como Real Application Clusters possvel ter vrias instncias manipulando um banco de dados. Arquitetura Oracle

Para iniciar o processo, vamos criar o arquivo de parmetros (PFILE) nesse arquivo devemos definir os parmetros de inicializao da instncia ou seja, parmetros que especificam a localizao dos control files, alocao de memria, e outros parmetros importantes para iniciar a instncia.

Abaixo explico alguns parmetros que considero importantes e que so parmetros bsicos para iniciar nossa instncia. db_name : Este parmetro define o nome do banco de dados, um parmetro obrigatrio e no pode ser alterado depois da criao do banco de dados. instance_type: Deixamos esse valor como RDBMS, usado quando estamos criando uma instncia ASM db_domain : Definimos nesse parmetro um nome da localizao lgica do banco de dados dentro da estrutura de rede. db_files : Especifica o nmero de mximo de arquivos que pode ser abertos pelo banco de dados por padro esse valor 200. processes : Especifica o nmero mximo de processos do sistema operacional que podem se conectar ao banco de dados concorrentemente. db_block_size : Esse parmetro defini o tamanho do bloco padro para o banco de dados. Este block ser usado pela tablespace SYSTEM e por padro tambm em outras tablespaces. statistics_level : Esse parmetro usado para definir o nvel de estatsticas que sero geradas, muito teis para advisors. Vamos deixar com padro. audit_trail : Usado para habilitar a auditoria no banco de dados, para esse artigo vamos desabilitar a auditoria. background_dump_dest : Definimos nesse parmetro o diretrio onde sero armazenados os arquivos de trace para processos em background, e to importante alert.log user_dump_dest : Definimos nesse parmetro o diretrio onde sero armazenados os arquivos de trace gerados por processos de usurio. core_dump_dest : Definimos nesse parmetro o diretrio onde sero armazenados os arquivos de trace gerados por erros do software Oracle. compatible : Este parmetro define o nvel de compatibilidade que o banco de dados ir trabalhar, esse parmetro permite usarmos um banco de dados com uma nova release, mas sem perder a compatibilidade com verses antigas. Para o nosso exemplo no vamos precisar manter compatibilidade com nenhuma verso antiga, ou seja, vamos usar a compatibilidade do Oracle 10g 10.2.1.0 com todas as suas features. control_files : Aqui especificamos a localizao dos control files sempre seguindo as recomendaes da OFA de multiplicarmos os control files entre discos diferentes. cursor_sharing : Definindo esse parmetro como force fora instrues que usam apenas literais diferentes a usar o mesmo plano de execuo. Vamos deixar esse parmetro com o seu valor padro Exact, ou seja, desabilitado.

sga_target : Definimos aqui um valor para que o Oracle gerencie a nossa SGA de forma automtica. No nosso exemplo vou usar 512MB. pga_aggregate_target : Usurios precisam de reas em memria para realizar operaes intensivas, como ordenaes, joins etc. Definimos esse parmetro como um valor mximo que ir ser alocado de acordo com o uso dos usurios. db_file_multiblock_read_count : Esse parmetro especifica o numero mximo de blocos que o Oracle ir ler durante um Full table scans . Nesse exemplo vamos usar o seu valor padro. db_flashback_retention_target : Esse parmetro especifica em quanto tempo os logs so retidos no flash recovery area, e por quanto tempo em minutos podemos voltar nosso banco de dados em um estado anterior usando FlashBack. Vamos deixar esse parmetro como default. db_recovery_file_dest : Esse parmetro especifica a localizao padro para o Flash recovery area. db_recovery_file_dest_size : Esse parmetro especifica o tamanho limite para o Flash recovery area gerenciar os backups feitos pelo rman, por exemplo, possvel definir um valor mximo de armazenamento que o Flash recovery area ir manter. log_archive_dest_1 : Esse parmetro define a localizao que iro ser criados os archive logs. log_archive_format : Esse parmetro define o formato dos archive logs. Vamos deixar esse parmetro como padro. remote_login_passwordfile : Esse parmetro especifica se o Oracle vai checar por um arquivo de senha, muito til onde precisamos nos autenticar como SYSDBA atravs de um computador remoto. Se definirmos esse parmetro como None o Oracle ignora qualquer arquivo de senha, e a nica forma de autenticar como SYSDBA usando a autenticao do sistema operacional. undo_management : Esse parmetro especifica o modo de gerenciamento undo. Se definirmos esse parmetro para AUTO o servidor ir usar o modo de gerenciamento de undo automtico. Vamos definir esse parmetro como AUTO. undo_tablespace : Esse parmetro determina a tablespace padro para segmentos de UNDO, definiremos esse parmetro com o nome da nossa tablespace de undo. Criando o Banco de dados Agora hora de criarmos o nosso banco de dados. Como j temos toda a estrutura de diretrios criada, precisamos agora criar o arquivo de parmetros e o script de criao do banco de dados. O arquivo de parmetro como dito acima necessrio para iniciar a nossa instncia. Criando o arquivo de parmetros

Vamos logar com o usurio oracle e criar o arquivo init+<Oracle_sid> o nome deve ser estar nesse formato pois no momento do STARTUP o Oracle ir procurar um arquivo com o nome init+<Oracle_sid>.ora para iniciar a instncia. Como esse um arquivo de texto as alteraes que fizermos de forma dinmica, ou seja, com a base online no permaneceram quando reiniciarmos nossa instncia, pois a instncia sempre ir ler esse arquivo, a nica forma de fazermos as alteraes permanentes dar um shutdown na instncia e alterar o arquivo fisicamente. Isso pode ser um problema visto que ter que derrubar a instncia significa downtime no servio de banco de dados. Depois de criarmos o banco de dados, iremos criar o SPFILE um arquivo binrio que permite alterarmos alguns parmetros dinmicos e deixa-los como permanentes. Logue com o usurio oracle e defina o valor da varivel ORACLE_SID com o nome do banco de dados. [root@lab01 ~]# su - oracle [oracle@lab01 ~]$ export ORACLE_SID=producao [oracle@lab01 ~]$ echo $ORACLE_SID producao [oracle@lab01 ~]$ vi initproducao.ora ########################### Initialization Parameter ########################### # Author: Rodrigo Santana ###################################################################### #### db_name=producao instance_type=RDBMS db_domain=world db_files=1000 processes=600 db_block_size=8192 statistics_level=typical audit_trail=none background_dump_dest='/u01/app/oracle/admin/producao/bdump/' user_dump_dest='/u01/app/oracle/admin/producao/udump/'

core_dump_dest='/u01/app/oracle/admin/producao/cdump/' compatible=10.2.1.0 control_files=('/u02/oradata/producao/control01.ctl','/u03/oradata/producao/contr ol02.ctl') cursor_sharing=exact sga_target=512M pga_aggregate_target=300M db_file_multiblock_read_count=16 db_flashback_retention_target=7200 db_recovery_file_dest='/u02/oradata/producao/flash_recovery_area' db_recovery_file_dest_size='1000M' log_archive_dest_1='LOCATION=/u02/oradata/producao/archives' log_archive_format='log%t_%s_%r.arc' remote_login_passwordfile=none undo_management=auto undo_retention=7200 undo_tablespace=undotbs_01 Pressione ESC + : + x para salvar o arquivo initprod.ora. Para cumprir com as recomendaes da OFA vamos armazenar o nosso arquivo de parmetros no diretrio /u01/app/oracle/admin/producao/pfile . [oracle@lab01 ~]$ mv initproducao.ora /u01/app/oracle/admin/producao/pfile/ [oracle@lab01 ~]$ Depois de criarmos o arquivo de parmetros, vamos usa-lo para iniciar a nossa instncia. Apenas para relembrar, a instncia composta de processos em background e alocao de memria do sistema operacional. Para iniciar nossa instncia devemos ter configurado corretamente as variveis $ORACLE_HOME e $ORACLE_SID. A $ORACLE_HOME neste caso necessria para usarmos a ferramenta SQLPLUS sem especificarmos o seu caminho completo. E a varivel $ORACLE_SID necessria pois, no momento que emitirmos o comando

STARTUP o Oracle ir ler essa varivel e procurar pelo arquivo init<$ORACLE_SID>.ora . O comando echo imprimi o valor de uma varivel [oracle@lab01 ~]$ echo $ORACLE_SID producao [oracle@lab01 ~]$ echo $ORACLE_HOME /u01/app/oracle/product/10.2.0/db_1 [oracle@lab01 ~]$ Depois de certificarmos que as variveis necessrias esto corretamente configuradas, vamos agora iniciar a instncia usando a ferramenta SQLPLUS. [oracle@lab01 ~]$ sqlplus /nolog SQL*Plus: Release 10.2.0.1.0 - Production on Tue Jan 12 14:08:10 2010 Copyright (c) 1982, 2005, Oracle. All rights reserved. SQL> Como mostrado acima usei o comando sqlplus /nolog para conectar ao SQLPLUS sem informar o usurio. Agora precisamos nos autenticar como SYS e com os privilgios de SYSDBA para poder usar o comando STARTUP. SQL> connect sys as sysdba Enter password: Connected to an idle instance. SQL> Como mostrado acima, depois de emitir o comando CONNECT solicitado uma senha, essa senha podemos deixar em branco pois estamos usando a autenticao do sistema operacional. A mensagem Connected to an idle instance normal pois ainda no iniciamos a instncia. Agora hora de emitir o comando STARTUP NOMOUNT seguido do caminho do nosso arquivo de parmetros (PFILE) criando anteriormente. O Parmetro NOMOUNT usado quando no temos ainda control files para montar nosso banco de dados. Neste caso apenas a nossa instncia est iniciada. SQL> startup nomount pfile= '/u01/app/oracle/admin/producao/pfile/initproducao.ora'; ORACLE instance started.

Total System Global Area 536870912 bytes Fixed Size 1220432 bytes Variable Size 150995120 bytes Database Buffers 381681664 bytes Redo Buffers 2973696 bytes SQL> Para ver os processos em background do sistema operacional que a nossa instncia criou use o seguinte comando SQL> !ps -ef | grep producao oracle 4987 4984 0 14:13 ? 00:00:00 oracleproducao (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq))) oracle 5116 1 0 14:44 ? 00:00:00 ora_pmon_producao oracle 5118 1 0 14:44 ? 00:00:00 ora_psp0_producao oracle 5120 1 0 14:44 ? 00:00:00 ora_mman_producao oracle 5122 1 0 14:44 ? 00:00:00 ora_dbw0_producao oracle 5124 1 0 14:44 ? 00:00:00 ora_lgwr_producao oracle 5126 1 0 14:44 ? 00:00:00 ora_ckpt_producao oracle 5128 1 0 14:44 ? 00:00:00 ora_smon_producao oracle 5130 1 0 14:44 ? 00:00:00 ora_reco_producao oracle 5132 1 0 14:44 ? 00:00:00 ora_mmon_producao oracle 5134 1 0 14:44 ? 00:00:00 ora_mmnl_producao oracle 5135 5080 0 14:44 ? 00:00:00 oracleproducao (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq))) oracle 5175 5080 0 14:51 pts/1 00:00:00 /bin/bash -c ps -ef |grep producao oracle 5177 5175 0 14:51 pts/1 00:00:00 /bin/bash -c ps -ef |grep

producao SQL> Dica: Para visualizar todo o processo de inicializao da instncia detalhadamente veja o contedo do arquivo alert.log Criando o banco de dados O banco de dados que iremos criar ir conter uma tablespace system para armazenar o dicionrio de dados, um tablespace Sysaux, um par de control files e redo logs multiplexados, uma tablespace temporaria padro, uma tablespace de undo e uma tablespace de dados. Segue o script de criao do banco de dados: create database producao user sys identified by 0r4cl3 user system identified by 0r4cl3 maxinstances 1 maxloghistory 1 maxlogfiles 6 maxlogmembers 5 character set US7ASCII national character set AL16UTF16 datafile '/u02/oradata/producao/system01.dbf' size 500M extent management LOCAL SYSAUX datafile '/u02/oradata/producao/sysaux01.dbf' size 500M DEFAULT TEMPORARY tablespace temp01 tempfile '/u02/oradata/producao/temp01_01.dbf' size 100M UNDO tablespace undotbs_01 datafile '/u02/oradata/producao/undotbs01.dbf' size 200M DEFAULT tablespace DATA datafile '/u02/oradata/producao/data01.dbf' size 500M

LOGFILE group 1 ('/u02/oradata/producao/redo01a.log' , '/u03/oradata/producao/redo01b.log') size 50M, group 2 ('/u02/oradata/producao/redo02a.log , '/u03/oradata/producao/redo02b.log') size 50M; Vou comentar alguns parmetros da instruo CREATE DATABASE create database producao : Define o nome do banco de dados como producao, ao executarmos o script de criao do banco de dados esse comando ir criar os control files na localizao especificada no arquivo de parmetros (initproducao.ora) user sys identified by 0r4cl3 : Define a senha do usurio SYS user system identified by 0r4cl3 : Define a senha do usurio SYSTEM maxinstances : Especifica o nmero mximo de instncias que podem manipular o banco de dados, usado quando estamos trabalhando com RAC. Como no estamos trabalhando com RAC vamos configurar esse parmetro com o valor 1. maxloghistory : Especifica o nmero mximo de archive redo logs para automatic media recovery maxlogfiles : Este parmetro especifica o nmero mximo de grupos de redo logs do banco de dados. Quando o nvel de compatibilidade inferior a 10.2.0 a nica forma de sobrescrever esse limite recriando o control file ou o banco de dados. Quando a compatibilidade do banco de dados for superior a 10.2.0 podemos aumentar o nmero de grupos de redo logs que o control file ser expandido conforme necessrio. Vamos configurar esse parmetro com 6 prevendo um futuro aumento no nmero de grupos de redo logs. maxlogmembers : Este parmetro especifica o nmero mximo de membros de cada redo grupo de redo log. A nica forma de sobrescreve esse parmetro recriando o banco de dados. Vamos configurar esse parmetro com 3. character set e national character set : Especifica o conjunto de carteres usados pelo banco de dados, vamos deixar esse parmetro com seu valor padro. datafile '/u02/oradata/producao/system01.dbf' size 500M Nesta linha acima estamos dizendo que esse ser o data file da nossa tablespace SYSTEM e com um tamanho de 500MB. A tablespace SYSTEM de suma importncia, pois, o dicionrio de dados criado dentro desta tablespace. extent management LOCAL

Na linha de comando acima estamos especificando que a nossa tablespace SYSTEM dever ser gerenciada localmente, ou invs do mtodo de gerenciamento por dicionrio. SYSAUX datafile '/u02/oradata/producao/sysaux01.dbf' size 500M Na linha acima estamos especificando o data file da tablespace SYSAUX. A tablespace SYSAUX uma tablespace que serve como auxiliar para a tablespace SYSTEM porque ela a tablespace padro para muitas funcionalidades de produtos da Oracle que requeriam sua prpria tablespace, isso reduz o nmero de tablespaces requeridas pelo banco de dados que voc precisa manter. DEFAULT TEMPORARY tablespace temp01 tempfile '/u02/oradata/producao/temp01_01.dbf' size 100M Na linha acima estamos especificando nossa tablespace temporria padro que ser chamada de temp01 e com um tamanho de 100MB. A tablespace temporria importante pois usada por operaes de sort (ordenaes) que no podem ser feitas em memria usam a tablespace temporria. Nesse exemplo temp01 ser nossa tablespace padro, ou seja, no momento da criao de qualquer usurio se no especificarmos a tablespace temporria a ser usada, ser atribuida a tablespace padro temp01. Se no criarmos uma tablespace padro, os usurios usaram como tablespace temporria a tablespace SYSTEM o que no uma boa prtica. UNDO tablespace undotbs_01 datafile '/u02/oradata/producao/undotbs01.dbf' size 200M Na linha acima estamos especificando a nossa tablespace de UNDO. A tablespace de UNDO usada para armazenar segmentos de undo. Quando executamos uma operao de DML dentro de uma transao, a transao vinculada a um segmento de undo na tablespace de undo corrente. Isso importante pois se precisarmos fazer um rollback a imagem inicial da transao (before image) ser lida a partir da tablespace de undo. Para esse exemplo nossa tablespace de undo ser chamada de undotbs01 e com um tamanho de 200MB. DEFAULT tablespace DATA datafile '/u02/oradata/producao/data01.dbf' size 500M Na linha acima estamos especificando nossa tablespace padro. Essa ser a tablespace atribuda a todos os usurios que no momento da criao no foram explicitamente atribudos a nenhuma tablespace, ou seja, se no momento da criao do usurio no atribuirmos ele a nenhuma tablespace, essa ser a tablespace atribuda por padro. Essa tablespace ser onde os usurios armazenaro seus segmentos como, tabelas, ndices, etc. LOGFILE group 1

('/u02/oradata/producao/redo01a.log' , '/u03/oradata/producao/redo01b.log') size 50M, group 2 ('/u02/oradata/producao/redo02a.log , '/u03/oradata/producao/redo02b.log') size 50M; Com os comandos acima, estamos definindo os grupos de redo logs, e os seus membros. Como mostrado acima, temos 2 grupos e cada grupo contendo 2 membros. Depois de criar o scrip de criao do banco de dados, vamos executar o script e salvar nos diretrios criados anteriormente. Certifique que a instncia est em modo nomount para executar o script, se ainda no iniciou a instncia emita o comando startup nomount conforme explicado acima. Para executar o script de criao do banco de dados, conecte ao SQLPLUS como SYSDBA e execute o script como abaixo: SQL> @create_database.sql Database created. SQL> Depois de criado vamos fazer algumas verificaes para saber se foi criado com sucesso nosso banco de dados. A query abaixo mostra o nome e o status da instncia. SQL> select instance_name, status from v$instance; INSTANCE_NAME STATUS ------------------------- -----------producao OPEN A segunda query mostra o nome do banco de dados e o estado em que ele est. SQL> select name, open_mode from v$database; NAME OPEN_MODE -------- ---------PRODUCAO READ WRITE Agora vamos verificar se os nossos data files, control files, redo logs foram criados com sucesso nas localizaes corretas. A seguinte query exibe a localizao dos demais arquivos ditos acima

SQL> select name 2 from v$controlfile 3 union 4 select name 5 from v$datafile 6 union 7 select member 8 from v$logfile; NAME -------------------------------------------------------------------------------/u02/oradata/producao/control01.ctl /u02/oradata/producao/data01.dbf /u02/oradata/producao/redo01a.log /u02/oradata/producao/redo02a.log /u02/oradata/producao/sysaux01.dbf /u02/oradata/producao/system01.dbf /u02/oradata/producao/undotbs01.dbf /u03/oradata/producao/control02.ctl /u03/oradata/producao/redo01b.log /u03/oradata/producao/redo02b.log 10 rows selected. Vamos verificar que esses arquivos foram criados com sucesso no sistema operacional, para isso fiz o seguinte: A partir do sqlplus possvel executar um comando do sistema operacional sem sair do utilitrio, basta usar o sinal de exclamao ! antes do comando, segue exemplo abaixo. SQL> !ls -l /u02/oradata/producao total 1851012

drwxr-xr-x 2 oracle oinstall 4096 Jan 8 15:57 archives -rw-r----- 1 oracle oinstall 5947392 Jan 15 15:29 control01.ctl -rw-r----- 1 oracle oinstall 524296192 Jan 15 15:06 data01.dbf drwxrwxr-x 2 oracle oinstall 4096 Dec 15 05:43 flash_recovery_area -rw-r----- 1 oracle oinstall 52429312 Jan 15 15:26 redo01a.log -rw-r----- 1 oracle oinstall 52429312 Jan 15 15:06 redo02a.log -rw-r----- 1 oracle oinstall 524296192 Jan 15 15:06 sysaux01.dbf -rw-r----- 1 oracle oinstall 524296192 Jan 15 15:21 system01.dbf -rw-r----- 1 oracle oinstall 104865792 Jan 15 15:06 temp01_01.dbf -rw-r----- 1 oracle oinstall 209723392 Jan 15 15:21 undotbs01.dbf SQL> SQL> !ls -l /u03/oradata/producao total 108352 -rw-r----- 1 oracle oinstall 5947392 Jan 15 15:29 control02.ctl -rw-r----- 1 oracle oinstall 52429312 Jan 15 15:26 redo01b.log -rw-r----- 1 oracle oinstall 52429312 Jan 15 15:06 redo02b.log SQL> Dica: Para ver de forma detalhada todos os passos da criao do banco de dados, examine o contedo do arquivo alert.log Pronto, criamos nosso banco de dados e nos certificamos que os arquivos relevantes foram criados. Devemos agora executar os scripts de criao do dicionrio de dados. Oracle fornece dois scripts importantes so eles: Catalog.sql : Popula o banco de dados com as views do dicionrio de dados, synonyms publics e outros objetos. Catproc.sql: Cria pacotes fornecidos pela Oracle e outros objetos para suportar o uso de codigo PL/SQL no banco de dados. Dica: Ignore qualquer mensagem erro mostrados na execuo dos scripts, a maioria deles so mostrados pois existem alguns objetos que foram excludos ou que no

existem mais. Se quiser pode executar os scripts novamente, voc no ver nenhum erro. Aguarde at o termino da execuo dos scripts, isso pode demorar alguns minutos. Executando os scripts SQL> @$ORACLE_HOME/rdbms/admin/catalog.sql Grant succeeded. PL/SQL procedure successfully completed. SQL> @$ORACLE_HOME/rdbms/admin/catproc.sql ............... No errors. Package body created. PL/SQL procedure successfully completed. SQL> Neste momento temos uma base de dados totalmente funcional. Agora vamos alterar o modo de arquivamento de logs do banco de dados, os modos de arquivamento disponveis so NOARCHIVELOG e ARCHIVELOG. O NOARCHIVELOG o modo de arquivamento padro. Com esse modo o arquivamento de redo logs so desabilitados, ou seja, quando os grupos de redo logs se tornarem completos, eles sero sobrescritos por novas transaes. Com isso as formas de recuperao do banco de dados nesse modo so muito restritas, por exemplo, no evento de uma falha em disco, apenas podemos voltar nosso banco de dados ao estado do ultimo backup full, ou seja, as transaes subseqentes ao nosso backup no estaro disponveis para a recuperao. No modo ARCHIVELOG o Oracle salva ou arquiva os redo logs cheios em arquivos chamados archive logs. Isso muito importante pois assim temos um registro de todas as alteraes do banco de dados de forma cronolgica salva em arquivos externos. Isso tambm far toda diferena na recuperao de um banco de dados, por exemplo, no evento da perda de um disco, pode-se votar um backup e todos os archive logs gerados depois do backup para recuperar o banco de dados sem perder qualquer dado armazenado no archive log. Sem dvidas o modo ARCHIVELOG o modo mais indicado para um banco de dados OLTP que no se pode perder qualquer informao. Alterando modo de arquivamento de logs Antes de alterarmos o modo de arquivamento de logs vamos confirmar o modo de arquivamento do nosso banco de dados com um simples select na view v$database.

SQL> select log_mode from v$database; LOG_MODE -----------NOARCHIVELOG 1 row selected. SQL> Ou ainda, o comando abaixo nos mostra mais informaes, como o Database log mode e Archive destination o Database log mode o modo de arquivamento do nosso banco de dados, e o Archive destination o destino dos archive logs. SQL> ARCHIVE LOG LIST Database log mode No Archive Mode Automatic archival Disabled Archive destination /u02/oradata/producao/archives Oldest online log sequence 8 Current log sequence 9 SQL> Como visto acima, esse modo de arquivamento padro. Vamos alterar para o modo ARCHIVELOG. Para isso precisamos desligar a nossa instncia e inicia-la no modo MOUNT. SQL> SHUTDOWN IMMEDIATE; Database closed. Database dismounted. ORACLE instance shut down. Iniciando a instncia. SQL> STARTUP MOUNT PFILE='/u01/app/oracle/admin/producao/pfile/initproducao.ora'; ORACLE instance started.

Total System Global Area 536870912 bytes Fixed Size 1220432 bytes Variable Size 150995120 bytes Database Buffers 381681664 bytes Redo Buffers 2973696 bytes Database mounted. SQL> Agora usamos o comando abaixo SQL> ALTER DATABASE ARCHIVELOG; Database altered. Visualizando o estado do nosso banco de dados depois de alterado. SQL> ARCHIVE LOG LIST Database log mode Archive Mode Automatic archival Enabled Archive destination /u02/oradata/producao/archives Oldest online log sequence 8 Next log sequence to archive 9 Current log sequence 9 SQL> Finalmente vamos abrir nosso banco de dados. SQL> ALTER DATABASE OPEN; Database altered. SQL> Criando o SPFILE Vamos criar o SPFILE que como explicado acima, um arquivo binrio que permite fazermos alteraes dinmicas de forma permanentes. Esse um recurso muito

importante para o DBA pois evita de termos que derrubar a instncia para alterarmos alguns parmetros. Para criar o SPFILE usamos os comandos abaixo. SQL> create spfile 2 from 3 pfile ='/u01/app/oracle/admin/producao/pfile/initproducao.ora'; File created. SQL> Depois de emitir o comando create spfile ser criado o arquivo spfileproducao.ora no diretrio $ORACLE_HOME/dbs. Para visualizar o arquivo use o comando abaixo: SQL> !ls $ORACLE_HOME/dbs hc_producao.dat initdw.ora init.ora spfileproducao.ora SQL> Mesmo depois de criado o spfile, o nosso banco de dados ainda usa o antigo arquivo initproducao.ora. Para forar o uso do SPFILE devemos derrubar a instncia e iniciala novamente. SQL> SHUTDOWN IMMEDIATE; Database closed. Database dismounted. ORACLE instance shut down. SQL> Agora vamos iniciar nosso banco de dados, para isso no precisamos especificar o parmetro pfile pois o Oracle ir procurar no diretrio $ORACLE_HOME/dbs o arquivo spfileproducao.ora e iniciar a instncia atravs dele. SQL> startup ORACLE instance started. Total System Global Area 536870912 bytes Fixed Size 1220432 bytes Variable Size 150995120 bytes

Database Buffers 381681664 bytes Redo Buffers 2973696 bytes Database mounted. Database opened. SQL> Configurando a rede Quando queremos abrir uma sesso no banco de dados a partir de um cliente da rede, precisamos nos conectar ao banco de dados atravs da rede. Todos os servidores que hospedam um banco de dados Oracle, deve executar um servio chamado Oracle Net Listener, cuja sua principal funo ouvir as requisies dos clientes que querem fazer logon no banco de dados. O Listener depois de verificar que o cliente tem as informaes correspondentes ao banco de dados (protocolo, nome da instncia e porta) passa a requisio ao banco de dados. O Banco de dados ir autenticar o usurio baseado nas informaes de nome de usurio e senha. No Oracle Database 10g o processo em background chamado PMON encarregado de dinamicamente registrar o banco de dados com o listener, isso quer dizer que quando iniciamos a nossa instncia o banco de dados automticamente se registra com o listener, e o listener j inicia ouvindo as requisies de conexo para esse banco de dados. Para gerenciar o listener usamos o utilitrio lsnrctl. Com o lsnrctl podemos visualizar o status do listener, iniciar o listener (start), parar o listener (stop) entre outras operaes. Vamos visualizar o status do listener, o mesmo deve est ouvindo as requisies para nosso banco de dados, j que o processo PMON encarregado de fazer essa tarefa. Para isso use o comando abaixo. [oracle@lab01 ~]$ lsnrctl status LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 25-JAN-2010 13:22:28 Copyright (c) 1991, 2005, Oracle. All rights reserved. Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) STATUS of the LISTENER -----------------------Alias LISTENER Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production

Start Date 25-JAN-2010 13:17:01 Uptime 0 days 0 hr. 5 min. 26 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Log File /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lab01)(PORT=1521))) Services Summary... Service "producao.world" has 1 instance(s). Instance "producao", status READY, has 1 handler(s) for this service... Service "producao_XPT.world" has 1 instance(s). Instance "producao", status READY, has 1 handler(s) for this service... The command completed successfully [oracle@lab01 ~]$ Como visto acima nosso listener j est iniciado e ouvindo as requisies para o banco de dados producao. Mas podemos tambm criar o nosso prprio listener, para isso precisamos criar o arquivo listener.ora. Nele definimos qual o endereo que ir ouvi as requisies, em qual porta iremos ouvir as requisies e at mesmo o protocolo de rede. Esse arquivo deve ser criado dentro do diretrio $ORACLE_HOME/netword/admin/. Abaixo segue o exemplo do arquivo listener.ora SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1) (SID_NAME = producao) )

) LISTENER = (DESCRIPTION = (ADDRESS =(PROTOCOL=tcp)(HOST=192.168.1.100)(PORT=1521)) ) Salve esse arquivo dentro do diretrio $ORACLE_HOME/network/admin/ com o nome listener.ora e vamos parar o listener e inicia-lo para que o mesmo passa a usar o nosso arquivo. Listando o arquivo [oracle@lab01 admin]$ pwd /u01/app/oracle/product/10.2.0/db_1/network/admin [oracle@lab01 admin]$ ls listener.ora samples shrept.lst tnsnames.ora [oracle@lab01 admin]$ Parando o listener [oracle@lab01 admin]$ lsnrctl stop LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 25-JAN-2010 13:29:40 Copyright (c) 1991, 2005, Oracle. All rights reserved. Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) The command completed successfully Iniciando o listener [oracle@lab01 admin]$ lsnrctl start LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 25-JAN-2010 13:29:55 Copyright (c) 1991, 2005, Oracle. All rights reserved. Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 10.2.0.1.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[oracle@lab01 admin]$ lsnrctl start LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 25-JAN-2010 13:29:55 Copyright (c) 1991, 2005, Oracle. All rights reserved. Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 10.2.0.1.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=lab01)(PORT=1521))) Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) STATUS of the LISTENER -----------------------Alias LISTENER Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production Start Date 25-JAN-2010 13:29:55 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=lab01)(PORT=1521))) The listener supports no services The command completed successfully [oracle@lab01 admin]$ .0/db_1/network/log/listener.log Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lab01)(PORT=1521))) Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) STATUS of the LISTENER -----------------------Alias LISTENER Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production Start Date 25-JAN-2010 13:29:55 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=lab01)(PORT=1521))) The listener supports no services

The command completed successfully [oracle@lab01 admin]$ Repare no comando acima que o parmetro listener Parameter File indica o nome e o caminho do nosso arquivo criado anteriormente.

Configurando o Enterprise Manager

O Enterprise manager uma ferramenta importante e ajuda na administrao e no monitoramento do banco de dados. A sua instalao no obrigatrio, mas aconselhvel pela Oracle. Para instalar invoque o utilitrio emca com os parmetros necessrios para criar o repositrio. Em seguida o utilitrio solicita o sid do banco de dados, a porta do listener, a senha para os usurios sys, dbsnmp e o sysman. Digite as informaes e pressione enter. Aguarde at que o utilitrio conclua a criao do repositrio. [oracle@lab01 ~]$ $ emca -config dbcontrol db -repos create STARTED EMCA at Jul 10, 2011 2:19:19 PM EM Configuration Assistant, Version 10.2.0.1.0 Production Copyright (c) 2003, 2005, Oracle. All rights reserved. Enter the following information: Database SID: producao Listener port number: 1521 Password for SYS user: Password for DBSNMP user: Password for SYSMAN user: Email address for notifications (optional): Outgoing Mail (SMTP) server for notifications (optional): ----------------------------------------------------------------You have specified the following settings Database ORACLE_HOME ................ /u01/app/oracle/product/10.2.0/db_1

Database hostname ................ oracle10g-01 Listener port number ................ 1521 Database SID ................ producao Email address for notifications ............... Outgoing Mail (SMTP) server for notifications ............... ----------------------------------------------------------------Do you wish to continue? [yes(Y)/no(N)]: Y Jul 10, 2011 2:20:46 PM oracle.sysman.emcp.EMConfig perform INFO: This operation is being logged at /u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/emca/producao/emca_2011-0710_02-19-19-PM.log. Jul 10, 2011 2:20:49 PM oracle.sysman.emcp.EMReposConfig createRepository INFO: Creating the EM repository (this may take a while) ... Jul 10, 2011 2:26:28 PM oracle.sysman.emcp.EMReposConfig invoke INFO: Repository successfully created Jul 10, 2011 2:26:41 PM oracle.sysman.emcp.ParamsManager getLocalListener WARNING: Error retrieving listener for oracle10g-01 Jul 10, 2011 2:26:47 PM oracle.sysman.emcp.util.DBControlUtil startOMS INFO: Starting Database Control (this may take a while) ... Jul 10, 2011 2:29:14 PM oracle.sysman.emcp.EMDBPostConfig performConfiguration INFO: Database Control started successfully Jul 10, 2011 2:29:19 PM oracle.sysman.emcp.EMDBPostConfig performConfiguration INFO: >>>>>>>>>>> The Database Control URL is http://lab01:1158/em <<<<<<<<<<< Enterprise Manager configuration completed successfully FINISHED EMCA at Jul 10, 2011 2:29:19 PM

[oracle@lab01 ~]$ Para ter acesso ao banco de dados usando o privilgios de sysdba a partir de uma mquina remota, necessrio configurar um password file.O password file um arquivo do sistema operacional que armazena as informaes de login e senha de usurios que recebem o privilgio de sysdba. Para autenticar no banco de dados com privilgios de sysdba a partir do Enterprise manager, tambm preciso que esse arquivo esteja criado e o usurio na qual se deseja conectar esteja adicionado ao arquivo. Antes de criar o arquivo altere o parmetro da instncia que especifica que o arquivo de senhas ser usado por uma instncia individual. Altere o parmetro com o seguinte comando:
SQL> alter system set remote_login_passwordfile=exclusive scope=spfile Esse parmetro esttico, necessrio reiniciar a instncia para que o valor tenha efeito. Depois de reiniciar a instncia use o comando abaixo para criar o password file [oracle@lab01 ~]$ orapwd file=$ORACLE_HOME/dbs/orapwproducao entries=5 password=0r4cl3

Segue a explicao dos parmetros usados:

file: Especifica o nome do password file que deve seguir o padro orapw+sid_do_banco_de_dados

entries: Especifica at quantas entradas deve ter o arquivo no nosso caso no mximo 5, ou seja, s ser possvel ter informaes de login e senha de cinco usurios nesse arquivo.

password: A senha do usurio SYS obrigatrio para se criar o arquivo.

Depois de criado o password file teste o acesso ao Enterprise Manager usando o endereo mostrado no log da operao de criao do repositrio, no nosso caso http://lab01:1158/em

Configurando inicializao e desligamento da instncia automtico

Para que a instncia seja iniciada automaticamente ao iniciar o sistema operacional preciso usar scripts que realizam essa tarefa. tambm desejvel que a instncia e o banco de dados seja fechado de forma consistente, para isso a Oracle fornece um script que se encarrega de iniciar e desligar a instncia e abrir ou fechar o banco de dados. Para usar esse script edite o arquivo /etc/oratab. Esse arquivo j vem pr-configurado e preciso s adicionar uma linha para cada instncia que se deseje iniciar e desligar. Adicione a linha conforme o modelo existente no arquivo

# $ORACLE_SID:$ORACLE_HOME:Y|N

Substitue o valor das variveis acima conforme seu ambiente.

producao:/u01/app/oracle/product/10.2.0/db_1:Y

A letra "Y" ou "N" usada como flag para simbolizar que a instncia deve ou no ser iniciada. Nesse caso marcamos que a instncia "producao" deve ser iniciada.

O prximo passo criar o script que ir chamar os utilitrios dbstart e dbshut da Oracle. Esses utilitrios usam o arquivo /etc/oratab para obter informaes sobre as instncias a serem iniciadas ou desligadas na inicializao ou no desligamento do sistema operacional. O utilitrio dbstart ir iniciar a instncia e abrir o banco de dados, e o utilitrio dbshut ir desligar a instncia de forma consistente. Para executar esses utilitrios usei um script fornecido pela

Oracle e com algumas modificaes feitas por min. Esse um shell script e deve ser criado dentro do diretrio /etc/init.d. Para isso logue como usurio root como no exemplo abaixo:

[root@lab01 ~]# vi /etc/init.d/startup_oracle.sh

#!/bin/sh # chkconfig: 345 99 10 # description: Oracle auto start-stop script. # # Set ORA_HOME to be equivalent to the $ORACLE_HOME # from which you wish to execute dbstart and dbshut; # # Set ORA_OWNER to the user id of the owner of the # Oracle database in ORA_HOME. # Oracle database in ORA_HOME.

ORA_OWNER=oracle ORA_HOME=/u01/app/oracle/product/10.2.0/db_1

case "$1" in 'start') # Start the Oracle databases: # The following command assumes that the oracle login # will not prompt the user for any values echo "Starting Oracle Database and Listerner..." su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" su - $ORA_OWNER -c $ORA_HOME/bin/dbstart echo "Starting Enterprise Manager..."

su - $ORA_OWNER -c "emctl start dbconsole" touch /var/lock/subsys/startup_oracle.sh ;; 'stop') # Stop the Oracle databases: # The following command assumes that the oracle login # will not prompt the user for any values echo "Stoping Oracle Database..." su - $ORA_OWNER -c $ORA_HOME/bin/dbshut su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" echo "Stoping Enterprise Manager..." su - $ORA_OWNER -c "emctl stop dbconsole" rm -f /var/lock/subsys/startup_oracle.sh ;; esac

De as permisses necessrias

[root@lab01 ~]# chmod 755 /etc/init.d/startup_oracle.sh

Depois de criar o script, use o utilitrio chkconfig para adicionar o script como um "servio". Dessa forma o script poder ser habilitado ou desabilitado para ser iniciado nos nveis de execuo desejado. Use o comando abaixo como exemplo:

[root@lab01 ~]# chkconfig --add /etc/init.d/startup_oracle.sh

Ao adicionar o script, o mesmo configurado para ser iniciado nos nveis 3,4 e 5 e com prioridade 99 para iniciar e 10 para desligar, conforme o parmetro chkconfig: 345 99 10 na

segunda linha do script. Para ter certeza que o script foi configurado corretamente use o comando abaixo para listar as configuraes:

[root@lab01 ~]# chkconfig --list startup_oracle.sh startup_oracle.sh 0:off 1:off 2:off 3:on 4:on 5:on 6:off

Perceba que o script foi adicionado com sucesso e est ativo para ser executado nos nveis de execuo especificados no script. Teste o script reiniciando o sistema operacional e verifique se a instncia foi desligada e iniciada corretamente. Para conferir o status das operaes dos utilitrios dbstart e dbshut use os logs que ficam localizados em $ORACLE_HOME chamados startup.log e shutdown.log

Configurao dos Clientes

Para que possamos acessar nosso banco de dados pela rede precisamos instalar o Oracle Client Software, que conter as bibliotecas necessrias para fazer a conexo com o banco de dados. Para isso basta fazer o download do software atravs do site (http://technet.oracle.com) da oracle. Depois de baixar e instalar o Oracle Client precisamos fazer as configuraes de rede, para esse exemplo vou apenas configurar o arquivo tnsnames.ora nesse arquivo onde criaremos o nosso Connect Identifiers ( Identicador de conexo) . O Identificador de conexo nada mais do que um nome que mapear as demais informaes sobre uma determinada conexo. No exemplo abaixo o identificador de conexo chama-se producao, ou seja, quando referirmos ao identificador producao estamos usando os parmetros de conexo pertinentes a ele (Host, Port, Protocol). Dessa forma podemos ter vrios identificadores de conexo no nosso arquivo tnsname.ora. Nesse exemplo instalei o Oracle Client na verso 10.1.0 em um computador com o Windows Server 2003 que ser nosso cliente. Salve o cdigo abaixo no arquivo tnsnames.ora dentro do diretrio c:\oracle\product\10.1.0\network\admin\ e teste a conexo usando o SQLPLUS ou qualquer outro utilitrio. producao = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.1.100) (PORT=1521)) ) (CONNECT_DATA =

(SERVICE_NAME = producao.world ) ) ) Para testar a conexo usei o SQLPLUS usando o identificador de conexo producao. Repare o comando abaixo na imagem. sqlplus system/Or4cl3@producao

Dessa forma estou conectado ao banco de dados criado anteriormente com o usurio SYSTEM a partir de um computador da rede. Isso mostra que chegamos ao final do nosso artigo onde o principal objetivo era entender como criar um banco de dados de forma manual, ou seja, sem usar utilitrios e como funciona a relao entre instncia e banco de dados,e tambm qual a diferena entre os dois. No artigo vimos um pouco sobre os parmetros bsicos para se iniciar uma instncia, o significado de cada um deles e os parmetros necessrios para criar um banco de dados usando a instruo create database. At mais.
Postado por Rodrigo Santana s 12:14

Вам также может понравиться