Você está na página 1de 41

Por

Edson Almeida Junior

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

Maro 2006

Ultima Atualizao 11/04/2006

NDICE
INTRODUO..............................................................................................................................
4
BANCO DE DADOS RELACIONAL..................................................................................................... 4
CONCEITOS................................................................................................................................
4
SQL - LINGUAGEM DE PESQUISA ESTRUTURADA............................................................................. 5
OUTROS CONCEITOS DE BANCO DE DADOS..................................................................................... 7
BANCO DE DADOS DISTRIBUDOS................................................................................................... 7
DATA WAREHOUSE......................................................................................................................
7
REPLICAO DE DADOS...............................................................................................................
8
ATRIBUIES/RESPONSABILIDADES DE UM DBA (DATABASE ADMINISTRATOR).................................... 8
ARQUITETURA ORACLE................................................................................................................
9
ESTRUTURAS FSICAS.................................................................................................................
10
INSTNCIA ORACLE...................................................................................................................
11
OBJETOS DO BANCO DE DADOS ORACLE...................................................................................... 11
PROCESSANDO COMANDOS SQL..................................................................................................
13
DATABASE BUFFER CACHE.........................................................................................................
13
SEGMENTOS DE RECONSTRUO: O "DESFAZER" DO ORACLE........................................................ 14
OS PROCESSOS ORACLE.............................................................................................................
15
PRINCIPAIS PROCESSOS DE SEGUNDO PLANO (BACKGROUND PROCESS).............................................. 15
CONFIGURAES DE SERVIDORES DE BANCO DE DADOS.................................................................. 16
SERVIDOR MULTILINEAR (MULTI-THREADED)................................................................................ 17
SERVIDOR DEDICADO.................................................................................................................
18
LOG DE TRANSAES (LOG DE RECONSTRUO: REDO).............................................................. 18
REDO LOG FILES......................................................................................................................
18
LOG SWITCHES.........................................................................................................................
19
CHECKPOINTS...........................................................................................................................
19
O ARQUIVO DE PARMETROS......................................................................................................
20
EXERCCIO I.............................................................................................................................
22
INICIALIZANDO E TERMINANDO UM BANCO DE DADOS ORACLE......................................................... 22
INICIALIZANDO (STARTUP)..........................................................................................................
22
TERMINANDO UM BD ORACLE (SHUTDOWN)................................................................................. 23
ALTER DATABASE: ALTERANDO O ESTADO DO BANCO DE DADOS..................................................... 23
ALTER SYSTEM: RESTRINGINDO O ACESSO................................................................................... 24
GERENCIADO O ESPAO DO BANCO DE DADOS............................................................................... 25
COMPONENTES DE UM BLOCO ORACLE......................................................................................... 26
CONTROLANDO O ESPAO LIVRE................................................................................................... 26
ESTUDANDO AS TABLESPACES...................................................................................................... 26
CRIAO DE TABLESPACES.........................................................................................................
27
ALTERANDO UMA TABLESPACE....................................................................................................
27
DELETANDO UMA TABLESPACE....................................................................................................
28
CRIANDO SEGMENTOS DE RECONSTRUO (ROLLBACK SEGMENTS).................................................. 28
CRIANDO UM BANCO DE DADOS..................................................................................................
29
ALTERANDO UM BANCO DE DADOS..............................................................................................
30
INSTALAO DO ORACLE............................................................................................................
30
O ARQUIVO DE PARMETROS: ESTUDANDO OS PARMETROS........................................ 30
CRIAO E GERENCIAMENTO DE USURIOS DO BANCO DE DADOS.................................................... 31
ALTERANDO UM USURIO DO BANCO DE DADOS ORACLE................................................................ 32
DELETANDO UM USURIO...........................................................................................................
33
PRIVILGIOS.............................................................................................................................
33
COMANDO GRANT.....................................................................................................................
34
COMANDO REVOKE...................................................................................................................
34

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

AGRUPANDO PRIVILGIOS: ROLE.............................................................................................


VISES (VIEWS) DO DICIONRIO DE DADOS.................................................................................
BACKUP E RECOVERY DO BANCO DE DADOS.................................................................................
BACKUP COMPLETO (FULL) OFFLINE.......................................................................................
RESTAURANDO (RECOVERY) DO BD.............................................................................................
MODOS DE ARQUIVAMENTO ORACLE...........................................................................................
HABILITANDO/DESABILITANDO O MODO DE ARQUIVAMENTO............................................................
BACKUP ONLINE PARCIAL..........................................................................................................
EXPORT/IMPORT/LOAD DO ORACLE.............................................................................................
USANDO A BARRA DE FERRAMENTAS ADMINISTRATIVAS DO ORACLE.................................................
ORACLE NA INTERNET................................................................................................................
BIBLIOGRAFIA...........................................................................................................................

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

35
36
36
37
37
38
38
39
40
41
41
42

INTRODUO
Este material uma sntese da Introduo e Administrao de Banco de Dados Oracle, e visa
transmitir aos administradores do banco de dados Oracle conhecimentos bsicos para o
gerenciamento/administrao do mesmo.

BANCO DE DADOS RELACIONAL


Um banco de dados relacional pode ser definido como um banco de dados que aparece ao usurio
como uma coleo de tabelas. A caracterstica mais fundamental num banco de dados relacional
a de que temos que identificar univocamente seus registros (que chamamos de linhas), ou seja,
devemos definir um campo (ou mais de um) dentre os vrios campos do registro, para ser o
atributo identificador do mesmo (chave primria).
O Oracle um SGBD Relacional - Sistema de Gerenciamento de Banco de Dados Relacional
(RDBMS - Relational Database Managemente System) e foi um dos primeiros sistemas de banco
de dados a utilizar a Linguagem de Pesquisa Estruturada (SQL - Structured Query Language)
como interface do usurio sendo, talvez, por este motivo, agora um dos principais sistemas de
gerenciamento de banco de dados.

CONCEITOS
No estudo de banco de dados convm sabermos algumas definies importantes:
Tabelas - So as unidades bsicas de um SGBD Relacional. formada por linhas e colunas,
onde as linhas representam os registros e as colunas os campos da tabela. So muito conhecidas
como Tabelas-Base.
Exemplo:
Cod_Funcionario
Cod_Departamento
Nome_Funcionario
Data_Nascimento

- CHAR(06)
- CHAR(05)
- VARCHAR2(40)
- DATE

Colunas - Um nome de coluna o nome que o usurio informar para representar os valores de
dados que sero entrados sob cada coluna.
Linhas - So os registros da tabela.
Valores de dados - So os valores encontrados na interseo de uma coluna e uma linha.
Chave primria - Uma ou mais de uma coluna que identifica uma linha, facilitando em muito o
acesso aos dados.
Viso ou Tabela Virtual(View) - uma tabela formada por uma pesquisa em uma ou mais
tabela-base. Ela no existe, mas parece ao usurio como se existisse.
Toda tabela num banco de dados relacional tem que possuir uma Chave Primria. As tabelas
podero tambm ter chaves estrangeiras, que so campos que relacionam as tabelas do banco de
dados, fazendo referncia entre uma e outra tabela.

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

SQL - LINGUAGEM DE PESQUISA ESTRUTURADA


A SQL - Linguagem de Pesquisa Estruturada (Structured Query Language) devido as suas
caractersticas tornou-se a linguagem padro de banco de dados relacionais.
A Linguagem SQL pode ser usada atravs de dois modos:
SQL Interativa - Onde os comandos SQL so digitados interativamente, ou seja, logo aps a
digitao do comando vemos sua execuo.
SQL Embutida - Neste modo os comandos SQL ficam embutidos no programa-fonte de uma
linguagem de programao. Tal linguagem normalmente chamada linguagem hospedeira.
Linguagens de programao como COBOL, C, PASCAL, PL/1, etc, admitem a SQL Embutida.
A SQL divide-se em trs grupos:
- Linguagem de Definio de Dados (DDL)
- Linguagem de Controle de Dados (DCL)
- Linguagem de Manipulao de Dados (DML)

Linguagem de Definio de Dados (DDL)


Tem como objetivo definir, alterar e eliminar as tabelas usadas para armazenar os dados.
CREATE TABLE, CREATE VIEW, so comandos de definio de dados, dentre outros.
Exemplo: Criao de Tabelas
Em SQL as tabelas possuem a funo de armazenar os dados do Banco de Dados. O comando
para criao de tabelas no SQL o CREATE TABLE.
Exemplo de CREATE TABLE:
CREATE TABLE T_Funcionario
(cod_funcionario
VARCHAR(2),
nome_funcionario
VARCHAR(30),
end_funcionario
VARCHAR(40),
CONSTRAINT pk_funcionario PRIMARY KEY
(cond_funcionario),
TABLESPACE ST_funcionario;

Linguagem de Controle de Dados (DCL)


A DCL contm elementos que sero teis num sistema multiusurio, onde a privacidade das
informaes importante, bem como a segurana das tabelas e o estabelecimento de fronteiras
entre as transaes. Os comandos GRANT e REVOKE so alguns dos comandos utilizados para
o controle de dados.

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

Linguagem de Manipulao de Dados (DML)


Esta linguagem contm os componentes da linguagem e conceitos para a manipulao das
informaes armazenadas nas tabelas. Os comandos SELECT, UPDATE, INSERT, bem como
outros, so comandos de manipulao.
O Comando mais utilizado na linguagem SQL para manipulao dos dados o SELECT. Com
ele que produzimos as Queries, ou seja, as pesquisas no Banco de Dados.
Exemplos: Selecionando Dados
a) SELECT * FROM ALUNO;
Retorna todas as linhas e todas as colunas da tabela ALUNO.
b) SELECT MATRICULA, NOME_ALUNO
FROM ALUNO;
Retorna todas as linhas das colunas matrcula e o nome do aluno da tabela ALUNO.
c) SELECT MATRICULA, NOME_ALUNO
FROM ALUNO
WHERE NOME_ALUNO = JOAO DA SILVA;
Retorna a matrcula e o nome do aluno que tenham nome igual a JOAO DA SILVA.
d) SELECT MATRICULA FROM CURSA
WHERE ((NOTA1+NOTA2+NOTA3)/3) > 7
AND CD_DISCIPLINA = PORT;
Retorna a matrcula de todos os alunos que obtiveram mdia acima de sete na disciplina PORT.
e) SELECT AVG(SALARIO) FROM EMPREGADO;
Retorna a mdia dos salrios dos funcionrios da tabela.

Obs.:
1) A Sintaxe completa do comando SELECT encontra-se no manual de referncia de SQL da
ORACLE.
2) Podemos usar o comando Select para acessar dados de duas ou mais tabelas, ao mesmo tempo:
SELECT COD_EMPREGADO, NOME_EMPREGADO, SALARIO_EMPREGADO
FROM FUNCIONARIO, SALARIO
WHERE FUNCIONARIO.COD_EMPREGADO = SALARIO.COD_EMPREGADO;
Esta Query acima retorna os dados da tabela FUNCIONARIO (COD_EMPREGADO e
NOME_EMPREGADO) e da tabela SALARIO (SALARIO_EMPREGADO).

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

OUTROS CONCEITOS DE BANCO DE DADOS


BANCO DE DADOS DISTRIBUDOS
Permitem o manuseio da informao armazenada no Banco de Dados que se encontra distribudo
em diversas mquinas geralmente em locais geogrficos distintos. A distribuio dos dados pode
ser feita no nvel de uma entidade do esquema conceitual (1 tabela, por exemplo) ou atravs de
fragmentos (parties da tabela). Os fragmentos podem ser obtidos atravs do uso de tcnicas de
fragmentao horizontal (seleo de linhas da tabela), fragmentao vertical (seleo de colunas
da tabela) ou de forma hbrida (conbinando a fragmentao horizontal e vertical ao mesmo
tempo).
A alocao dos fragmentos pode ser realizada com ou sem replicao. No primeiro caso, cpias
de um mesmo fragmento so distribudas pelos diversos ns que compem o Banco de Dados
distribudo.
O principal objetivo dos bancos de dados distribdos disponibilizar o dado o mais prximo
possvel do local onde mais acessado, permitindo um aumento no desempenho de consultas
devido ao aproveitamento da localidade de acesso e tambm, por trabalhar com um volume
menor de dados.

DATA WAREHOUSE
Em sua forma essencial, um data warehouse um repositrio para informaes organizacionais.
Pode incluir tabelas relacionais geradas pelos sistemas de controle e acompanhamento, dados
consolidados altamente estruturados, documentos e objetos multimdia. Tambm podem ser
encapsuladas regras de negcio. Sem dvida, uma soluo data warehouse deve ser aberta,
escalvel, com velocidade e facilidade de acesso, e deve ser gerencivel.
Dada a tendncia da indstria para a distribuio de recursos e o desejo de maior controle e
acessabilidade, uma soluo deve ser projetada para operao geograficamente distribuda ao
longo das unidades de negcio da corporao. Facilidade de instalao, ajustes, gerenciamento,
controle e interoperabilidade so pontos crticos, particularmente em um ambiente distribudo.
Data warehouse uma arquitetura, no um produto, e no deve ser associada com um repositrio
de dados especializado, tal como um sistema de gerenciamento de dados multidimensional, e
pode, de fato, ser perfeitamente hospedado em um sistema de gerenciamento de dados relacional,
que prov uma base mais slida sobre a qual se construir as aplicaes que alimentaro o
repositrio de dados.
Mais importante que a ferramenta para hospedar o repositrio o conjunto de aplicaes e
ferramentas que compem as informaes organizacionais. Data warehouse uma forma de
unificar e facilitar o acesso a todas as informaes de que os membros de uma corporao
necessitam para a execuo, controle e planejamento de atividades de negcio.
A construo do repositrio conseqncia da Administrao de Dados, que responsvel pela
elaborao de um modelo global de dados para a corporao, que normalmente surge como
resultado da integrao dos sistemas de transaes on line. Para o usurio, aspectos importantes
so as ferramentas de query e anlise de dados, bem como o grau de integrao com as

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

ferramentas de automao de escritrio, que correspondem ao dia-a-dia dos usurios


corporativos.
Muitos vendedores consideram gerenciadores de banco de dados especializados para data
warehouse, mas esses desconsideram as melhorias da tecnologia relacional nas reas de
processamento e otimizao em paralelo de queries, bem como a integrao com ferramentas de
acesso, modelagem, apresentao e anlise, tais como as planilhas eletrnicas e bancos de dados
de mesa.
O Oracle Warehouse suporta alm de dados estruturados da forma relacional, outros tipos de
dados, como por exemplo, textos desestruturados, dados espaciais, vdeo, ...
A proposta do Oracle Warehouse a de possibilitar o gerenciamento dos dados da empresa,
independente da origem dos dados, ou seja, se so dados histricos, de produo, etc.

REPLICAO DE DADOS
O Oracle permite a replicao dos dados, isto , cpias de tabelas dos bancos de dados podem ser
instaladas nas unidades regionais da empresa, visando assim a rapidez no acesso aos mesmos
(evita o trfego na rede).

ATRIBUIES/RESPONSABILIDADES
ADMINISTRATOR)

DE

UM

DBA

(DATABASE

O DBA o administrador do banco de dados Oracle e tal funo, geralmente exercida por um
Analista de Sistemas com alguma formao/experincia em Banco de Dados.
Diversas atividades de administrao do SGBD Oracle, devem ser exercidas pelo(s) DBA(s).
Dentre elas destacamos:
Instalar e fazer o Upgrade do Oracle Server e das ferramentas diversas da Oracle;
- Criar as estruturas e objetos primrios;
- Planejar/calcular, bem como, disponibilizar o espao necessrio para o Banco de Dados Oracle;
- Modificar a estrutura do banco , quando necessrio;
- Criar, deletar, dar/remover privilgios, enfim, gerenciar os usurios do banco;
- Gerar cpias de segurana (Backups) e recuperar o banco Oracle;
- Manter a segurana do sistema, controlando o acesso ao banco de dados utilizando os recursos
de segurana do sistema operacional, do sistema de rede e do Oracle;
- Monitorar e otimizar a performance do Banco de dados.

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

ARQUITETURA ORACLE
O DBA deve conhecer a arquitetura Oracle, isto , como o Oracle trabalha, tendo assim
subsdios para a administrao do(s) banco(s).

A Arquitetura Oracle
Instncia Oracle

CKPT
DBWR

Shared
Pool

SMON
RECO
LCKn
Processos
Background
LGWR

SGA

ARCH

Database
Buffer
System
Chace

PMON

Redo Log

Buffer
Global Area

Memria RAM

Banco de Dados Oracle


Servidor

Data Files

Redo Log Files

rea em disco
Control Files

Usurio

Parameter File

Arquitetura Oracle = Instncia + BD Oracle


Instncia = Memria + Processos Background

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

10

ESTRUTURAS FSICAS
O Banco de Dados Oracle composto por 3 tipos de estruturas fsicas (arquivos):
Dados (data files);
Controle (control files);
Log (redo log files) e
Parmetros (parameter file).
Data files Contm todos os dados do banco. Estruturas lgicas, tabelas, ndices, vises e
outros objetos so armazenados nestes arquivos. Um ou mais data files podem compor uma
tablespace (objeto lgico que armazena os arquivos de dados).
Control files Arquivos que armazenam informaes sobre as estruturas fsicas do banco de
dados (nome, localizao, ...). Todos os data files e redo log files so identificados no control
file, bem como o nome do banco de dados.
Recomenda-se que se tenha no mnimo dois Control Files, armazenados em discos diferentes (se
possvel).
Redo log files Arquivos que guardam todas as alteraes efetuadas nos dados das tabelas do
banco e so utilizados para recuperao destas.
Para garantir uma boa recuperao cada redo log file deve Ter no mnimo uma rplica. Um
conjunto de redo log files iguais recebe o nome de grupo, e um grupo formado por membros
(redo log file original e suas rplicas).
Ao terminar o espao disponvel nos membros de um grupo redo log, a gravao continua nos
membros do grupo seguinte (log switch). O grupo anterior fica ento disponvel para Ter seu
contedo copiado para outro local (archive log files), pois, ao terminar o espao no ltimo grupo,
o processo ir reutilizar o primeiro, sobregravando-o.
Alm dos 3 tipos de arquivos citados acima temos tambm o Parameter file Para inicializar
uma instncia, o Oracle deve ler um arquivo de parmetros de nome padro
init<nome_da_instncia>.ora. Este arquivo do tipo texto e contm diversos parmetros de
configurao associados a uma instncia, aos quais devem ser atribudos valores especficos.
Os valores dos parmetros sero utilizados para inicializar muitas das configuraes de memria
e processos da instncia Oracle. Cada instncia tem seu arquivo de parmetros que define as
particularidades de cada ambiente.

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

11

INSTNCIA ORACLE
Instncia Oracle

CKPT
DBWR

Shared
Pool

SMON
RECO
LCKn
Processos
Background
LGWR

ARCH

PMON

Database
Redo Log
SGA System
Global Area
Buffer
Chace

Buffer

Memria RAM

A cada inicializao do banco Oracle, parte da memria RAM do computador alocada para a
SGA (System Global Area) e processos Oracle de segundo plano (Background Process) so
inicializados, visando controlar o banco. Ento uma Instncia Oracle (Instance) o conjunto da
SGA (buffers da memria RAM) + processos Oracle de segundo plano (Background), que juntos
oferecem aos vrios usurios o acesso ao banco de dados.
Existe um banco de dados para cada instance, e possvel criar em um mesmo equipamento mais
de uma instance, sendo, por exemplo, uma para conter um banco de dados de produo e outra
para conter o banco de dados de teste. Neste caso, haver processos sendo executados em
background especficos para cada instance e uma rea de memria independente utilizada em
cada instance.
Obs.:
1)SGA Memria compartilhada por todos os usurios Oracle.
2)Instncia (instance) = SGA + Processos Background
3) no arquivo de parmetros (parameter file) que determinamos as caractersticas da instncia
(instance)

OBJETOS DO BANCO DE DADOS ORACLE


O Oracle possui diversos componentes denominados Objetos do Banco de Dados . Dentre eles
podemos destacar:
Tabelas - So as unidades bsicas de um SGBD Relacional. formada por linhas e colunas,
onde as linhas representam os registros e as colunas os campos da tabela. So muito conhecidas
como Tabelas-Base (conforme j vimos anteriormente).

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

12

Viso ou Tabela Virtual(View) - uma tabela formada por uma pesquisa em uma ou mais
tabela-base. Ela no existe, mas parece ao usurio como se existisse.
Muitas vezes o acesso aos dados exigem queries complexas. Um usurio pode construir uma
viso que contenha uma certa complexidade e disponibiliz-la para usurios finais e
programadores, que faro queries mais simples sobre esta Viso. Voc estar ento, retirando
a complexidade da navegao de uma aplicao ou de um usurio no acesso aos dados.
Usurio - So as pessoas que iro acessar o BD Oracle. Possui nome e senha para o acesso
("login").
Cabe ao DBA criar, modificar e excluir os usurios do BD.
Role - Agrupamento de privilgios, ou seja, em uma role podemos agrupar diversos privilgios e
conceder aos usurios, no mais os privilgios e sim as roles.

Usurio1

Usurio2

Usurio3

Usurio1

Usurio2

Usurio3

ROLE_UM

Select

Insert

Update
Select

Insert

Update

Rotinas armazenadas (Stored Procedures, Functions e Triggers) - So grupos de comandos


SQL que podero ser ativados pelos usurios. Uma "Function" retorna um valor sempre,
enquanto que as "Procedures" no.
As Triggers (gatilhos) so tambm rotinas armazenadas que so executadas (disparadas) quando
ocorre algum evento modificando alguma tabela (Ex. Ao clicar o boto ...)
ndices - Quando criamos ndices para uma tabela, especificando uma coluna, tal tabela
classificada de tal forma que, sempre que for mencionada uma query, o sistema usar o ndice
para Ter acesso direto aos dados desejados, ao invs de vasculhar a coluna toda. O objetivo da
criao de ndices agilizar a recuperao de dados, ou seja, acelerar a procura dos dados na
tabela.
Tablespace - Objeto lgico que guarda os arquivos de dados do BD Oracle. Convm, antes de
definir o tamanho da Tablespace, fazer uma estimativa do quanto de espao em disco ser
necessrio para alocar os objetos (tabelas, ndices, ...). Entretanto, podemos aumentar o tamanho
da Tablespace, adicionando datafiles (arquivos de dados) mesma.

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

13

PROCESSANDO COMANDOS SQL


Observando a figura anterior, podemos ver a presena de processos de usurios (users) e
servidores (servers).
Todos os comandos SQL so executados pelos processos servidores, dividindo-os em 3 (trs)
fases:
Parse
Execute
Fetch.
Parse
Checa a sintaxe do comando;
Checa tambm os privilgios do usurio, definindo logo aps, o caminho da pesquisa;
Define o plano de execuo do comando.
Execute
Analisa o requerimento que est no buffer (na Shared SQL Area), e
Faz a leitura fsica ou lgica (no arquivo datafile ou no Database Buffer Cache).
Obs.:
Na Shared SQL Area temos: o texto do comando SQL (ou PL/SQL), o plano de execuo.
Fetch
Retorna o resultado do comando SQL (geralmente chamada de tabela-resultado).
Obs.:
Na Shared SQL Area temos dois caches a saber:
a)Cache de biblioteca armazena instrues SQL (e/ou procedimentos) bem como planos de
execuo das instrues (ex.: vrios usurios (clientes) podem estar executando uma mesma
aplicao compilada).
b)Cache de dicionrio Armazena informaes contidas no dicionrio de dados do BD,
reduzindo as E/S de disco (o Oracle usa as informaes do dicionrio do BD em praticamente
todas as operaes).

DATABASE BUFFER CACHE


No Database Buffer Cache dados do BD Oracle so armazenados. O processo DBWR (database
writer) grava os blocos de dados que as transaes modificam na memria (database buffer
cache) de volta para os arquivos de dados do BD.
Os buffer do Database Buffer Cache so compartilhados por todos os processos de usurio do
Oracle conectados instncia (instance). O tamanho do bloco do database buffer cache
determinado no parmetro DB_BLOCK_SIZE. A quantidade de blocos definida no parmetro
DB_BLOCK_BUFFERS (parmetros contidos no arquivo de parmetros do Oracle).
Com a atuao do Database Buffer Cache as E/S de disco so reduzidas, armazenando dados que
as transaes solicitaram recentemente.

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

14

Exemplo:
Quando uma transao inclui uma instruo pra atualizar uma linha o Oracle manda para o
database buffer cache o bloco que contm a linha, atualizando a linha logo em seguida. Se outra
transao quiser atualizar a mesma linha, ou outra que est no mesmo bloco, no ser necessrio
outro acesso a disco, pois a linha j est no database buffer cache (memria).

SEGMENTOS DE RECONSTRUO: O DESFAZER DO ORACLE


Um Segmento de Rollback do Oracle uma rea utilizada para guardar temporariamente dados
anteriores a uma transao (que atualizou ou eliminou os dados). Se for necessrio, atravs do
comando Rollback (comando SQL) os dados so reconstrudos (que estavam no segmento de
rollback) voltando os dados ao estado anterior.
O Segmento de Rollback System
Todo banco de dados Oracle tem um segmento de rollback denominado System. Durante a
criao do BD, o segmento inicial criado na tablespace System.
Obs.:
Ao se criar uma nova Tablespace devemos criar um Segundo segmento de Rollback denominado
System.
Para se criar um segmento de rollback usa-se o comando CREATE ROLLBACK SEGMENT
Sintaxe:
CREATE PUBLIC ROLLBACK SEGMENT rbs01
TABLESPACE st_01
STORAGE (INITIAL 10K NEXT 10K
OPTIMAL 20K MAXEXTENTS 121);
Para colocar o segmento ativo (ONLINE):
ALTER ROLLBACK SEGMENT rbs01 ONLINE;

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

15

OS PROCESSOS ORACLE

CKPT
DBWR

Shared
Pool

SMON
RECO
LCKn
Processos
Background
LGWR

ARCH

PMON

Database
Redo Log
SGA System
Global Area
Buffer
Buffer

Chace

Memria RAM

Os processos Oracle executam tarefas especficas para os usurios do banco de dados. Tais
processos trabalham no sentido de manipular as solicitaes enviadas pelos processos de clientes
e operam as diversas funes de um servidor de banco de dados Oracle. O Oracle distingue os
processos de servidor de primeiro plano dos de segundo plano. Os processos de primeiro plano
manipulam diretamente as solicitaes dos processos de clientes, enquanto os processos de
servidor de segundo plano manipulam outros servios do Oracle.
Funcionamento de um sistema Cliente/Servidor Oracle:
1)Processo cliente envia solicitao para o servidor Oracle. Um processo despacha (Dispatcher)
o mesmo para uma fila de solicitaes.
2) Um processo de servidor de primeiro plano pega a solicitao mais antiga, processando-a. Ao
terminar o processamento, coloca o resultado numa fila de respostas.
3)O Dispatcher gerencia a fila de respostas, enviando o resultado de cada solicitao para o
processo cliente que fez a solicitao.
A quantidade de processos de servidor de primeiro plano ajustada automaticamente pelo Oracle.
De acordo com a necessidade o Oracle inicia/encerra processos de servidor de primeiro plano,
visando atender as solicitaes dos clientes.

PRINCIPAIS
PROCESS)

PROCESSOS

DE

SEGUNDO

PLANO

(BACKGROUND

DBWR (Database Writer) Grava os dados do Database Buffer Cache para os arquivos fsicos
do Banco de Dados (datafiles). O DBWR no faz esta gravao imediatamente aps a efetivao
das transaes. Tal evento acontece quando:
um processo servidor precisa ler um novo bloco para a memria e no existe espao disponvel,
ou ele est ocioso por alguns segundos, ou Quando o Oracle efetua um Checkpoint do Banco de
Dados ou da Tablespace.

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

16

LGWR (Log Writer) Grava informaes de alteraes efetuadas sobre o BD do redo log buffer
para os redo log files.
ARCH (Archiver) opcional. Copia automaticamente grupos de log de transaes (redo log
files) para um outro local fsico (gerando os archives redo log files). Pode ser para fita ou para
disco.
LCKn (Lock) - Faz bloqueios (Locks) entre instncias em servidores paralelos.
PMON (Process Monitor) Realiza todo o processo de recuperao para um processo de usurio
que tenha falhado. Por exemplo, se cair a conexo de um usurio com o Oracle, o Process
Monitor ir desfazer a transao que caiu, liberando os locks da transao, liberando assim o
acesso de outras transaes aos mesmos dados.
SMON (System Monitor) Executa diversas operaes de gerenciamento do espao medida
que as transaes liberam mais espao para dados do BD.
RECO (Recoverer) Recupera falhas que envolvam transaes distribudas.
CKPT (Checkpoint) Faz periodicamente uma verificao (checkpoint), para se certificar de que
todas as informaes modificadas na memria esto armazenadas fisicamente no disco. Tem a
funo de marcar o quanto o log de transaes precisar aplicar , caso o sistema venha a exigir
uma recuperao por queda. Somente as mudanas provocadas pelas transaes a partir do
ltimo Checkpoint sero aplicadas pois o Oracle sabe que os dados foram gravados no disco
(anteriores ao ltimo Checkpoint). Atualiza os headers de todos os arquivos fsicos do BD.
Dnnn (Dispatcher) Direciona para a fila de solicitaes, as solicitaes dos processos cliente, e
tambm, retorna para os clientes as respostas que esto na fila de respostas. Um nmero limitado
de processos servidores so compartilhados pelos usurios (configurao multi-threaded).]

CONFIGURAES DE SERVIDORES DE BANCO DE DADOS


Em relao configurao de servidores o Oracle pode trabalhar de 2 (dois) modos:
Servidor multilinear (Multi-threaded Server);
Servidor dedicado (Dedicated Server).

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

17

SERVIDOR MULTILINEAR (MULTI-THREADED)

Fila de
Solicitaes

Despachante
Despachante
Usurio
Usurio
Usurio

SGA

Fila de
Respostas

Servidor
Compartilhado
Servidor
Compartilhado
Servidor
Compartilhado

Data files

Ouvinte (Listener)

Cada estao cliente usa um processo Cliente. O Oracle usa a arquitetura de servidor multilinear
que envolve os processos despachantes (Dispatchers), ouvinte (listener) e servidor (shared
server) para atender s solicitaes dos diversos clientes. Duas filas so formadas: fila de
solicitaes (Request Queue) e fila de respostas (Response Queue).
Quando uma aplicao cliente estabelece uma conexo com o Oracle, o listener fornece o
endereo de rede de um processo Dispatcher, com o qual o cliente se conecta. O Dispatcher
ento pega a solicitao do cliente e coloca-a na fila de solicitaes. As solicitaes so
processadas e os resultados so inseridos na fila de respostas. A partir da o Dispatcher retorna
os resultados para as aplicaes clientes adequadas.

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

18

SERVIDOR DEDICADO

SGA

Usurio

Servidor Dedicado

Datafiles

Quando uma aplicao cliente se conecta ao Oracle, o processo ouvinte inicializa um processo
servidor dedicado e conecta o cliente diretamente ao servidor dedicado, ignorando a arquitetura
de servidor multilinear. Como um servidor dedicado consome uma quantidade significativa de
memria do servidor de banco de dados para apenas um usurio, os servidores dedicados no
deve ser usados para as conexes de aplicaes clientes, a menos que absolutamente necessrio.

LOG DE TRANSAES (LOG DE RECONSTRUO: REDO)


O Log de transaes do Oracle registra imediatamente as mudanas feitas no Banco de Dados
pelas transaes em andamento, para que, se for necessrio (em virtude, por exemplo, de uma
falha), todo o trabalho confirmado seja protegido e recuperado.
Na SGA existe o Redo Log Buffer que armazena as informaes que sero gravadas nos Redo
log Files.

REDO LOG FILES

Redo Log Files

Log File Membro 1

Log File Membro 2

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

Log File Membro 3

19

Redo Log Files Espelhados


Grupo 1

Grupo 2

Grupo 3

Log File Membro 1

Log File Membro 2

Log File Membro 3

Log File Membro 1

Log File Membro 2

Log File Membro 3

Log File Membro 1

Log File Membro 2

Log File Membro 3

Os Redo Log Files armazenam todas as alteraes no Banco de Dados, e so usadas em um


processo de recuperao. Se os Redo Log Files so espelhados em vrios discos, as mesmas
informaes so gravadas nos arquivos espelhados.
Os Redo Log Files so gravados de maneira circula, conforme figura acima.
Com o espelhamento dos Redo Log Files pelos discos, todos os grupos de membros so
gravados simultaneamente. A vantagem do espelhamento que se, por exemplo, algum problema
em um disco, tem-se a cpia em outro.

LOG SWITCHES
Um Log Switch (troca de log) ocorre quando o Oracle troca de um redo log para outro.
Enquanto isto o servidor fica gravando novas transaes em outro grupo de log.

CHECKPOINTS
Processo que verifica se as ltimas transaes que esto na memria j foram gravadas
fisicamente em disco.
Ocorre quando:
Acontece um Log Switch;
- Durante um intervalo de tempo (definido no parmetro Log_Checkpoint_Timeout do arquivo de
parmetro);
Acontece um Shutdown;
O DBA fora um Checkpoint; e
Quando a Tablespace passada para Offline.

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

20

O processo Checkpoint
(init<instncia>.ora).

habilitado

atravs

do

parmetro

Checkpoint_Process

O ARQUIVO DE PARMETROS
No arquivo de parmetros que definimos os parmetros de inicializao da instncia Oracle.
Exemplo (sistema Unix):
# Parameter file para o database pb1 (Exemplo)
#
#
# Nome do Banco de Dados
db_name = pb1
# Compatilidade com as caractersticas da verso 7.3.2
compatible = 7.3.2
# Localizao dos controlfiles
control_files =

(/prd3/oracle/pb1/dbs/control01.ctl,
/prd4/oracle/pb1/dbs/control02.ctl,
/prd5/oracle/pb1/dbs/control03.ctl)

# Especificao dos Segmentos de Reconstruo (Rollback Segments)


rollback_segments = (r01,r02,r03,r04)
# Definio do tamanho da SGA do Banco
#
# SGA = [( db_block_size * db_block_buffers) + shared_pool_size + log_buffers ]
db_bloc_size = 2048

# 2k

shared_pool_size = 9000000

# 3500000 BD Pequeno
# 6000000 BD Mdio
# 9000000 BD Grande
# 18000000 BD com Designer/2000

db_block_buffers = 3200

# 200 BD Pequeno
# 550 BD Mdio
# 3200 BD Grande

log_buffer = 163840

# 8192 BD Pequeno
# 32768
BD Mdio
# 163840 BD Grande

# SGA = [ ( 2048 * 3200 ) + 9000000 = 163840 ] 15 Mbytes (Aproximadamente)

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

21

# Parametros de ajuste dos redologs files


log_files = 3

# Num. De redo logs que podem ser abertos


# limitado pelo parametro maxlogfiles do create database
# que indica o num. Mximo de grupos de redolog files

log_checkpoint_interval = 10000# opcao por desempenho. Nunca um checkpoint ser


# disparado por Ter atingido este limite (10 mil blocos
# de 512 gravados, desde o ltimo checkpoint).
log_checkpoint_timeout = 0

# valor default (em segundos).

log_archive_start = true

# utilizacao de archiving automatico

# Localizao dos arquivos de archived redologs, trace e log.


# Trace (dump) dos processos background, de usurios
log_archive_dest = /prd5/oracle/pb1/arch/A
log_archive_format = "RCH%s.log"
background_dump_dest = /prd2/oracle/pb1/bdump
core_dump_dest = /prd2/oracle/pb1/cdump
user_dump_dest = /prd2/oracle/pb1/udump
max_dump_file_size = 10240
# Num. de processos = proc. Servers + proc Backgs
processes = 50

# 50 BD Pequeno
# 100 BD Medio
# 200 BD Grande

# Numero de blocos lidos para memoria numa operacao de I/O


db_file_multiblock_read_count = 32

# 8 BD Pequeno
# 16 BD Medio
# 32 BD Grande

# Parametros de configuracao do Asynchronous I/O


use_async_io = true
lgwr_use_async_io = true
use_post_wait_driver = true
# Parametrso de configura;o do servidor multi-threaded
# Multi_threaded server requer a instala;o do SQL*Net V2
mts_dispatchers
mts_max_dispatchers
mts_servers
mts_max_servers
mts_service

= tcp,2
= 10
=2
= 10
= pb1
Consulting Tecnologia & Sistemas Ltda
www.consulting.com.br

22

mts_listener_address

= (ADDRESS=(PROTOCOL=tcp) (HOST=durjbf01) (PORT=1521)

EXERCCIO I
1) Responda abaixo:
a)Quais os arquivos fsicos que compem um banco de dados Oracle?
b)Como composta uma instncia Oracle?
c)Cite, no mnimo, 04 (quatro) atribuies/responsabilidades de um DBA
d)Localize e exiba na tela o arquivo de parmetros do Oracle (instncia default ORCL)
e)Quais os processos de segundo plano (background processes) Oracle? Para que serve cada um
deles?
f)A SQL a linguagem padro de BD. Ela pode ser usada de dois modos. Quais so esses
modos? Fale sobre eles.
g)Monte uma Query (comando SELECT) qualquer.
h)Qual o principal objetivo dos Bancos de Dados Distribudos?
i)Fale sobre o conceito Data Warehouse
j)Disserte sobre 05 (cinco) objetos Oracle

INICIALIZANDO E TERMINANDO UM BD ORACLE


Usamos o comando STARTUP para iniciar um BD e o SHUTDOWN para termin-lo.
Antes de inicializar ou terminar um banco Oracle necessrio conectar-se como usurio
INTERNAL.
Obs.: Conectar-se como INTERNAL equivalente a conectar-se como usurio SYS (O dono
do dicionrio de dados do Oracle)

INICIALIZANDO (STARTUP)
Um processo de inicializao composto de 3 passos: START, MOUNT e OPEN.
START O Oracle l o arquivo de parmetros; aloca espao na memria para a SGA; starta
os processo de segundo plano (background process) e abre os arquivos de trace (background
trace files).
MOUNT Abre o(s) Control(s) File(s) e l os nomes do Banco de dados e dos REDO LOG
FILES.
OPEN Abre o Banco de Dados disponibilizando-o para as transaes dos usurios.
Sintaxe:
STARTUP OPEN/MOUNT/NOMOUNT database
EXCLUSIVE/PARALLEL
PFILE = parfile
RECOVER/FORCE/RESTRICT
Onde:
OPEN Disponibiliza o Banco para o acesso aos usurios.
MOUNT Monta o banco para atividades de DBA, mas no deixa livre o acesso ao BD.
NOMOUNT Cria a SGA e starta os processos de segundo plano, mas no deixa livre o
acesso ao BD.

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

23

EXCLUSIVE Permite que somente a instncia corrente seja acessada.


PARALLEL Disponibiliza mltiplas instncias.
PFILE=parfile Pega do arquivo de parmetrso especificado (parfile) e starta tal instncia.
FORCE Aborta a instncia que est rodando para startar a nova.
RESTRICT Permite que s os usurios com privilgio RESTRICT SESSION acesse o BD.
RECOVER Inicia processo de Recover quando o banco Startado.
Ex:
A) SVRMGR>STARTUP teste;
Inicializa o banco de dados teste.
B) STARTUP EXCLUSIVE MOUNT teste PFILE inittest.ora;
Inicializa o BD teste, apenas montando-o, utilizando o arquivo de parmetros inittest.ora
Obs.:
Com o comando ALTER DABATASE podemos alterar o modo de banco, ou seja, podemos por
exemplo apenas mont-lo, deixando em modo Exclusivo (para serem feitas atividades de DBA.
O banco no fica disponvel aos usurios).

Obs: Nos Bancos Apartir da verso 9 o comando para inicializar ou terminar o banco
SQLPLUS /NOLOG
Connect / as sysdba

TERMINANDO UM BD ORACLE (SHUTDOWN)


O comando SHUTDOWN fecha o BD e indisponibiliza-o aos usurios.
Sintaxe:
SHUTDOWN ABORT/IMMEDIATE/NORMAL;
Onde:
ABORT No espera a sada (desconexo) dos usurios, terminando rapidamente.
IMMEDIATE Desconect os usurios e depois termina.
NORMAL espera todos os usurios conectados sare, para depois terminar o BD.

ALTER DATABASE: ALTERANDO O ESTADO DO BANCO DE DADOS


Com o ALTER DATABASE podemos fazer trocas no estado do Banco, para disponibiliz-lo a
todos os usurios.
Sintaxe:
ALTER DATABASE database

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

24

MOUNT EXCLUSIVE/PARALLEL
OPEN
Onde:
Database
MOUNT
OPEN
EXCLUSIVE
PARALLEL

Nome do BD a ser alterado.


Monta o BD para atividades do DBA, mas no disponibiza-o aos usurios.
Permite o acesso dos usurios ao BD.
Permite que somente a instncia corrente acesse o BD.
Permite que vrias instncias acesse, o BD.

Ex.:
SVRMGR>CONNECT INTERNAL
SVRMGR> ALTER DATABASE OPEN;
Libera aos usurios o acesso ao BD.

ALTER SYSTEM: RESTRINGINDO O ACESSO


Tem a capacidade de disponibilizar o BD para somente os usurios que tenham o privilgio de
RESTRICTED SESSION (s eles se conectam ao BD).
Sintaxe:
ALTER SYSTEM
ENABLE/DISABLE RESTRICT SESSION;
Onde:
ENABLE
BD.
DISABLE

Permite que s os usurios que tem privilgio RESTRICT SESSION acessem o


Permite acesso ao BD a todos os usurios.

Ex:
ALTER SYSTEM ENABLE RESTRICTED SESSION;

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

25

GERENCIANDO O ESPAO DO BANCO DE DADOS

Segment
112K

Extent
Extent
28KTablespace
84K

Blocos do BD

Arquivo

Database
As seguintes estruturas so utilizadas para o gerenciamento do espao do BD.
Estrutura
BLOCO
EXTENT
SEGMENT
TABLESPACE
DATAFILES
DATABASE

Definio
So blocos que ficam alocados nos datafiles
Compem o bloco do datafile.
Armazena um ou mais EXTENTs contendo todos os dados na
TABLESPACE.
Estrutura lgica do Oracle que pode ter um ou mais datafiles (arquivos
fsicos).
Arquivos fsicos que armazenam os dados do BD.
Coleo lgica dos dados compartilhados (que esto armazenados nos
TABLESPACES)

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

26

COMPONENTES DE UM BLOCO ORACLE


Um bloco composto das seguintes partes: Cabealho (Header), Diretrio da Tabela (Table
Directory), Diretrio da Linha (Row Directory), Espao Livre (Free Space), Linha de Dados
(Row Data).
Parte
Cabealho(Header)
Diretrio da Tabela
(Table Directory)
Diretrio da Linha
(Row Directory)
Espao Livre
(Free Space)
Linha de Dados
(Row Data)

Descrio
Contm informaes gerais do bloco: endereo do bloco, tipo de
segmento.
Armazena informaes sobre as tabelas.
Contm informaes sobre a linha que est no bloco.
o conjunto de bytes do bloco disponvel para operaes de
manipulao (insert, update, ...)
Guarda dados da tabela (ou de ndices).

Obs.: O espao livre do bloco tambm pode conter transaes.

CONTROLANDO O ESPAO LIVRE


O controle do espao livre para comandos de manipulao no bloco especificado nos
parmetros PCTFREE, PCTUSED, INITRANS, MAXTRANS.
PCTFREE PCTUSED INITRANS -

Armazena o percentual de espao livre no bloco.


Permite ao bloco reconsiderar o espao livre para a insero de novas linhas.
Define o nmero inicial de transaes para o bloco (default 1, mnimo 1, mximo
255)
MAXTRANS Nmero mximo de transaes concorrentes para o bloco (default 255, mnimo
1, mximo 255).

ESTUDANDO AS TABLESPACES
As TABLESPACES so objetos lgicos que armazenam outros objetos do BD Oracle.
Cada TABLESPACE possui um ou mais DATAFILES.
Podemos colocar uma TABLESPACE, no estado de OFFLINE (desativar a mesma) com ex
ceo da TABLESPACE SYSTEM (possui o dicionrio de dados do Oracle).
A TABLESPACE SYSTEM contm informaes do dicionrio de dados do Oracle, bem como
contm tambm o Segmento de Reconstruo (ROLLBACK SEGMENT) denominado
SYSTEM.
Obs: a TABLESPACE SYSTEM pode conter dados de usurios.
O uso de outras TABLESPACE diferente da SYSTEM permite uma maior flexibilidade na
administrao, por parte do DBA
Tais TABLESPACES armazenam Segmentos de ROLLBACK, segmentos temporrios, dados de
aplicaes, ndices, espao para os usurios.

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

27

CRIAO DE TABLESPACES
Sintaxe:
CREATE TABLESPACE nome_da_tablespace
DATAFILE especif_do_datafile
DEFAULT STORAGE clusulas
ONLINE/OFFLINE
Onde:
Nome_da_tablespace
o nome da TABLESPACE a ser criada.
especif_do_datafile
Especificao do arquivo. Contm:
nome do datafile
o nome do datafile ou redo log file.
SIZE inteiro
o tamanho do mesmo (em K ou M )
REUSE
Permite ao Oracle reusar o arquivo.
DEFAULT STORAGE clusulas
Especifica os parmetros default de armazenamento
para todos os objetos criados na TABLESPACE.
ONLINE/OFFLINE
Disponibiliza/indisponibiliza a TABLESPACE.
Clusulas (DEFAULT STORAGE):
INITIAL inteiro K/M
NEXT inteiro K/M
MINEXTENTS
MAXEXTENTS
PCTINCREASE

Tamanho em bytes do primeiro EXTENT.


Tamanho em bytes do prximo EXTENT a ser alocado para a
TABLESPACE.
Total de EXTENTS alocados quando o objeto for criado.
Total de EXTENTS, incluindo o primeiro, que o Oracle pode
alocar para o objeto.
Percentual de incremento que o Oracle aloca novos EXTENTS
para uma Tabela ou ndice.

ALTERANDO UMA TABLESPACE


Comando: ALTER TABLESPACE
Sintaxe:
ALTER TABLESPACE nome_da_tablespace
ADD DATAFILE especif_do_datafile
RENAME DATAFILE nome_datafile TO nome_datafile
DEFAULT STORAGE Clusulas
ONLINE/OFFLINE
NORMAL/TEMPORARY/IMMEDIATE
BEGIN/END BACKUP
Onde:
nome_da_tablespace

o nome da TABLESPACE a ser alterada.

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

28

ADD DATAFILE
RENAME DATAFILE
DEFAULT STORAGE
ONLINE/OFFLINE
NORMAL
TEMPORARY
IMMEDIATE

Adiciona DATAFILE
Renomeia um ou mais DATAFILES da TABLESPACE.
Altera as Clusulas
Disponibiliza/indisponibiliza a TABLESPACE.
Faz um CHECKPOINT para todos os DATAFILES da
TABLESPACE.
Faz um CHECKPOINT para todos os DATAFILES da
TABLESPACE, mas no assegura que sero gravados dados em
todos eles.
No assegura que os datafiles sero disponibilizados e no faz o
CHECKPOINT.

DELETANDO UMA TABLESPACE


Comando: DROP TABLESPACE
Sintaxe:
DROP TABLESPACE nome_da_tablespace
INCLUDING CONTENTS [CASCADE CONSTRAINTS]
Onde:
Nome_da_tablespace
INCLUDING CONTENTS
CASCADE CONSTRAINTS

o nome da TABLESPACE a ser apagada.


Apaga todo o contedo da TABLESPACE.
Apaga todas as restries de integridade referencial das tabelas
fora da TABLESPACE

CRIANDO SEGMENTOS DE RECONSTRUO (ROLLBACK SEGMENTS)


Comando: CREATE ROLLBACK SEGMENT
Sintaxe:
CREATE ROLLBACK SEGMENT nome_segmento
TABLESPACE nome_da_tablespace
STORAGE clusulas
Onde:
nome_segmento
Nome_da_tablespace
STORAGE clusulas

o nome do segmento a ser criado.


TABLESPACE onde o segmento ser criado.
Define como o espao ser alocado para o segmento.

Ex:
CREATE ROLLBACK SEGMENT rbs1
TABLESPACE SYSTEM
STORAGE (INITIAL 100K, NEXT 100K,
MINEXTENTS 2, MAXEXTENTS 121,

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

29

OPTIMAL 1000K);

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

30

CRIANDO UM BANCO DE DADOS


Comando: CREATE DATABASE
Sintaxe:
CREATE DATABASE nome_do_banco
CONTROL FILE REUSE
LOGFILE especif_arquivo GROUP inteiro
MAXLOGFILES inteiro
MAXLOGMEMBERS inteiro
MAXLOGHISTORY inteiro
DATAFILE especif_arquivo
MAXDATAFILES inteiro
MAXINSTANCES inteiro
ARCHIVELOG/NOARCHIVELOG
EXCLUSIVE
CHARACTER SET charset
Onde:
Nome_do_banco
Nome do banco de dados a ser criado
Especif_arquivo
Especificao do arquivo. Contm:
nome do datafile
o nome do datafile ou redo log file.
SIZE inteiro
o tamanho do mesmo (em K ou M )
REUSE
Permite ao Oracle reusar o arquivo.
CONTROL FILE REUSE
LOGFILE GROUP
MAXLOGFILES
MAXLOGMEMBERS
MAXLOGHISTORY
DATAFILE especif_arquivo
MAXDATAFILES
MAXINSTANCES
ARCHIVELOG
NOARCHIVELOG
EXCLUSIVE
CHARACTER SET

Especifica o control file especificado no arquivo de parmetros


(podendo ser reusado).
Especifica o nome dos logfiles.
mximo de log files que podem ser criados para o banco de
dados.
mximo de membros de log files para um grupo de log files.
mximo de archived redo logs para ser recuperado
automaticamente (Oracle Parallel Server).
Nome(s) do(s) datafile(s) a ser(em) usado(s).
Mximo de datafiles que podem ser criados para o banco.
Mximo de instncias que podem ser montadas e abertas
simultaneamente pelo banco de dados.
Habilita o modo de arquivamento.
No habilita o modo de arquivamento.
monta o banco no modo exclusivo aps a sua criao.
Seta o tipo de caracteres que ser usado pelo banco para
armazenar os dados (Ex. ASCII).

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

31

ALTERANDO UM BANCO DE DADOS


Comando: ALTER DATABASE
Sintaxe:
ALTER DATABASE nome_do_banco
ADD LOGFILE MEMBER nome_arquivo
REUSE TO GROUP inteiro (nome_arquivo, nome_arquivo)
Onde:
nome_do_banco
nome_arquivo
GROUP inteiro

Nome do banco de dados a ser criado


nome de arquivo a ser adicionado (colocar o caminho igual dos
que j existem).
nmero do grupo que receber o log file membro a ser
adicionado.

Obs.:
A Viso V$LOGFILE mostra os grupos e membros de log files.

INSTALAO DO ORACLE
Na instalao do Oracle geralmente utilizamos o instalador da Oracle, que o Oracle Installer.
Tal produto tanto instala como desinstala os produtos Oracle. de fcil utilizao pois basta
escolhermos os produtos Oracle contratados e selecionar a opo Install. (para maiores detalhes
ver Manual de Instalao do produto).
Obs Importante:
Alguns procedimentos (scripts) devem ser executados aps a instalao do Oracle Server (como
usurio SYS)
a) CATALOG.SQL
Cria vises do dicionrio de dados.
b) CATEXP.SQL
Cria vises do dicionrio de dados para o uso do Export/Import.
c) CATPROC.SQL
Cria tabelas e vises adicionais do dicionrio de dados para a opo
procedural do Oracle.
Tais procedimentos podem demandar de muito tempo, pois formam muitas estruturas de dados.

O ARQUIVO DE PARMETROS: ESTUDANDO OS PARMETROS


O arquivo de parmetros Oracle possui diversos parmetros que devem ser conhecidos pelo
DBA:
Db_name
Control_files
rollback_segments
db_block_size

nome do banco de dados (obrigatrio)


nome/localizao dos control files
nome dos segmentos de rollback alocados para a instncia.
tamanho do bloco Oracle (em bytes)

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

32

shared_pool_size
db_block_buffers
log_buffer
log_files
Log_checkpoint_interval
Max_dump_file_size
Log_archive_start
Log_archive_dest
Log_archive_format
User_dump_dest
Background_dump_dest
Processes
Sql_trace
Audit_trail

parmetro que define a shared pool (para comando SQL


compartilhados)
nmero de blocos armazenados na SGA
nmero de bytes alocados para o redo log buffer na SGA
nmero de redo logs que podem ser abertos.
define a freqncia dos checkpoints
tamanho mximo de blocos para os arquivos de trace.
Habilita ou desabilita o modo de arquivamento (archivelog mode)
localizao dos archives redo log files
formato dos archives redo log files
caminho dos arquivos de trace dos usurios
caminho onde sero gerados arquivos de trace dos processos
background do Oracle
nmero mximo de processos (processos servidores + processos
background)
habilita/desabilita o trace do SQL para todas as sesses de usurio
habilita/desabilita o Audit

Obs: Para ver os parmetros usar o comando SHOW PARAMETER


Exemplo:
SVRMGR>SHOW PARAMETER DB;
SVRMGR>SHOW PARAMETER DEST;

CRIAO E GERENCIAMENTO DE USURIOS DO BANCO DE DADOS


Cada usurio do BD Oracle possui um esquema associado a ele, ou seja, cada objeto criado para
(ou pelo) usurio do esquema do mesmo. Ao se criar um usurio Oracle, um esquema com o
mesmo nome criado para ele.
Comando: CREATE USER
Sintaxe:
CREATE USER nome_usurio
IDENTIFIED BY senha/EXTERNALLY
DEFAULT TABLESPACE nome_tablespace
TEMPORARY TABLESPACE nome_tablespace_temporaria
PROFILE arquivo_profile
QUOTA inteiro/UNLIMITED ON nome_tablespace
Onde:
Nome_usurio
nome do usurio a ser criado.
BY senha
senha do usurio
EXTERNALLY
usa como senha a senha do sistema operacional.
DEFAULT TABLESPACE
identifica a TABLESPACE default para os objetos do usurio.
TEMPORARY TABLESPACE TABLESPACE temporria que armazena os segmentos
temporrios.
QUOTA inteiro
define o espao da TABLESPACE para o usurio que est
sendo criado (nmero inteiro em K ou M bytes).

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

33

UNLIMITED
PROFILE arquivo_profile

o espao na TABLESPACE fica sem limite para o usurio.


define o arquivo de profile do usurio.

Ex:
SVRMGR>CREATE USER ALUNO1
IDENTIFIED BY aluno1
DEFAULT TABLESPACE TS_Treina
TEMPORARY TABLESPACE Temp
QUOTA 5M ON TS_Treina
PROFILE default;
Obs:
O Oracle possui dois usurios especiais: o SYS e o SYSTEM. O SYS o usurio para
colocar/tirar o BD do ar O usurio SYSTEM o usurio administrador do BD.

ALTERANDO UM USURIO DO BANCO DE DADOS ORACLE


Comando: ALTER USER
Sintaxe:
ALTER USER nome_usurio
IDENTIFIED BY senha/EXTERNALLY
DEFAULT TABLESPACE nome_tablespace
TEMPORARY TABLESPACE nome_tablespace_temporaria
QUOTA inteiro/UNLIMITED ON nome_tablespace
PROFILE arquivo_profile
DEFAULT ROLE nome_role/ALL [EXCEPT nome_role]/NONE
Onde:
Nome_usurio
nome do usurio a ser alterado.
BY senha
senha do usurio
EXTERNALLY
usa como senha a senha do sistema operacional.
DEFAULT TABLESPACE
identifica a TABLESPACE default para os objetos do usurio.
TEMPORARY TABLESPACE TABLESPACE temporria que armazena os segmentos
temporrios.
QUOTA inteiro
define o espao da TABLESPACE para o usurio que est
sendo criado (nmero inteiro em K ou M bytes).
UNLIMITED
o espao na TABLESPACE fica sem limite para o usurio.
PROFILE arquivo_profile
define o arquivo de profile do usurio.
DEFAULT ROLE nome_role define a role (conj. de privilgios) default do usurio.
Ex:
SVRMGR> ALTER USER aluno1
IDENTIFIED BY aluno1
QUOTA 6M ON TS_Treina;

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

34

DELETANDO UM USURIO
Comando: DROP USER
Sintaxe:
DROP USER nome_usurio CASCADE
Onde:
Nome_usurio
CASCADE

nome do usurio a ser deletado.


deleta todos os objetos do esquema do usurio que est sendo deletado,
antes de deletar o usurio.

Ex:
SVRMGR>DROP USER aluno1 CASCADE;
Obs:
se o usurio est conectado ele no pode ser deletado antes do fim da conexo.
As Vises (VIEWs) USER_USERS, ALL_USERS, DBA_USERS, USER_TS_QUOTAS E
DBA_TS_QUOTAS so vises do dicionrio de dados com informaes sobre os usurios.

PRIVILGIOS
Nem todos os usurios do Oracle podem acessar todas as tabelas do Banco de Dados. Para
conceder ou revogar privilgios de acesso/manipulao aos usurios o DBA utiliza os comando
GRANT e REVOKE.
Podemos conceder/revogar diversos tipos de privilgios, dependendo do usurio. Se um usurio
final ir somente consultar Tabelas, Vises O DBA conceder somente privilgios de consulta
(SELECT). Entretanto para um desenvolvedor o DBA dever dar, alm de privilgios de
consulta, outros privilgios (por exemplo, privilgios de Criao/Alterao de tabelas, vises,
etc.)
Um privilgio de sistema um privilgio poderoso que, se concedido ao usurio, dar ao mesmo
o direito de executar uma operao em nvel de banco de dados. Cabe portanto ao DBA a tarefa
de definir quais usurios do Banco tero tais privilgios (podero ser outros administradores e/ou
desenvolvedores de aplicaes).
Exemplo:
Um usurio com privilgio SELECT ANY TABLE pode consultar qualquer tabela do banco.
Um usurio com o privilgio ALTER DATABASE pode alterar a estrutura fsica do banco,
incluindo novos arquivos.
Um privilgio de objetos do BD administra uma operao do banco de dados sobre um objeto
especfico do BD (uma tabela, uma viso, ...).

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

35

Exemplo:
Um usurio com privilgio de SELECT na tabela SALRIOS, pode consultar a mesma.
Um outro usurio com privilgio de UPDATE, na tabela SALARIOS, poder alterar a mesma
(ao que no poder ser realizada pelo usurio com privilgio de SELECT apenas).

COMANDO GRANT
Concede privilgios aos usurios Oracle cadastrados.
Sintaxe:
GRANT <privilgio> to { usurio | role | public }
[ WITH ADMIN OPTION ];
Exemplos:
1) GRANT CREATE SESSION, CREATE TABLE TO JOAO;
2) GRANT SELECT ANY TABLE TO manoel;
3)GRANT SELECT, INSERT, UPDATE, DELETE
ON T_Salario TO joaquim;
Obs: A opo WITH ADMIN OPTION d ao usurio o poder de conceder privilgios (que ele
possui) a outros usurios.

COMANDO REVOKE
O comando REVOKE retira (revoga) o privilgio concedido atravs do GRANT.
Sintaxe:
REVOKE {privilgio | role } FROM {usurio | role | PUBLIC };
Exemplos:
1)REVOKE SELECT ANY TABLE FROM manoel;
2)REVOKE UPDATE FROM joaquim;

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

36

AGRUPANDO PRIVILGIOS: ROLE


Tendo em vista que o Oracle possui uma infinidade de privilgios e que a quantidade e
diversidade de perfis de usurios em um banco de dados tambm grande, a administrao dos
privilgios de todos eles (usurios) seria um tarefa no mnimo bastante trabalhosa. Visando
dirimir este problema existe o objeto Oracle denominado ROLE. Em uma ROLE podemos
agrupar diversos privilgios e conceder aos usurios, no mais os privilgios e sim as ROLES.

Usurio1

Usurio2

Usurio3

Usurio1

Usurio2

Usurio3

ROLE_UM

Select

Insert

Update
Select

Insert

Update

Exemplo:
1)CREATE ROLE admin_salarios;
2)GRANT SELECT, INSERT, UPDATE,DELETE
ON T_SALARIOS
TO admin_salarios;
3)GRANT SELECT,INSERT, UPDATE, DELETE
ON T_COMISSOES
TO admin_salarios;
4)GRANT admin_salarios to USUARIO_A, USUARIO_B, USUARIO_C, ...
No exemplo acima, os usurios A, B e C receberam os privilgios da ROLE admin_salarios (que
Seleciona, Insere, Altera e Elimina dados das Tabelas T_SALARIOS e T_COMISSOES).
Obs.:
- O Comando REVOKE (revoga privilgios) tambm utilizado com ROLES.
As ROLES DBA, CONNECT e RESOURCE so ROLES padro do Oracle.
O DBA pode, por exemplo, revogar a ROLE RESOURCE de determinados usurios
(concedendo aos mesmos somente alguns privilgios, de tal ROLE).
Exemplo:
1)REVOKE UPDATE ON T_COMISSOES FROM admin_salarios;

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

37

2)REVOKE USUARIO_B FROM admin_salarios;

VISES (VIEWS) DO DICIONRIO DE DADOS


O dicionrio de dados Oracle possui diversas vises que esto divididas em categorias:
Categoria
DBA_XXX
USER_XXX
ALL_XXX

Descrio
Vises do DBA, com informaes de qualquer definio de
objeto do BD.
Vises que podem ser acessadas por qualquer usurio, dando
informaes de seus objetos.
Vises que podem ser acessadas por qualquer usurio, com
informaes de todos os objetos que ele pode acessar.

Obs:
Todas as tabelas e vises do DD podem ser acessadas pelo usurio SYS.
Para ver as vises use os comandos DESCRIBE e SELECT.
Lista de algumas Vises:
V$SESSION
USER_USERS
ALL_USERS
DBA_USERS
USER_TS_QUOTAS
DBA_TS_QUOTAS
DBA_DATAFILES
DBA_TABLES
ALL_TABLES
DBA_ROLE_PRIVS
DBA_AUDIT_TRAIL
DBA_EXP_FILES
DBA_ROLES
DBA_SEGMENTS
DBA_TABLESPACE
DBA_ROLLBACK_SEGS
V$DATAFILE
V$PARAMETER
V$LOG_HISTORY

Mostra as sesses logadas.


Usurio conectado.
Todos os usurios conectados e outras colunas.
Todas as informaes dos usurios.
Limite que o usurio tem (Quota) na TABLESPACE.
Todas as quotas de todos os usurios.
DATAFILES e TABLESPACES do BD.
Tabelas do DBA
Todas as tabelas.
Tabela com os privilgios.
Conjunto de trilhas de auditoria.
Descrio dos arquivos exportados.
As roles do BD.
Informaes sobre os segmentos do BD.
Tablespaces do BD.
Segmentos de Rollback.
Infomaes sobre os DATAFILES do BD.
Parmetros de inicializao do BD.
Informaes sobre o Log de transaes do BD.

BACKUP E RECOVERY DO BANCO DE DADOS


Mtodos de Backup Oracle: Backup completo (full) ou parcial. Pode ser feito ONLINE ou
OFFLINE.

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

38

BACKUP COMPLETO (FULL) OFFLINE


Copiar atravs de comando do sistema operacional os arquivos do BD Oracle: datafiles, redo log
files, control files e parameter file.
Passos:
a)Selecionar os arquivos relevantes para o Backup;
b)Dar um Shutdown na instncia Oracle,
c)Backupear (copiar) todos os datafiles, redo log files, control file(s) e parameter file(s) usando
comandos do Sistema Operacional;
d)Reinicializar a instncia Oracle (Startup).
Ex:
SVRMGR>CONNECT INTERNAL
SVRMGR>SHUTDOWN NORMAL
SVRMGR>HOST CP <ARQUIVOS_ORACLE> <DIRETRIO_DE_BACKUP>
SVRMGR>STARTUP
Obs:
- Para saber quais os nomes dos arquivos a serem copiados consultar as vises:
DBA_DATAFILES, V$LOGFILE (coluna
MEMBER)
Usar o comando SHOW
PARAMETER CONTROL_FILES para ver o nome dos Control Files.

RESTAURANDO (RECOVERY) DO BD
Passos:
a)Tirar o BD do ar (executar um SHUTDOWN ABORT, para sair mais rpido).
b)Restaurar o mais recente dos Backups completo, incluindo todos os arquivos: datafiles, redo
log files e control files.
c)Inicializar a instncia novamente.
Obs:
Se for necessrio editar o arquivo de parmetros para indicar o novo caminh do(s) control file(s),
se necessrio (em caso de perda de disco).
Por default, o BD fica no modo NOARCHIVELOG

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

39

MODOS DE ARQUIVAMENTO ORACLE


O Oracle pode trabalhar
NOARCHIVELOG.

em dois modos de arquivamento:

ARCHIVELOG e

ARCHIVELOG
LGWR

ARCHIVES REDO LOG


ARCH

REDO LOG FILES

No modo ARCHIVELOG o Oracle alm de usar o sistema circular de preenchimento no Redo


Log files, ele copia, antes de fazer a troca, para os Archives Redo Log files (passo administrado
pelo processo de segundo plano ARCH (ver definio deste processo background no incio da
apostila).
NOARCHIVELOG

LGWR

REDO LOG FILES


J no modo NOARCHIVELOG o Oracle somente faz as trocas, no armazenando em outros
arquivos.

HABILITANDO/DESABILITANDO O MODO DE ARQUIVAMENTO


1)Para ver o modo atual do BD usar o comando ARCHIVE LOG LIST
Exemplo:
SVRMGR>ARCHIVE LOG LIST;
Consulting Tecnologia & Sistemas Ltda
www.consulting.com.br

40

2)Os
parmetros
LOG_ARCHIVE_START,
LOG_ARCHIVE_DEST
e
LOG_ARCHIVE_FORMAT, so os parmetros do parameter file que devem ser alterados
para passar o modo para ARCHIVELOG (quando de um novo STARTUP).
Ex:
LOG_ARCHIVE_START = TRUE
LOG_ARCHIVE_DEST = diretrio (ou nome do dispositivo).
LOG_ARCHIVE_FORMAT=nome_de_arquivo
Incluir no nome do arquivo %s para ser anexado no nome o nmero da seqncia de log (log
sequence number).
3)Para trocar o modo de arquivamento automaticamente usa-se o comando ALTER SYSTEM:
Ex:
SVRMGR>ALTER SYSTEM ARCHIVE LOG START TO /caminho/nome_arquivo
Onde:
/caminho/nome_arquivo
o nome do diretrio/arquivo onde ser arquivado os archives
redo log files.
Para desabilitar o modo de Arquivamento (NOARCHIVELOG):
A)Alterar o parmetro LOG_ARCHIVE_START do arquivo de parmetros:
LOG_ARCHIVE_START = FALSE
Da, na prxima inicializao do BD o modo de arquivamento ser NOARCHIVELOG.
B)Para parar automaticamente:
SVRMGR>CONNECT SYSTEM/MANAGER;
SVRMGR>ALTER SYSTEM ARCHIVE LOG STOP;

BACKUP ONLINE PARCIAL


Usar o comando ALTER TABLESPACE para preparar a TABLESPACE para o incio da
cpia:
ALTER TABLESPACE nome_tablespace BEGIN/END BACKUP
Onde:
BEGIN BACKUP
END BACKUP

Incio do Backup com a Tablespace Online.


Fim do Backup com a Tablespace Online.

Ex:
SVRMGR>ALTER TABLESPACE TS_Treina BEGIN BACKUP;
SVRMGR>HOST cp $ORACLE_HOME/dbs/treina.dbf /tmp/dir_backup/treina.dbf
SVRMGR>ALTER TABLESPACE TS_Treina END BACKUP;

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

41

Obs:
- No Oracle Server para Windows NT usamos a interface grfica do mesmo, o que facilita muito
as atividades do DBA em relao ao BACKUP/RECOVER.
O comando cp utilizado acima um comando de cpia do sistema UNIX.

Logo aps copia-se os Control files com o comando ALTER DATABASE BACKUP
CONTROLFILE.
Exemplo:
SVRMGR>ALTER DATABASE BACKUP CONTROLFILE
2> TO /tmp/dir_backup/ctrltreina.ctl;
Copiar tambm o(s) arquivo(s) de parmetro(s) , usando comandos do sistema operacional.
Alm dos arquivos acima copiados, convm tambm ao DBA, copiar outros arquivos importantes
de um servidor de BD:
Arquivos especficos de aplicaes, como os executveis, cdigo-fonte, arquivos de configurao,
dentre outros.
Os arquivos de configurao para o SQL*Net (TNSNAMES.ORA, LISTENER.ORA,
SQLNET.ORA, etc.)

EXPORT/IMPORT/LOAD DO ORACLE
Os utilitrios EXPORT e IMPORT do Oracle servem para mover dados de/para BD Oracle. O
Export grava dados de um BD Oracle para arquivos do sistema operacional. J o Import l os
dados de arquivos criados pelo Export de volta para o BD Oracle. O Export serve tambm para
a criao de cpias suplementares de BD visando aumentar a flexibilidade da recuperao.
Temos diversos modos de exportar:
Modo
Tabela
Usurios
Banco de Dados completo

Descrio
Exporta tabelas especificadas.
Exporta todos os objetos de um usurio.
Exporta todos os objetos do BD.

Quando da importao alguns privilgios o usurio importador deve possuir: CREATE


TABLE e TABLESPACE QUOTA ou UNLIMITED TABLESPACE, INSERT TABLE,
ALTER TABLE.
Obs:
No Oracle somente usurios com privilgio EXP_FULL_DATABASE podem exporta o
BD completo.

Consulting Tecnologia & Sistemas Ltda


www.consulting.com.br

Você também pode gostar