Você está na página 1de 17

Guia de Referncia Rpida Administrao de Bancos de Dados Oracle - Abstratos Tecnologia

Objetivo
O objetivo deste guia to somente o de servir como referncia, um lembrete, da sintaxe dos comandos de administrao de bancos de dados Oracle mais usuais. Sendo assim ele no tem o objetivo de expor, ou apresentar, a sintaxe completa dos comandos. Os exemplos aqui apresentados so meramente didticos, e parte-se do pressuposto de que quem vai utiliz-los conhece suas finalidades e tambm as suas conseqncias. Sendo assim, a Abstratos Tecnologia, se isenta de qualquer responsabilidade quando da m utilizao, ou utilizao imprpria, dos comandos apresentados, ao mesmo tempo em que nos colocamos inteiramente disposio dos nossos clientes para fazer uso corretos dos mesmos atravs dos nossos servios de suporte.

Notaes
Os smbolos < e > , menor e maior, respectivamente, so usados para delimitar os parmetros das clusulas dos comandos. Ou seja, os valores que so passados para as clsulas dos comandos, que esto apresentados na cor verde. Os smbolos [ e ], abre e fecha colchetes, so usados para salientar partes dos comandos, ou clusulas dos comandos, que so opcionais. J o simbolo |, conhecido como pipe, utilizado para representar opes que so mutuamente exclusivas. Ou seja, ou se usa a primeira opo esquerda do pipe, ou ento a segunda opo, direita do pipe.

Tpicos
Este Guia de Referncia de comandos est sub-dividido nos seguintes tpicos : 1 - Manuteno de Tablespaces 2 - Manuteno dos Grupos de Redolog 3 - Manuteno de Tabelas 4 - Manuteno de ndices 5 - Coletando Estatsticas 6 - Utilizao dos Utilitrios Export e Import 7 - Atribundo e Revogando Privilgios 8 - Criando Roles - Atribuies 9 - Criando um Database Link 10 - Criando Sinnimos

Abstratos Tecnologia Av. Baro de Studart N, 1165 Sala 707 (85) 3086-0886 (85) 88790085

Guia de Referncia Rpida Administrao de Bancos de Dados Oracle - Abstratos Tecnologia

1. Manuteno de Tablespaces
1.1- Criando um tablespace de dados
Sintaxe : create tablespace <nome da tablespace> datafile '<nome do arquivo>' size <tamanho do arquivo><m|k>; Exemplo: Criando uma tablespace de DADOS com tamanho de 1GB. SQL>create tablespace TS_DADOS datafile '/oracle/oradata/dbteste/TS_DADOS01.dbf' size 1024m;

1.2 Aumentando o espao de uma tablespace 1.2.1.Adicionando arquivo de dados ao tablespace de dados
Sintaxe : alter tablespace <nome da tablespace> add datafile '<nome do arquivo>' size <tamanho do arquivo><m|k>; Exemplo: Adicionando um segundo datafile de 512MB ao tablespace TS_DADOS. SQL>alter tablespace TS_DADOS add datafile '/oracle/oradata/dbteste/TS_DADOS02.dbf' size 512m;

1.2.2.Alterando o tamanho de um datafile


Sintaxe : alter database datafile '<nome do arquivo>' | <id do arquivo> resize <tamanho do arquivo><m|k>; Exemplo :

Abstratos Tecnologia Av. Baro de Studart N, 1165 Sala 707 (85) 3086-0886 (85) 88790085

Guia de Referncia Rpida Administrao de Bancos de Dados Oracle - Abstratos Tecnologia


Aumentando do tamanho do arquivo de dados da tablespace TS_DADOS para 1GB. SQL>alter database datafile '/oracle/oradata/dbteste/TS_DADOS01.dbf' resize 1024m; Caso prefira usar o file_id, ento deve-se consult-lo primeiro no dicionario de dados. Sintaxe : select file_id,file_name from dba_data_files where tablespace_name='<nome da tablespace>'; Exemplo : SQL>select file_id,file_name from dba_data_files where tablespace_name='TS_DADOS'; Obs : Anotar o FILE_ID da tablespace que deseja alterar o tamanho, no caso, 10 e usar no comando abaixo : SQL>alter database datafile 10 resize 1024MB;

1.2.3.Aumentando o tablespace
Observao : Esse mtodo se aplica somente a tablespaces BIGFILE. Sintaxe : alter tablespace <nome da tablespace> resize <novo tamanho do tablespace ><m|k>; Exemplo: Aumentando o tablespace TS_DADOS para 512m. SQL>alter tablespace TS_DADOS resize 512m;

1.3 Criando tablespace de UNDO

Abstratos Tecnologia Av. Baro de Studart N, 1165 Sala 707 (85) 3086-0886 (85) 88790085

Guia de Referncia Rpida Administrao de Bancos de Dados Oracle - Abstratos Tecnologia

Sintaxe : create undo tablespace <nome da tablespace> datafile '<nome do arquivo>' size <tamanho do arquivo><m|k>; Exemplo : Criando uma segunda tablespace de UNDO, UNDOTBS2 SQL>create undo tablespace UNDOTBS2 datafile '/oracle/oradata/dbteste/UNDOTBS201.dbf' size 512m;

1.3.1.- Definindo tablespace de UNDO da instncia


Sintaxe : Alter system set UNDO_TABLESPACE= <nome da tablespace de UNDO>; Exemplo : Definindo a tablespace de UNDO da instncia como UNDOTBS2 SQL>alter system set undo_tablespace=UNDOTBS2;

1.5- Criando tablespace TEMPORRIA


Sintaxe : create temporary tablespace <nome da tablespace> tempfile '<nome do arquivo>' size <tamanho do arquivo><m|k>; Exempo : Criando uma tablespace temporaria adicional de 512MB. SQL>create temporary tablespace TS_TEMP2 tempfile '/oracle/oradata/dbteste/TS_TEMP201.dbf' size 512m;

1.5.1 Definindo a tablespace temporria dafault da instncia


Sintaxe : alter database default temporary tablespace <nome da nova tablespace temporria>;
Abstratos Tecnologia Av. Baro de Studart N, 1165 Sala 707 (85) 3086-0886 (85) 88790085

Guia de Referncia Rpida Administrao de Bancos de Dados Oracle - Abstratos Tecnologia

Exemplo : SQL>alter database default temporary tablespace TS_TEMP2;

1.6 Renomeando uma tablespace


Sintaxe : alter tablespace <nome atual da tablespace> rename to <nome da nova tablespace>; Exemplo : SQL>alter tablespace TEMP rename to TS_TEMP2;

1.7 Definindo a tablespace de dados dafault da instncia


Sintaxe : alter database default tablespace <nome da nova tablespace permanente>; Exemplo : SQL>alter database default tablespace TS_DADOS;

Abstratos Tecnologia Av. Baro de Studart N, 1165 Sala 707 (85) 3086-0886 (85) 88790085

Guia de Referncia Rpida Administrao de Bancos de Dados Oracle - Abstratos Tecnologia

2. - Manuteno dos Grupos de Redolog


2.1- Criando um novo grupo de redo log
Para saber qual arquivo de redolog ja foi arquivado e qual est em uso no momento: Exemplo : SQL>select group#, archived, status from v$log; Obs : Para saber qual o caminho completo e nome do(s) arquivo(s) de cada grupo: select * from v$logfile;

OBS.: Um grupo pode ter mais de um aquivo de redolog, utilizando a sintaxe de comando abaixo: Sintaxe : alter database add logfile group <nmero do grupo> ('<nome do arquivo1>','nome do arquivo 2'...) size <tamanho do arquivo>; Exemplo : Criando um grupo de redo log com apenas 1 membro e com 100MB de tamanho. SQL>alter database add logfile group 5 ('/oracle/oradata/dbteste/redo05.log') size 100m; Criando um grupo de redo log com apenas com espelhamento, 2 membros, e com 100MB de tamanho. SQL>alter database add logfile group 6 ('/oradb1/oradata/dbteste/redo06a.log', '/oradb2/oradata/dbteste/redo06b.log') size 100m;

Abstratos Tecnologia Av. Baro de Studart N, 1165 Sala 707 (85) 3086-0886 (85) 88790085

Guia de Referncia Rpida Administrao de Bancos de Dados Oracle - Abstratos Tecnologia

2.2- Excluido um grupo de REDOLOG


Sintaxe : alter database drop logfile group <nmero do grupo REDO>; Exemplo : Eliminando o grupo de redo log nmero 6. SQL>alter database drop logfile group 6; Observao : Verificar se o grupo a ser apagado est com o STATUS de INACTIVE, com o seguinte comando : select * from v$logfile;

Abstratos Tecnologia Av. Baro de Studart N, 1165 Sala 707 (85) 3086-0886 (85) 88790085

Guia de Referncia Rpida Administrao de Bancos de Dados Oracle - Abstratos Tecnologia

3. - Manuteno de Tabelas
3.1- Criano de tabelas
Sintaxe : Sintaxe de um esqueleto de uma tabelas com 6 campos, onde <tipo> seria substituido pelo tipo de dados ex.: number, varchar2(50), date, etc... create table <nome da tabela> ( <campo 1> <tipo>, <campo 2> <tipo>, <campo 3> <tipo>, <campo 4> <tipo>, <campo 5> <tipo>, <campo 6> <tipo>) tablespace <nome da tablespace>; Exemplo : Criando uma tabela bsica de clientes. SQL>create table TB_CLIENTE ( CD_CLIENTE NUMBER(5) PRIMARY KEY, NM_CLIENTE VARCHAR2(100), DT_NASCIMENTO DATE, NU_CEP NUMBER(8), FL_SEXO VARCHAR2(1) NOT NULL, DS_ENDRECO VARCHAR2(100)) tablespace TS_ERPX_D;

3.2- Alteraes em tabelas


3.2.1 - Adicionando um campo a tabela. Sintaxe : alter table <nome da tabela> add column <nome do novo campo> <tipo>;

Abstratos Tecnologia Av. Baro de Studart N, 1165 Sala 707 (85) 3086-0886 (85) 88790085

Guia de Referncia Rpida Administrao de Bancos de Dados Oracle - Abstratos Tecnologia

Exemplo : SQL>alter table TB_CLIENTE add ( FL_SITUACAO VARCAHR2(1)); 3.2.2 - Excluindo um campo da tabela. Observao : Esta sintaxe funciona somente a partir da verso 8i Sintaxe : alter table <nome da tabela> drop column <nome do campo>; Exemplo : Eliminando a coluna FL_SITUACAO da tabela de clientes. SQL>alter table TB_CLIENTE drop column FL_SITUACAO; 3.2.3 - Excluindo uma tabela. Sintaxe : drop table <nome da tabela> [ CASCADE ]; Exemplo : Eliminando a tabela de clientes SQL>drop table TB_CLIENTE; Observao : Se a tabela tiver filhos, chaves estrangeiras apontando para as chaves primrias, deve adicionar a clusla cascade. Com isso as chaves estrangeiras sero eliminandas e caso seja necessrio devero ser recriadas.

3.3- Reorganizando tabelas


3.3.1 - Movendo a tabela para outra tablespace(apenas a partir do 8i) Obervaes : Os ndices da tabela ficaro invlidos aps a execuo desta operao, devendo ser reconstrudos em seguida.

Abstratos Tecnologia Av. Baro de Studart N, 1165 Sala 707 (85) 3086-0886 (85) 88790085

Guia de Referncia Rpida Administrao de Bancos de Dados Oracle - Abstratos Tecnologia

Sintaxe : alter table <nome da tabela> move tablespace <nome da tablespace>; Exemplo : SQL>alter table TB_CLIENTE move tablespace TB_MANUTENCAO_D; Observao : Esta operao pode ser realizada com o objetivo de desfragmentar o banco de dados. 3.3.2 - Reorganizando a tabela na mesma tablespace Observaes : Opo disponvel apenas a partir do 10g. Sintaxe : alter table <nome da tabela> enable row movement; alter table <nome da tabela> shrink space; alter table <nome da tabela> disable row movement; Exemplo : SQL> alter table hr.employees enable row movement; SQL> alter table hr.employees shrink space; SQL> alter table hr.employees disable row movement; Observao : Esta operao pode ser realizada com o objetivo de desfragmentar a tabela do banco de dados.

4. - Manuteno de ndices
4.1 Criando um ndice.
Sintaxe : create index <nome do indice> on <nome da tabela> (<campo1,campo2,campo3...> ) tablespace <nome da tablespace>;

Abstratos Tecnologia Av. Baro de Studart N, 1165 Sala 707 (85) 3086-0886 (85) 88790085

10

Guia de Referncia Rpida Administrao de Bancos de Dados Oracle - Abstratos Tecnologia

Exemplo : Criando um ndice simples, com apenas uma coluna DT_NASCIMENTO, na tabela de clientes. SQL>create index IX_CLIENTE1 on TB_CLIENTE (DT_NASCIMENTO) tablespace TB_ERPX_I;

4.2- Reconstruo de um ndice


Sintaxe : alter index <nome do ndice> rebuild tablespace <nome da tablespace>; Exemplo : Reconstruindo o ndice IX_CLIENTE1 em uma nova tablespace. SQL>alter index IX_CLIENTE1 rebuild tablespace TS_MANUTENCAO_I;

5. - Coletando Estatsticas
5.1- Para coletar estatsticas em tabelas(verso 8.0)
Sintaxe : analyze table <nome da tabela> compute statistics; Exemplo : Coletando estatsticas para a tabela TB_CLIENTE. SQL>analyze table TB_CLIENTE compute statistics;

5.2- Para coletar estatsticas em ndices(verso 8.0)


Sintaxe :

Abstratos Tecnologia Av. Baro de Studart N, 1165 Sala 707 (85) 3086-0886 (85) 88790085

11

Guia de Referncia Rpida Administrao de Bancos de Dados Oracle - Abstratos Tecnologia

analyze index <nome do indice> compute statistics; Exemplo : Coletando estatsticas para o ndice IX_CLIENTE1. SQL>analyze index IX_CLIENTE1 compute statistics; Observao : Para as verses 8i e superiores recomenda-se utilizar um pacote chamado dbms_stats para coleta de statsticas.

5.3 Coletando estatsticas a partir da verso 8i.


Sintaxe : exec dbms_stats.gather_table_stats(ownname=>'<nome do owner>', tabname=>'<nome da tabela>', cascade=> <valor boleano>); Exemplo : SQL> execute dbms_stats.gather_table_stats(ownname=>'ABSTRATOS', tabname=>'TB_CLIENTE', cascade=> TRUE); Observao : Para coletar estatstica somente da tabela especificada, na clausula cascade colocar o valor false, pois o cascade sendo true, serve para coletar da tabela e dos indices pertencentes a ela. Para deletar as estatsticas o comando semelhante, apenas trocando o Gather_table_stats por delete_table_stats.

6. - Utilizao dos Utilitrios Export e Import


6.1- Gerando um export completo da base de dados.
Observao : Os comandos de import e export so rodados no propt de comando do sistema operacional, e podem ser rodados de qualquer estao que tenha acesso ao banco de dados. Como exemplo abaixo utilizaremos o prompt do MS_DOS e o mesmo comando com o prompt comum do Linux, o bash.

Sintaxe : C:\>exp userid=<usurio de export> file=<nome do arquivo .dmp>


log=<nome do arquivo de log> full=y
Abstratos Tecnologia Av. Baro de Studart N, 1165 Sala 707 (85) 3086-0886 (85) 88790085

12

Guia de Referncia Rpida Administrao de Bancos de Dados Oracle - Abstratos Tecnologia

Exemplo : Fazendo um export completo, FULL, do banco de dados. C:\>exp userid=system/manager file=exp_FULL.dmp log=exp_FULL.log full=y
No caso de sistemas UNIX/Linux o comando deve ser rodado cmo usurio oracle, e no como usurio root. Observao : O Usurio de export deve possuir o privilgio export_full_database, em muitos casos o system utilizado para fazer esta tarefa.

6.2- Gerando um export de apenas um esquema de banco de dados


Sintaxe : exp userid=<usurio de export> file=<nome do arquivo .dmp> log=<nome do arquivo de log> owner=<nome do esquema a ser exportado> Exemplo : Fazendo o export somente do esquema, OWNER, chamado ERP. C:\> exp userid=<usurio de export> file=exp_ERP.dmp log=exp_ERP.log owner=ERP

6.3- Importando dados de um arquivo dmp para um determinado esquema.


Sintaxe : imp userid=<usurio de export> file=<nome do arquivo.dmp> log=<nome do arquivo de log> fromuser= <nome do esquema de origem> touser=<nome do esquema de destino> commit=<Y/N> buffer=<tamanho buffer> Exemplo : Fazendo o import do esquema ERP, como usurio SYSTEM, com buffer de 10MB e com salvamentos, commits, intermedirios. C:\>imp userid=system/manager file=exp_ERP.dmp
Abstratos Tecnologia Av. Baro de Studart N, 1165 Sala 707 (85) 3086-0886 (85) 88790085

13

Guia de Referncia Rpida Administrao de Bancos de Dados Oracle - Abstratos Tecnologia


log=imp_ERP.log fromuser=ERP touser=ERP commit=y buffer=10000000

7. - Atribuindo e Revogando Privilgios


7.1- No caso de um privilgio de objeto
Sintaxe : grant <nome do privilgio> on <nome do objeto> to <usurio ou role>; Exemplo : Atribuindo privilgios sobre a tabela TB_CLIENTE para o usurio CLI_ERP1. SQL>grant select, insert, update on TB_CLIENTE to CLI_ERP1; Observao : Neste caso vc deve estar conectado com o usurio hr ou ento como sysdba.

Abstratos Tecnologia Av. Baro de Studart N, 1165 Sala 707 (85) 3086-0886 (85) 88790085

14

Guia de Referncia Rpida Administrao de Bancos de Dados Oracle - Abstratos Tecnologia

7.2- No caso de um privilgio de sistema


Sintaxe : grant <privilgio de sistema> to <usurio ou role>; Exemplo : Atribuindo o privilgio de sistema SELECT ANY TABLE para o usurio ERP. SQL>grant SELECT ANY TABLE to ERP;

7.3- Retirando uma atribuio(privilgio) de um usurio. 7.3.1- No caso de um privilgio de sistema


Sintaxe : revoke <privilgio de sistema> from <usurio ou role>; Exemplo : Removendo o privilgio de sistema EXECUTE ANY PROCEDURE do usurio ERP. SQL>revoke EXECUTE ANY PROCEDURE from ERP;

7.3.2- No caso de um privilgio de objeto


Sintaxe : revoke <privilgio> on <nome do objeto> from <nome do usurio ou role>; Exemplo : Removendo o privilgio de DELETE na tabela de usurio CLI_ERP1. SQL>revoke DELETE on TB_CLIENTE from CLI_ERP1;

Abstratos Tecnologia Av. Baro de Studart N, 1165 Sala 707 (85) 3086-0886 (85) 88790085

15

Guia de Referncia Rpida Administrao de Bancos de Dados Oracle - Abstratos Tecnologia

8. - Criando Roles - Atribuies


Sintaxe : create role <nome da role> [ not identified ] ; Exemplo : Criando uma ROLE chamada RO_SISTEMA_ERP. SQL>create role RO_SISTEMA_ERP;

9. - Criando um Database Link


Sintaxe : create public database link <nome do dblink> [ connect to <esquema destino> identified by <senha> ] using '<nome da conexo no tnsnames do servidor>' Exemplo : Criando um database link do banco de desenvolvimento para o bano de produo identificado pelo usurio ERP_PRD, usando a string de conexo DB_PROD. SQL>create public database link DB_PROD connect to ERP_PRD identified by ERP1234 using 'DB_PROD';

10. - Criando sinnimos 10.1- Sinnimos Privados Visveis para um usurio especfico
Sintaxe : create synonym <owner do sinnimo>.<nome do sinnimo> for <owner do objeto>.<nome do objeto>; Exemplo :

Abstratos Tecnologia Av. Baro de Studart N, 1165 Sala 707 (85) 3086-0886 (85) 88790085

16

Guia de Referncia Rpida Administrao de Bancos de Dados Oracle - Abstratos Tecnologia

criando um sinnimo chamado CLIENTES para o usurio CLI_ERP1 apontando para a tabela TB_CLIENTE do usurio, dono, ERP. SQL>create synonym CLI_ERP1.CLIENTES for ERP.TB_CLIENTE;

10.2- Sinnimos Pblicos Visveis para todos os usurios


Sintaxe : create public synonym <nome do sinnimo> for <owner do objeto>.<nome do objeto>; Exemplo : Criando um sinnimo pblico, chamado, CLIENTES, para a tabela TB_CLIENTE. SQL>create public synonym CLIENTES for ERP.TB_CLIENTE;

Abstratos Tecnologia Av. Baro de Studart N, 1165 Sala 707 (85) 3086-0886 (85) 88790085

17