Escolar Documentos
Profissional Documentos
Cultura Documentos
Admbancoora
Admbancoora
Maro 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
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
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.
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.
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.
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).
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
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.
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
SGA
Redo Log
Memria RAM
rea em disco
Control Files
Usurio
Parameter File
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.
11
INSTNCIA ORACLE
Instncia Oracle
CKPT DBWR
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)
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
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.
13
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).
15
OS PROCESSOS ORACLE
CKPT DBWR
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.
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).]
17
Fila de Solicitaes
SGA
Fila de Respostas
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.
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.
19
Grupo 2
Log File Membro 2
Grupo 3
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.
20
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
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
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 (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.
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
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.
25
Segment 112K
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)
26
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.
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.
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.
29
OPTIMAL 1000K);
30
31
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.
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;
33
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.
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, ...).
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;
36
Usurio1
Usurio2
Usurio3
Usurio1
Usurio2
Usurio3
ROLE_UM
Select
Insert
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;
37
38
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
39
ARCHIVELOG e
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.
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;
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.