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...........................................................................................................................

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

Consulting Tecnologia & Sistemas Ltda www.consulting.com.br

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

SMON RECO LCKn Processos Background LGWR ARCH PMON

Shared Pool

SGA

Database Buffer System Chace

Buffer Global Area

Redo Log

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

SMON RECO LCKn Processos Background LGWR ARCH PMON

Shared Pool

Database Redo SGA System Global Area Log 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

SMON RECO LCKn Processos Background LGWR ARCH PMON

Shared Pool

Database Redo SGA System Global Area Log Buffer Chace Buffer

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

SGA

Fila de Respostas

Despachante Despachante Usurio Usurio Usurio

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

Log File Membro 3

Consulting Tecnologia & Sistemas Ltda www.consulting.com.br

19

Redo Log Files Espelhados Grupo 1


Log File Membro 1

Grupo 2
Log File Membro 2

Grupo 3
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 shared_pool_size = 9000000 # 2k # 3500000 BD Pequeno # 6000000 BD Mdio # 9000000 BD Grande # 18000000 BD com Designer/2000 # 200 BD Pequeno # 550 BD Mdio # 3200 BD Grande # 8192 BD Pequeno # 32768 BD Mdio # 163840 BD Grande

db_block_buffers = 3200

log_buffer = 163840

# 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 log_archive_start = true # valor default (em segundos). # 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 Ex.: SVRMGR>CONNECT INTERNAL SVRMGR> ALTER DATABASE OPEN; Libera aos usurios o acesso ao BD. 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.

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 Tablespace 28K 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 Ex: CREATE ROLLBACK SEGMENT rbs1 TABLESPACE SYSTEM STORAGE (INITIAL 100K, NEXT 100K, MINEXTENTS 2, MAXEXTENTS 121, o nome do segmento a ser criado. TABLESPACE onde o segmento ser criado. Define como o espao ser alocado para o segmento.

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 Ex:

o espao na TABLESPACE fica sem limite para o usurio. define o arquivo de profile do usurio.

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 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. nome do usurio a ser deletado. deleta todos os objetos do esquema do usurio que est sendo deletado, antes de deletar o usurio.

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 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. 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.

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
LGWR

ARCHIVELOG e

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 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; Incio do Backup com a Tablespace Online. Fim do Backup com a Tablespace Online.

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