Você está na página 1de 101

Grupo iPED - Curso de Oracle 10g

iPED Instituto Politcnico de Ensino Distncia. Todos os Direitos Reservados. iPED marca registrada pela Empresa Brasileira de Comunicao LTDA.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g Sumrio

Instalando o Oracle 10g .......................................................................................Pg. 7 Atribuies de um DBA ........................................................................................Pg. 28 Cpias de segurana ............................................................................................Pg. 29 Controle de Acesso ..............................................................................................Pg. 29 Modelo Entidade Relacionamento (MER) ............................................................Pg. 30 Arquitetura do Oracle ...........................................................................................Pg. 35 Gerenciando usurios ..........................................................................................Pg. 47 Comandos SQL ....................................................................................................Pg. 52 Tabelas temporrias .............................................................................................Pg. 63 Gerenciando crescimento ....................................................................................Pg. 78 Arquitetura de armazenamento lgico ..................................................................Pg. 85 Utilizando Data Pump para exportar dados .........................................................Pg. 91

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g Institucional O iPED, Instituto Politcnico de Ensino a Distncia, um centro de educao on-line que oferece informao, conhecimento e treinamento para profissionais, educadores e qualquer um que queira evoluir profissionalmente e culturalmente. Nosso objetivo torn-lo uma base forte de conhecimento e expandir cada vez mais o seu nvel intelectual e cultural. Oferecemos uma quantidade enorme de informao, alm de diversos cursos on-line, onde voc se mantm atualizado em qualquer lugar e a qualquer hora.

Educao Distncia Aulas online ou a prtica de aprendizagem distncia, atravs de ambientes virtuais e redes de computadores interligadas para fins educacionais e culturais, nada mais do que o meio mais prtico e inteligente de proliferao de conhecimento. Atravs de ambientes virtuais e sistemas inteligentes, possvel adquirir conhecimento de forma total ou gradativa. Esse nosso conceito de educao, em tempo real, total ou gradativo, quando quiser e onde quiser e acima de tudo, da forma que quiser!

Nossa Misso O Grupo iPED foi lanado com o intuito de aprimorar e disseminar o conceito de ensino a distncia. Com a implantao do ensino a distncia, pesquisas recentes registram que as pessoas alavancam os resultados dos mdulos de treinamento em at 70%, eliminando as distncias geogrficas e proporcionando a melhoria da gesto do conhecimento e dos recursos humanos por competncias. Pensando nisso o iPED presta esse servio a todos, para que a excluso digital seja cada vez menor e com o passar do tempo ela desaparea completamente. Esse nosso objetivo, essa nossa misso, e esteja certo que vamos conseguir! Fabio Neves de Sousa Diretor Geral - Grupo iPED

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

1. Informtica 4. Profissionalizantes 2. Programao 5. Lnguas 3. Animao

www.iped.com.br

1. Aulas Online 2. Simulado On-line 3. Relatrios em tempo real

www.iped.com.br/cursinho

1. Criana aprende brincando 2. Acompanhamento pedaggico 3. Relatrio enviado aos pais

www.iped.com.br/kids

1. Tudo 100% gratuito 2. Contedo para todas as sries 3. Guia de orientao profissional

www.iped.com.br/colegio

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g Oracle Instalando Oracle10g

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

Escolher name como: Oracle10gR2 Escolher Path como: C:\oracle\product

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

Esta mensagem de erro ocorre pois setamos a varivel ORACLE_BASE com o mesmo valor que a varivel ORACLE_HOME assume. Selecionar Yes e seguir em frente.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

Escolher Criar BANCO

10

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

Escolher a opo Avanado

Checar Summary para ver se todas as configuraes foram conforme o planejado. Escoher Install.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

11

Grupo iPED - Curso de Oracle 10g

Acompanhar progresso da instalao conforme tela abaixo:

12

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

Na tela acima, escolher Custon Database e teclar Next. Na tela abaixo, escolher o Global Database Name e o SID.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

13

Grupo iPED - Curso de Oracle 10g

No escolher a opo Configure the Database with Enterprise Manager somente caso queira. Desmarcar a opo conforme tela abaixo.

14

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

Na tela abaixo escolher Use Different Passwords, conforme padro Bovespa.

Na prxima tela escolher a opo File System.


Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

15

Grupo iPED - Curso de Oracle 10g

Exemplo: F:\oracle\

16

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

Na tela abaixo, demarcar a opo Specify Flash Recovery rea.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

17

Grupo iPED - Curso de Oracle 10g

Na aba Database Components, desmarcar todas as opes. Clicar em Standard Database Components e desmarcar todas tambm, conforme tela abaixo !!!

18

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

Na tela abaixo, temos vrias configuraes a fazer: Memory: Escolher Percentage 60% Sizing: Escolher Block Size: 8192 e Process: 150. Character Sets: Escolher as seguintes opes: Database Character Set: WE8ISO8859P1 National Character Set: UTF8
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

19

Grupo iPED - Curso de Oracle 10g Default Language: American Default Date Format: United States Conection Mode: Dedicated Server Mode

20

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

Na tela a seguir, definir o STORAGE conforme as verses anteriores. Conferir o caminho de todos os objetos e escolher Next !!! No esquecer de criar as tablespace de sistema como: Esquecer de tirar os nmeros dos tablespace Ex: system01.dbf System : Minimo 600Mb UndoTBS : 2Gb no storage maxsize 2gb Temp : 600Mb Sysaux : 300Mb

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

21

Grupo iPED - Curso de Oracle 10g

22

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g Na tela a seguir, escolher Create Database e Generate Database Creation Scripts (conferir o caminho!).

Na tela a seguir, conferir em CUSTOM DATABASE se est conforme nossas configuraes. Se estiver tudo certo, teclar OK.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

23

Grupo iPED - Curso de Oracle 10g

Ele vai confirmar a gerao dos scripts no caminho selecionado. Apenas escolher OK.

24

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

Acompanhar o progresso da instalao.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

25

Grupo iPED - Curso de Oracle 10g

A tela abaixo, conferir os dados e clicar em Exit;

26

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

27

Grupo iPED - Curso de Oracle 10g

A seguinte tela deve ser exibida para terminar a instalao: Selecionar Exit e em seguida Yes.

Atribuies de um DBA O uso de aplicativos via Internet aumenta a cada dia e, consequentemente, cresce significativamente o surgimento de empresas de TI disponibilizando servios de bancos de dados. Isto implica em contratao de servios de administrao de bancos de dados. Quais so as principais atividades de um DBA. Abaixo temos uma lista de atribuioes, a quais considero fundamentais para o dia-a-dia desse especialista. Avaliao de Recursos de Hardware Esta diretamente ligada a aquisies de hardware para suprir eventuais faltas de recursos ou atualizao tecnolgica. O papel do DBA avaliar o impacto da mudana sobre os servios de bancos de dados. Instalao de Produtos Embora os principais servidores de bancos de dados possuam excelentes programas instaladores, ainda necessrio que o DBA participe ativamente da instalao e configurao desses produtos. Planejamento de Recursos de Banco

28

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g importante entender como a estrutura lgica de um banco afeta o desempenho do sistema e de diversas operaes de gerenciamento de banco de dados. Por exemplo, antes de criar as tablespaces necessrio definir quais e como os discos sero utilizados. Criao e Disponibilizao de Servios A criao de um banco ocorre quando h implementaes de novos projetos, migraes e atualizao de verses.A disponibilizao de servios de banco realizada pela gesto de ambientes TI, baseada em roteiros de comandos de inicializao de servicos. Cpias de Segurana (Backup) Embora a tecnologia de armazenamento em discos tenham evoludo bastante, antes de vender servios de TI, certifique-se de que esses podem ser salvos em fitas backup.H diversos mtodos de execuo de backup. importante que o mtodo escolhido esteja de acordo com a poltica de backup definida no acordo de nvel de servios. Controle de Acesso Para administrar e ter controle de acesso aos servios de banco de dados necessrio que o DBA tenha privilgios de superusurio, e, conseqentemente ter condies de controlar os acesso dos demais usurios.Ter privilgios de superusurio no significa ter acesso s informaes de negcio, mas condies de realizar todas as tarefas de administrao de de bancos de dados. Implementao de Projetos de Banco Implementar projetos de banco significa preparar o banco para uso a partir de aplicativos, criando ou atualizando os objetos desse aplicativo, tais como: tabelas, ndices, procedimentos catalogados. Desempenho de Servios de Banco Produzir e analisar relatrios sobre a sade do banco de dados uma das tarefas mais importantes, realizadas pelo DBA.O principal objetivo dessa atividade verificar se indicadores de desempenho esto de acordo com os nveis de servios contratados pelo cliente. Instalao de Patches No existem programas de computadores cem por cento corretos. Portanto, eventualmente necessrio corrigir esses programas instalando correes distribudas pelos fabricantes.Essa atividade pode ser realizada por demanda ou automaticamente, mas depende da anlise do DBA sobre o impacto da mudana. Clonagem e Migrao de Servios A clonagem de servios de banco muito utilizada em ambientes de TI que possuem vrios servidores utilizando a mesma verso de produtos de banco.Nas grandes empresas de prestao de servios de TI, ocorre pelo menos uma migrao de servios de banco por semana. Portanto se voc um DBA, ento j migrou ou vai migrar pelo banco de dados.
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

29

Grupo iPED - Curso de Oracle 10g As atribuies listadas acima podem sofrer modificaes, tudo depende da evoluo tecnolgica. Todavia, as grandes empresas so avessas mudanas que possam comprometer seus negcios. MER (Modelo Entidade Relacionamento) O MER (Modelo Entidade Relacionamento), tambm conhecido apenas como modelo de dados ou diagrama de entidade-relacionamento, a principal documentao de um banco de dados. Neste diagrama so relacionadas as principais entidades (tabelas) e seus relacionamentos, alm de alguns detalhes a respeito das entidades, como nome das colunas nas tabelas, tipos de dados e constraints. Geralmente utiliza-se uma ferramenta CASE para modelagem deste diagrama, sendo o ER-Win um dos softwares mais utilizados para elaborar este diagrama. Independente do software utilizado imprescindvel que o DBA conte com ao menos um MER para cada uma das bases que ele administra. Padres de Variveis (Tabelas, colunas etc) e Documentao Uma das boas prticas de desenvolvimento contar com padres. Saber colocar nomes significativos e explicativos em funes, variveis, classes etc est se tornando cada vez mais um pr-requisito para quem trabalha com desenvolvimento. No que tange banco de dados, a idia no diferente: possuir um padro de nomes para tabelas, colunas, constraints e objetos de bancos de dados muito importante. Aqui a idia no apenas possuir um padro e utiliz-lo largamente, mas possuir um padro eficaz que seja fcil de ser utilizado, alm de fazer sentido no contexto de banco de dados. Para formalizar a adoo de um padro, recomenda-se montar um documento explicando todos os detalhes deste padro como, por exemplo, se o padro baseado na notao hngara, se os nomes devem ser em portugus ou se h um limite no tamanho da coluna. Capacity Plan A necessidade de prever recursos de hardware uma das grandes responsabilidades de um DBA. Alm de economizar recursos, a previso mostra que h um controle no apenas para os recursos que esto sendo utilizados, mas tambm para os recursos que podem ser necessrios no futuro. Para ajudar nesta previso, o DBA deve ser responsvel pela elaborao de um documento chamado Capacity Plan, ou Plano de Capacidade. Este documento deve listar as necessidades de espao de armazenamento, utilizao de CPU, largura de banda e outros requisitos tcnicos que possam impactar o banco de dados. Com certeza, este um documento que envolve muitos aspectos e deve ser elaborado com cuidado. Por questes prticas, muitas vezes necessrio fazer uso de estimativas e tendncias ao invs de contar com informaes precisas. Deste modo, o documento no precisa estar 100% correto, mas deve conter uma boa base e previso dos principais recursos computacionais relacionados ao banco de dados. Dicionrio de dados O Dicionrio de dados um documento que complementa o MER. Este documento deve conter mais detalhes a respeito das tabelas e seus relacionamentos. Por exemplo, alm de listar todas as colunas de uma tabela, o documento deve fornecer tambm uma pequena descrio do significado desta coluna, quais so os valores possveis, a quantidade tpica de valores armazenados e quais constraints agem sobre esta coluna. 30
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g Alm das informaes sobre colunas, este documento apresenta o nome dos objetos que dependem da tabela, como stored procedure, triggers, views, funes etc, e suas respectivas funes, alm dos parmetros necessrios e o que retornado. importante notar que este documento deve sempre estar alinhado e atualizado com a base de dados atual, para evitar desencontros e desentendimentos.

Poltica de segurana O documento contento a poltica de segurana um documento no-tcnico que envolve os procedimentos, responsabilidades e atribuies relacionadas tanto segurana das informaes como do acesso elas. Geralmente este documento contm uma poltica de usurios e senhas, que especificam vrias regras, como as definidas abaixo:

Troca de senha a cada trs meses; Desabilitar as contas padro; Forar senhas com letras, nmeros e caracteres especiais que tenham um tamanho mnimo de 10 posies;

Outras polticas gerais de senha, como o cancelamento aps um algumas tentativas e horrios definidos para certos usurios, tambm deve constar neste documento, sempre tendo em mente a utilizao de sistemas e bancos de dados. N.D.A (non-disclosure agreement) - Compromisso de sigilo Imaginem a seguinte situao: Somos responsveis por uma base de dados que deve ser integrada com um sistema externo empresa. Para discutir os detalhes desta integrao, uma reunio marcada com a equipe externa empresa que desenvolve o sistema. Durante esta reunio so apresentadas informaes sigilosas da empresa que trabalhamos, com o objetivo de discutir os aspectos da integrao. Vamos supor que na situao apresentada acima os profissionais da equipe externa hajam da m f e utilizem as informaes fornecidas para seu prprio benefcio, seja comercialmente ou no. Este tipo de situao pode gerar diversos problemas, podendo chegar ao ponto onde a equipe que agiu de m f ser acusada de roubo. Para e proteger de situaes como estas, comum fazer uso de um documento chamado NDA (non-disclousure agreement), tambm conhecido como compromisso de sigilo. Este o tipo de documento que protege todo mundo: tanto quem assina como quem solicita a assinatura. Em termos prticos, que assina compromete-se a no revelar nenhum detalhe da informao que lhe vai ser comunicada sob pena de ser alvo de procedimento legal. S.L.A. (Service Level Agreement) - Acordo de nvel de service (ANS) O SLA, tambm conhecido como Acordo de nvel de servio - ANS, um acordo entre a rea prestadora de servios e seus clientes. Este acordo deve deixar claro quais servios esto sendo oferecidos (servios especficos) e o nvel de cada servio (horas de funcionamento, downtime, horrio do suporte etc). Geralmente este acordo colocado na
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

31

Grupo iPED - Curso de Oracle 10g forma de um contrato que deve ser assinado na contratao do servio. Para banco de dados, em particular, pode-se utilizar um SLA interno, onde o DBA se compromete a dar algum tipo de retorno (feedback) ao solicitante. Notem que este retorno no quer dizer, necessariamente, a resoluo do problema ou o conserto, mas sim que o DBA est ciente da solicitao. Diagrama de arquitetura Atualmente comum encontrar nas empresas diversos ambientes de bancos de dados. Estes ambientes so separados de acordo com a sua finalidade, isto , seu principal objetivo. Por exemplo, comum encontrar ambientes de desenvolvimento, onde os programadores/analistas executam diversos testes durante o processo de desenvolvimento, e ambientes de programao, onde os usurios finais trabalham com os dados reais dos sistemas. Para documentar e organizar o gerenciamento destes ambientes, o DBA deve elaborar um diagrama de arquitetura, que indica, de forma grfica, quais servidores pertencem ao ambiente de desenvolvimento e ao ambiente de produo, como eles esto localizados em relao aos usurios com informaes sobre link, rede, zonas desmilitarizadas (DMZ), firewalls, roteadores, etc. Este tipo de diagrama contm informaes relacionadas estrutura arquitetural dos ambientes e extremamente til para quem no conhece a organizao fsica e lgica dos componentes da rede e dos servidores. importante lembrar que este documento pode ser flexvel, ou seja, pode incluir detalhes especficos, como endereos I.P. e senhas, ou apresentar uma viso de alto nvel, onde apenas os principais servidores so apresentados.

Procedimento para controle de chamados ou O.S. (ordem de servio) Este ltimo item no exatamente um documento, mas sim um procedimento que deve ser adotado para o controle de solicitaes de servio (ou chamados) ao DBA. Este tipo de controle evita problemas de comunicao entre quem solicitou e que realiza uma tarefa. Deixar este controle apenas a cargo do envio de e-mails um primeiro passo, mas investir em um sistema para controlar o acesso s pessoas algo fundamental, uma vez que este procedimento est diretamente relacionado com as regras definidas no SLA. Obviamente, este tipo de controle deve ser utilizado de forma sensata, pois existem diversos tipos de solicitaes que podem exigir tratamentos diferentes, como apenas uma olhada no estado de um servidor. Mais uma vez, a idia aqui estabelecer um mecanismo de controle tanto para quem solicita a tarefa como para quem a executa. Outros tipos de documentos so necessrios para quem trabalha com desenvolvimento de sistemas. Atas de reunio, manuais de implementao de sistemas e help-online so apenas alguns exemplos disto. Em geral, o DBA o profissional que menos tem que lidar com este tipo de documentao. Apesar disso, importante que o profissional que trabalha com banco de dados, e tambm com desenvolvimento de sistemas, tenha conscincia que esta documentao no necessariamente burocracia, mas sim que ela um artefato extremamente importante para todos os profissionais envolvidos. 32
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

Backups Inteligentes Realizar cpias de segurana fcil. Difcil restaurar e recuperar rapidamente os dados contidos em fitas backup. Principalmente quando o contedo das cpias de segurana so transformados pelo utilitrio de backup no momento em que as cpias so geradas. Processos de backup mudaram muito pouco nos ltimos trinta anos. Esses basicamente copiam e restauram arquivos, sem envolver-se com regras de negcio ou preocupar-se com as questes relacionadas a disponibilidade. Est muito na moda oferecer servios 247 disponveis. Manter servios de banco de dados disponveis o tempo todo nos dias de hoje fcil. Difcil acordos de nvel de servio desta natureza, quando ocorre algum incidente o qual a resoluo dependa de recuperao de dados. Atualmente j existem empresas optando por replicao dinmica de bases de dados, utilizando tcnicas de espelhamento remoto. A principal vantagem o rpido restabelecimento de servios, mesmo para bases de dados gigantescas. Cabe ressaltar que com espelhamento de bases de dados, o tempo de recuperao de bancos de dados no est relacionado ao tamanho do banco, mas uma infraestrutura com processo de recuperao de servios bem-definida. Administrao de Banco de Dados Oracle 10G O Oracle Database 10g representa grandes mudanas. H mais modificaes nesta verso do que se imagina. Voc pode instalar o Oracle Database 10g e trat-lo desde o incio quase da mesma maneira como trataria um banco de dados Oracle9i. Voc utiliza o SQL*Plus para se conectar a ele ( para felicidades daqueles que, desde ento, ouviram rumores de que o SQL*Plus desapareceria!) e ainda o inicia com o comando startup e o fecha com o comando shutdown. Voc pode migrar do Oracle8 ou Oracle9i com pouco esforo, mas tenha cuidado e sem lidar com muitos novos recursos como por exemplo SYSAUX ( novos espaos de tabelas ). Em resumo, at um certo ponto, muitos desses novos recursos so opcionais, mas eles oferecem um desempenho aprimorado, um gerenciamento mais fcil e mais funcionalidades. O que GRID ? Oracle Database 10g - g significa, ele uma abreviao do relativamente obscuro conceito de "GRID". O GRID representa as sinergias que podem ser alcanadas alinhando as tecnologias Oracle s capacidades de Hardware existentes e futuras. Beneficiar-se dos componentes disponveis para o Grid - Por meio do Oracle Real Application Clusters, Automatic Storage Management (ASM) e Ultra-Large Data Files.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

33

Grupo iPED - Curso de Oracle 10g Balanceamento de carga por toda a empresa - Tecnologias do Oracle Real Application Clusters, Oracle Streams e dos bancos de dados distribudos da Oracle suportam esses conceitos. Compartilhar informaes independentemente da localizao - Esse conceito suportado por meio dos novos recursos de espao de tabelas transportveis, Oracle Streams ( exemplo - Replication ), tabelas externas e consultas SQL distribudas. Agendar recursos no Grid - Os novos recursos do Oracle Sheduler e do Oracle Database Resource Manager ajudam o DBA a efetivamente aproveitar melhor o GRID. O GRID est cheio de novos recursos que o alinha mais completamente aos conceitos de GRID.

Arquitetura Cliente/Servidor As principais estruturas so a SGA (System Global Area ou rea Global do Sistema) e a PGA (Program Global Area ou rea Global de Programa).

34

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

ARQUITETURA DO ORACLE
Viso Geral

Background Processes

System Global Area

Data Data

Servers
Data Files Redo Log Files

Control Files

Users

Parameter File

A PGA o buffer de memria que contm dados e algumas informaes de controle de uma sesso de um usurio. A PGA criada e alocada quando um novo processo inicializado no servidor. As suas informaes dependem da configurao do ORACLE. Assim, existe uma rea de memria PGA para cada usurio que est executando seus trabalhos no ORACLE. Dentro da PGA existem trs estruturas: uma contendo um espao para a pilha (para armazenar as variveis e matrizes), outra contendo dados sobre a sesso do usurio e uma terceira com as informaes dos cursores usados. A PGA no compartilhada entre os usurios; ela nica para cada sesso.
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

35

Grupo iPED - Curso de Oracle 10g

A SGA uma regio de memria compartilhada por todos os usurios e alocada pelo ORACLE. Contm os dados e as informaes de controle de uma instncia. Ela alocada quando uma nova instncia inicializada e liberada quando a mesma finalizada. Os dados na SGA so compartilhados pelos usurios que estiverem conectados ao banco de dados e, para otimizar a performance, as entradas na SGA devem ser as maiores possveis para guardar a maior quantidade de dados e minimizar o I/O em disco, uma das causas crticas que tornam um banco de dados lento. As informaes na SGA esto organizadas em diversos tipos de estruturas de memria, incluindo o buffer do banco de dados e o buffer para recuperao do banco, por exemplo. As estruturas tm tamanho fixo e so criadas durante a inicializao da instncia. O grupo de buffers do banco de dados em uma instncia so chamados de database buffer cache. Esses buffers podem conter os dados modificados que ainda no foram escritos em disco, para os arquivos de dados apropriados. Desse modo o I/O minimizado e h uma melhora significativa da performance. Essa estrutura compartilhada entre todos os usurios conectados a um banco de dados e os blocos de dados que so armazenados no database buffer cache tm seus tamanhos determinados pelo parmetro DB_BLOCK_SIZE. O nmero de blocos em memria determinado pelo parmetro DB_BLOCK_BUFFERS. O contedo do database buffer cache organizado em duas listas: a lista de blocos alterados e a lista dos blocos menos recentemente utilizados (LRU - Least Recently Used). Essa segunda lista contm os blocos livres, aqueles que esto em uso e os blocos alterados. Quando um processo servidor precisa ler dados de um bloco do disco para o database buffer cache, ele pesquisa a LRU para localizar um bloco livre e, quando encontrar um bloco alterado, movimenta-o para a lista de blocos alterados. Esse processo termina quando um bloco livre localizado ou quando um nmero especfico de blocos so pesquisados sem encontrar um bloco livre. Durante uma operao de SELECT, o ORACLE requer que os blocos que contm a informao desejada esteja em memria. Assim, a lista LRU pesquisada e, se os blocos no estiverem em memria, o produto efetua as leituras fsicas necessrias. Caso o bloco esteja em memria, so efetuadas leituras lgicas. Lembremo-nos de que nenhuma tabela pode ocupar menos de dois blocos de dados: um bloco para o cabealho e pelo menos outro bloco de dados. O redo log buffer cache da SGA armazena todas as alteraes feitas em um banco de dados em memria. Todas as entradas redo log neste buffer so escritas nos arquivos redo log, que so usados para a recuperao do banco de dados, se necessrio. 36
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g A shared pool uma poro de memria compartilhada que contm as reas chamadas shared SQL, estruturas de memria compartilhadas que contm os comandos SQL que esto sendo executados pelos mltiplos usurios conectados a um banco de dados. Essas reas compartilhadas shared SQL contm informaes como o texto e a forma interpretada dos comandos SQL, a fase de anlise dos comandos SQL e seus planos de execuo, informaes do dicionrio de dados e de geradores de nmeros seqenciais. Uma nica rea shared SQL pode ser compartilhada por diversas aplicaes que usam o mesmo comando definido na rea compartilhada de comandos SQL, deixando assim mais rea em memria disponvel para os outros usurios e melhorando a performance de execuo de um comando, j que o plano de execuo j est definido e o ORACLE no precisa defini-lo novamente. A shared pool contm ainda o data dictionary cache, com as informaes do dicionrio de dados, e o sequence cache, com as informaes dos geradores de nmeros seqenciais. Um cursor um nome ou ponteiro para a memria associada a um comando especfico. Muitas aplicaes ORACLE tiram proveito dos cursores. O Banco de Dados Oracle composto por uma estrutura lgica de dados, armazenadas em arquivos fsicos do sistema operacional. Existem basicamente 3 tipos de arquivos: Os arquivos de dados que contm todos os dados do banco; Os arquivos de redo log, que registram todas as alteraes feitas, permitindo recuperao em caso de falha no arquivo de dados; E os arquivos de controle utilizados para manter a integridade entre a instncia, arquivo dados e arquivos de redo. Os arquivos auxiliares, podem ser de parmetros pois eles definem caractersticas de carga da instancia, por exemplo. Podem ainda ser arquivos de senhas utilizados para os usurios que tem permisso para inicializar as instancias e, finalmente, os arquivos que contm cpias do Redo Log, garantindo assim, maior segurana das informaes. Processos. Os processos podem ser vistos como programas que trabalham em memria (em background) e executam outras tarefas especficas para o ORACLE. Um processo uma forma de controle ou um *mecanismo no sistema operacional que pode executar uma srie de passos e normalmente tem sua rea particular de memria. Alguns sistemas operacionais usam o termo job ou tarefa.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

37

Grupo iPED - Curso de Oracle 10g

Existem dois tipos gerais de processos: os processos dos usurios e os processos do prprio ORACLE. Um processo de usurio criado e mantido para executar o cdigo da aplicao (por exemplo um programa Pro*C) ou uma ferramenta ORACLE (por exemplo o SQL*Plus). Os processos dos usurios tambm gerenciam a comunicao com os processos do servidor ORACLE atravs do program interface. Os processos ORACLE so chamados por outros processos para executar algumas funes especficas. O produto cria os processos servidores (server process) para controlar as requisies dos processos dos usurios conectados a um banco de dados. Assim, os processos servidores so incumbidos de comunicar-se com os processos dos usurios e interagir com o ORACLE para acessar seus recursos. Por exemplo, se um usurio pesquisa alguns dados que no estejam no database buffer cache da SGA, o processo servidor l os dados apropriados dos blocos de dados dos arquivos e os coloca na SGA, para uso dos usurios. Dependendo da configurao do ORACLE, um processo servidor pode ser compartilhado por diversos usurios. Todos os comandos SQL so processados pelos processos servidores que se utilizam de trs fases para o processamento: anlise, execuo e busca dos dados. O plano de cada comando armazenado na SGA, nas reas que contm comandos SQL a serem compartilhados entre os usurios.

38

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g O ORACLE cria um conjunto de processos que rodam em background para cada instncia. Esses processos executam diversas tarefas. So eles: DBWR, LGWR, CKPT, SMON, PMON, ARCH, RECO, Dnnn e LCKn. O processo database writer (DBWR) escreve os blocos modificados do database buffer cache para os arquivos de dados fsicos. O DBWR no precisa escrever os dados a cada comando COMMIT, pois otimizado para minimizar o I/O. Geralmente o DBWR escreve os dados para o disco se muitos dados so lidos para o database buffer cache na SGA e no existe espao livre para esses novos dados. Os dados menos recentemente usados so escritos para os arquivos de dados em primeiro lugar. O processo log writer (LGWR) escreve todas as entradas de redo log para o disco. Os dados de redo log so armazenados em memria no redo log buffer cache, na SGA. No momento em que uma transao for efetivada com o comando COMMIT e o redo log buffer estiver preenchido, o LGWR escreve as entradas de redo log nos arquivos redo log apropriados. A um tempo especfico, todos os dados do database buffer cache modificados so escritos em disco pelo processo DBWR; este evento chamado de checkpoint. O processo checkpoint responsvel para informar ao processo DBWR o momento de gravar os dados em disco. O DBWR tambm atualiza os arquivos de controle do banco de dados para indicar o mais recente checkpoint. O processo CKPT opcional; se ele no estiver presente, o LGWR assume sua responsabilidade. O processo system monitor (SMON) efetua a recuperao da instncia em caso de falhas, durante a sua inicializao. Em um sistema com mltiplas instncias (como na configurao Oracle Parallel Server, por exemplo), o processo SMON de uma instncia tambm pode executar a recuperao de outras instncias que podem ter falhado. Ele tambm limpa os segmentos temporrios que no esto sendo usados, liberando memria, e recupera qualquer transao pendente no caso de uma falha em arquivos fsicos ou mesmo no disco. O processo de recuperao dessas transaes executado pelo processo SMON quando a tablespace afetada volta a ficar disponvel. O process monitor (PMON) executa a recuperao do processo de um usurio quando esse processo falha. Limpa a rea de memria e libera os recursos que o processo do usurio estava usando. O PMON tambm verifica o processo despachante (dispatcher) e os processos servidores (server processes) e os reinicializa se tiver acontecido qualquer falha. O processo archiver (ARCH) copia os arquivos redo log para fita ou mesmo outro disco, no momento em que um deles torna-se completo. Esse processo geralmente est presente quando o banco de dados est sendo utilizado no modo ARCHIVELOG. Os arquivos redo log nada tm a ver com auditoria. Eles so usados somente para a recuperao de um banco de dados. O processo recoverer (RECO) usado para resolver transaes distribudas pendentes causadas por uma falha na rede em um sistema de bancos de dados distribudos. A certos intervalos de tempo, o processo RECO do banco de dados local tenta conectar-se ao banco de dados remoto para automaticamente completar e efetivar a transao (COMMIT) ou descartar (ROLLBACK) a poro local de uma transao pendente em um sistema distribudo.
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

39

Grupo iPED - Curso de Oracle 10g Os processos em background dispatchers (Dnnn) so opcionais e esto presentes somente quando a configurao do Oracle Multi-thread Server usada. Pelo menos um processo dispatcher criado para cada protocolo de comunicao em uso (D000, D0001, ..., Dnnn). Cada processo dispatcher responsvel pelo direcionamento das requisies dos processos dos usurios conectados ao banco de dados para o processo servidor disponvel e pelo retorno da resposta de volta para o processo do usurio apropriado. Por sua vez, os processos lock (LCKn) so usados para controlar o lock entre instncias em uma configurao Parallel Server.

PMON

LCKn

RECO

SMON

SGA
Shared Pool Memory Database Buffer Cache Redo Log Buffer

DBWR SERVERS

LGWR

TABELAS Redo Log Files USERS

Arquivo de Parmetros

Control Files ARCH Armazenamento Offline

40

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

Checkpoint
Durante um CHECKPOINT, o DBWR grava todos os buffers sujos da DATABASE BUFFER CACHE no disco, garantindo que todos os blocos de dados modificados desde o ultimo CHECKPOINT, sejam gravados no disco. O CHECKPOINT ocorre : Em cada log switch, Quando atinge um numero determinado de segundos aps o ultimo CHECKPOINT, Quando um numero pr-determinado de blocos do redo log so gravados no disco, desde o ultimo CHECKPOINT, Em um shutdown da instance, Quando forado pelo DBA, e Quando a tablespace e colocada offline.

O parmetro LOG_CHECKPOINT_TIMEOUT determina o intervalo de tempo entre CHECKPOINTS. O parmetro LOG_CHECKPOINT_INTERVAL determina o nmero de blocos de redo log recentemente preenchidos que so necessrios para iniciar um checkpoint. Deve-se observar que no caso da necessidade de recuperao de uma instance, ser necessrio refazer somente as alteraes desde o ultimo checkpoint. O checkpoint permite que um redo log on-line seja reusado, garantindo que todas as alteraes armazenadas em um redo log estejam gravadas nas respectivas tabelas de dados.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

41

Grupo iPED - Curso de Oracle 10g Processo CKPT

SGA
Shared Pool Memory Database Buffer Cache Redo Log Buffer

DBWR

LGWR

SERVERS CKPT

TABELAS

Redo Log Files

USERS

ARCH

Armazenamento Offline

Os checkpoints asseguram que todos os buffers, de base de dados, modificados so gravados no disco. As tabelas so marcadas com a data corrente da gravao e o checkpoint e gravado no arquivo de controle (control file). O processo CKPT : Regravara os headers de dados e control files aps um checkpoint haver sido completado. Checkpoints realizados com maior freqncia, iro reduzir o tempo necessrio para uma recuperao no caso de uma falha de instance, agilizando sua performance. O processo de checkpoint sera habilitado pelo parmetro CHECKPOINT_PROCESS. 42
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

Program interface. O program interface o mecanismo pelo qual um processo do usurio se comunica com o processo servidor. Serve como um mtodo de comunicao padro entre a poro cliente de uma aplicao ou uma ferramenta e o prprio servidor ORACLE. O program interface age como um mecanismo de comunicao, atravs da formatao dos dados requisitados, trafegando esses dados, verificando e retornando possveis erros. Tambm executa converses de dados, particularmente entre diferentes tipos de computadores ou tipos de dados usados pelos usurios. Se o usurio e os processos servidores esto em diferentes computadores de uma rede ou se o processo dispatcher estiver sendo usado para conectar processos de usurios e processos do servidor, ento o program interface inclui um software de comunicao chamado SQL*Net, que faz a comunicao e transferncia de dados entre computadores. Como o ORACLE trabalha Conhecendo os processos e estruturas de memria, fica bastante fcil para que entendamos o modo como ORACLE trabalha: 1. Consideremos que uma instncia esteja sendo executada em um computador (servidor de um banco de dados). 2. Um computador usado para executar uma aplicao (poro cliente ou front end) executa uma aplicao de um usurio. Essa aplicao cliente tenta estabelecer uma conexo com o servidor usando o driver apropriado do SQL*Net. 3. O servidor est executando o driver apropriado do SQL*Net e detecta a requisio de conexo da aplicao cliente e cria um processo servidor dedicado ao usurio. 4. O usurio executa um comando SQL e efetiva a transao com o comando COMMIT. 5. O processo servidor recebe o comando e verifica se as reas shared SQL, armazenadas na shared pool area, contm um comando idntico ao emitido pelo usurio. Se localiza uma rea shared SQL com um comando idntico, o processo servidor verifica os privilgios de acesso do usurio aos dados requisitados e o plano de execuo definido usado para buscar os dados solicitados. Se o comando emitido pelo usurio no estiver presente nessa rea, uma nova estrutura para o comando alocada e ento ele pode ser analisado e processado. 6. O processo servidor recupera qualquer valor armazenado nos arquivos de dados ou os busca da memria, se l estiverem, no database buffer cache. 7. O processo servidor modifica os dados na SGA. O processo DBWR escreve os dados modificados em disco, quando necessrio. No momento do comando COMMIT, o processo LGWR escreve imediatamente os registros das transaes no arquivo redo log que estiver sendo usado no momento.
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

43

Grupo iPED - Curso de Oracle 10g Se a transao for bem sucedida, o processo servidor manda uma mensagem atravs da rede para a aplicao. Se no for bem sucedida, uma mensagem de erro ento emitida.

Acesso aos Dados Antes que os dados possam ser acessados, um processo servidor criado para um determinado usurio conectado ao ORACLE traz os blocos dos arquivos fisicamente armazenados nos discos para dentro do database buffer cache. Cada comando SQL armazenado na estrutura de memria shared pool e so compartilhados entre todos os usurios conectados a uma instncia. Em certo momento, os blocos de dados modificados pelos comandos dos usurios que se encontram no database buffer cache so escritos novamente para os arquivos de dados. Isso feito pelo processo em background DBWR. Portanto, toda manipulao dos dados d-se na memria principal, ou seja, na SGA. por isso que os dados precisam ser trazidos do disco para a memria antes de serem manipulados. Usamos dois termos para referenciarmos ao acesso aos dados: cache miss e cache hit. O termo cache miss usado para identificar as vezes que um processo experimenta acessar uma informao e o bloco que a contm precisa ser lido do disco. O termo cache hit usado para identificar as vezes que um processo encontra uma informao na memria. Assim, um acesso atravs de um cache hit mais rpido do que atravs de um cache miss. Uma simples rede (LAN), como a exemplificada acima, suficiente para comportar um banco de dados relacional (DBMS) de tecnologia Cliente/Servidor (C/S) como por exemplo o Oracle. Em linhas gerais, esta tecnologia tem como caracterstica principal a diviso de tarefas entre o cliente, a estao de trabalho que ordena atravs das aplicaes o acesso aos bancos de dados, e o servidor, que executa tarefas, tais como: atualizaes, delees, procura de dados e todas as outras tarefas prprias do gerenciamento de banco de dados, porm, sob as ordens da estao de trabalho (Cliente). A vantagem evidente: dividindo o processamento em dois sistemas, temos de sada a diminuio do trfego de dados na rede. Com isto, o desempenho aumenta pois evitaremos de processar os dados, fazendo-os transitar pela rede, entre a estao de trabalho e o servidor, pelo menos duas vezes. Ao invs disso, armazenamos os dados variveis do processo em alguns parmetros e os enviamos ao servidor. Estes ao chegarem so recepcionados pelo Oracle que os envia para Stored Procedure, que ento inicia o processamento desejado at seu final de dentro do servidor, limitandose a avisar a estao de trabalho o trmino do processo, com sucesso ou no. Porm, nem tudo so flores, existem tambm as desvantagens e a principal delas o fato das estaes de trabalho (Clientes) se localizarem em pontos geogrficos distantes do servidor. Embora este problema possa hoje ser minimizado pela adoo das arquiteturas de 44
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g processamento distribudo, por outro lado no sem um considervel investimento em equipamentos, aplicativos auxiliares e a contratao de especialistas. Este investimento acompanhado de despesas de manuteno constantes embora no signifique propriamente um retorno aos custos de um computador de grande porte, porm um gasto significativo e que dependendo do tamanho e da complexidade da rede podemos at alcanar os custos de um grande porte. 3.1 Separao das Tarefas de Solicitao e processo A primeira efetuada pela estao de trabalho e a ltima feita no servidor, ou seja: as tarefas de tratar e manipular os dados. Como j dissemos o trfego na Rede diminui sensivelmente, pois s entregue os dados necessrios solicitados pela pesquisa do cliente, e estes depois de tratados so atualizados ao final da transao no servidor. Ao contrrio dos Sistemas de Bancos de Dados sem a tecnologia Cliente/Servidor, que disponibiliza todo o banco de dados, indiferente a necessidade quando da solicitao pelo Cliente. A tecnologia Cliente/Servidor antes de tudo uma incrementadora de performance sem igual. 3.2 Independecia da Estao de trabalho Os usurios no ficam restritos a um tipo de sistema ou plataforma. 3.3- Preservao da Integridade dos dados Mesmo quando so efetuados Back-ups em tempo real ou at a encriptao dos dados. Nestes casos o DBMS, ultiliza o espelhamento dos dados enquanto eles so acessados, gravando sempre a ltima fotografia dos dados antes da cpia de segurana. 3.4- Processamento de transaes. A grande vantagem deste mtodo e guardar durante um certo tempo tempo as modificaes efetuadas no Banco de Dados. Podendo, recuper-las em caso de queda de energia ou mesmo quando o usurio do Banco desiste da modificao. Desvantagens: 1- A maior delas o aumento do custo administrativo e a contratao de pessoal especializado para dar suporte e manter o Banco de Dados sempre ativo. Nasce o profissional Administrador de Bancos de Dados (DBA). 2- O aumento do custo de hardware, tambm significativo, pois parte integrante desta tecnologia Cliente/Servidor, exige a distribuio do processamento, quando a rede for grande. 3- Quando da utilizao do Processamento Distribudo a complexidade aumenta, o nmero de equipamentos diversos tambm aumenta, e nem sempre podemos encontrar profissionais no mercado com um conhecimento to diversificado

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

45

Grupo iPED - Curso de Oracle 10g 3.5 Utilitrios Oracle Para manipular e administrar as estruturas de Bancos de Dados Relacionais criadas no Oracle10g, A Oracle possui um ambiente com algumas ferramentas que veremos abaixo: SQL (Structured Language Query): Linguagem padro, extremamente simples e faz a maior e mais expressiva parte do trabalho de criao e manuteno de estruturas de dados. Porm sua limitao no ser procedural, ou seja, no permite agrupar as palavras chaves sob a forma de programas executveis. uma linguagem puramente interativa de construo e submisso de comandos individuais, embora os comandos sejam macro comandos muito poderosos. SQL*PLUS: o ambiente que permite tornar procedural os comando individuais do SQL. Este ambiente composto, como veremos a seguir de um editor de textos, que permite reunir grupos de frases SQL, que podem ser gravadas sob a forma de arquivo e ento executadas.

ORACLE NAVIGATOR: Conjunto de recursos por intermdio telas(forms), onde o desenvolvedor do Baco de Dados, cria, altera e exclui objetos. De forma que possa administrar a manuteno de objetos da sua Base de Dados. PL/SQL: a linguagem procedural do SQL do ORACLE, composta essencialmente de todos os comandos SQL padro e mais um grupo adicional que permite utilizar o SQL de forma procedural. Ao ser acionado com um duplo click, o editor ativado solicitando para sua operao a 46
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g identificao do usurio e seu cdigo de acesso, seguido do drive lgico, que no caso do uso Stand Alone, foi convencionado 2: Caso estivermos trabalhando em uma rede local o drive lgico seria por exemplo o X:, mais as informaes da localizao fsica do Banco de Dados. Gerenciando Usurios no Oracle 10g O Oracle 10g gerencia e controla a segurana dos objetos criados em cada conta de usurios. Isso inclui:

Clusters ndices Tabelas Views Sequences

Cada banco de dados Oracle possui uma lista de usurios vlidos, identificados por USERNAMES. Todos os usurios so cadastrados no Dicionrio de Dados do Banco em tabelas e views consultados pelo DBA. Quando o usurio do Banco de Dados criado, um Schema correspondente com mesmo nome criado para o usurio. Um Schema o conjunto de informaes sobre o USERNAME. Isso inclui:

Username Password Privilgios permitidos Tablespaces de seus objetos Quotas nas Tablespace Profile Role

Agora que j entendemos o que vem a ser um usurio no Oracle, veremos como criar, alterar, excluir e monitor-los. Criando um novo usurio: SQL> CREATE USER [Usurio] IDENTIFIED BY [Senha/Externally/Globally as] DEFAULT TABLESPACE [Nome Default] TEMPORARY TABLESPACE [Nome Temporria] PROFILE [Nome Profile] QUOTA [K/M/Unlimited]
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

47

Grupo iPED - Curso de Oracle 10g ON [Tablespace] PASSWORD EXPIRE ACCOUNT [Lock/Unlock] Onde:

Usurio - Nome do usurio a ser criado. Senha - Especifica a senha do usurio. Externally - Verifica o acesso do usurio atravs do sistema operacional. Globally As - Especifica que o usurio ser autenticado por um sistema externo de Gerenciamento de Segurana (Oracle Security Server) ou outro Sistema de Gerenciamento de autenticao. Default Tablespace - Identifica a Tablespace onde sero criados os objetos dos usurios. Temporary Tablespace - Identifica a Tablespace para segmentos temporrios. Profile - O nome do Profile associado ao usurio. Quota - Especifica o valor da quota na Tablespace Unlimited - Permite ao usurio alocar espao dentro de uma Tablespace sem limites. On - Especifica o nome da Tablespace cujo espao ser controlado pea Quota. Password Expire - Torna a senha do usurio extinta, solicitando uma nova senha no prximo login. Lock - Desabilita o login. Unlock - Habilita o login.

Exemplo: SQL> CREATE USER SILVESTRE IDENTIFIED BY IPED DEFAULT TABLESPACE User_Data TEMPORARY TABLESPACE User_Temp PROFILE [Nome Profile] QUOTA 15M ON User_Data QUOTA 10M ON User_Temp PASSWORD EXPIRE ACCOUNT Unlock PROFILE Default; Alterando um Usurio: SQL> ALTER USER <Usurio> 48
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g <Opes a serem alteradas> <Novo Valor> DEFAULT TABLESPACE [Nome Default] Exemplo: SQL> ALTER USER SILVESTRE QUOTA 5M ON User_Data; Excluindo um Usurio:

<Opes a serem alteradas> <Novo Valor> DEFAULT TABLESPACE [Nome Default] Onde: CASCADE Permite a excluso de todos os objetos associados ao usurio. Essa opo somente ser usado em raras excees. Quando o usurio excludo com a opo CASCADE, o Username e seu Schema associado so removidos do Dicionrio de Dados e todos objetos contidos no usurio so imediatamente excludos.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

49

Grupo iPED - Curso de Oracle 10g

Exemplo: Monitorando Usurios: O Oracle armazena, no Dicionrio de Dados, informaes completas de todos os usurios do banco. Views do Dicionrio de Dados:

DBA_USERS - Descreve todos os usurios do Banco de Dados ALL_USERS - Lista os usurios visveis ao usurio atual, mas no os descreve USER_USERS - Descreve somente o usurio atual DBA_TS_QUOTAS - Descreve as quotas da Tablespace USER_TS_QUOTAS - Descreve as quotas da Tablespace USER_PASSWORD_LIMITS - Descreve os parmetros do perfil da senha que so atribudos ao usurio USER_RESOURCE_LIMITS - Indica os limites do recurso para o usurio atual DBA_PROFILES - Indica todos os perfis e seus limites RESOURCE_COST - Lista o custo para cada recurso VSESSION - Lista a informao da sesso para cada sesso atual, inclu o nome do usurio VSESSTAT - Lista as estatsticas da sesso do usurio PROXY_USERS - Descreve os usurios que podem assumir a identidade de outros usurios

Todas as consultas s tabelas ou vises do Dicionrio de Dados s sero possveis com privilgio adequado. Exemplo: Mostrando informaes dos usurios, a partir do Dicionrio de Dados:

50

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

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

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

51

Grupo iPED - Curso de Oracle 10g Como usar comando SQL. Vamos ao exemplo de como criar uma tabela, observe os detalhes em relao aos parnteses, nome das colunas ,data type e constraints.

52

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g Aps criarmos a tabela vamos inserir dados a mesma, em um comando INSERT

Veja acima que depois de fazer um insert e preciso um COMMIT para validar.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

53

Grupo iPED - Curso de Oracle 10g Inserindo Registros na Tabela Criada Usando o cmdo INSERT.

Outro Exemplo de Como Criar uma Tabela:

54

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

Inserindo Valores na Nova Tabela.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

55

Grupo iPED - Curso de Oracle 10g

Vamos fazer um delete:

Fazer um update, mas veja abaixo os dados da tabela.

56

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g Veja o Update e o resultado alterado.

Veja os dados da nova tabela.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

57

Grupo iPED - Curso de Oracle 10g

Observe um select de um determinado numero da coluna acima usando a clausula WHERE.

58

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

Shrink segmentos em objetos A nova verso do Oracle 10g disponibilizou o conhecido comando para encolhermos os segmentos de dados alocados em alguns objetos,denominado SHRINK SPACE. Quando utilizado, conseguimos obter uma considervel melhora na performance de alguns comandos SQL e tambm reduzimos a fragmentao do banco de dados. Vejamos ento, como utiliz-lo. Para utilizar a opo de SHRINK SPACE em alguns objetos, devemos configurar o parmetro COMPATIBLE com valor igual ou superior a 10.0.0 no arquivo de parmetros SPFILE. SQL>ALTER SYSTEM SET COMPTATIBLE=10.0.0 SCOPE=SPFILE; Configurando parmetro COMPATIBLE no arquivo de parmetros SPFILE. Este procedimento requer o reboot da instance. O usurio que far a execuo do comando necessitar dos direitos de ALTER object. A tablespace onde reside a tabela a ser encolhida, deve ser AUTO SEGMENT SPACE MANAGEMENT. possvel executar a operao de SHRINK SPACE nos seguintes objetos: Tabela Indice Lob View Materializada IOT Como proceder Para utilizarmos o SHRINK SPACE em uma determinada tabela, devemos inicialmente, executar o comando abaixo, para habilitar o SHRINK SPACE. SQL> ALTER TABLE SILVESTRE.ALUNO ENABLE ROW MOVEMENT; Tabela Alterada. O Comando SHRINK SPACE possui as seguintes opes: Sem opo Encolhe os segmentos da tabela e a High Water Mark SQL> ALTER TABLE SILVESTRE.ALUNO SHRINK SPACE; Tabela Alterada. COMPACT Encolhe os segmentos mas no reduz a High Water Mark SQL> ALTER TABLE SILVESTRE.ALUNO SHRINK SPACE COMPACT;
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

59

Grupo iPED - Curso de Oracle 10g Tabela Alterada. CASCADE Encolhe os segmentos da tabela, a High Water Mark e todos os ndices dependentes.

Tambm possvel, encolher os segmentos no utilizados por ndices, utilizando a sintaxe na prxima pagina:

60

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

Concluso Shrink Space pode ser utilizado de forma online, porm no momento de realocar os segmentos, ser efetuado um lock exclusivo, podendo ocorrer erros em sua aplicao! Desta forma, agende esta tarefa fora do horrio normal de funcionamento desta tabela.

Monitorando o uso de ndices Quando desenhamos um sistema, implementamos ndices em tabelas para obtermos uma performance no uso da aplicao, porm, por muitas vezes, estes ndices no so utilizados e acabam atrapalhando a performance das aplicaes que utilizam o banco de dados Oracle, utilizam espao em disco desnecessrio, aumentam o everhead das operaes DML. Diante disso, possvel identificarmos se um ndice criado em uma tabela est sendo utilizado ou no. Vejamos como fazer isto. A verificao da utilizao de um ndice em uma determinada tabela efetuada atravs da ativao do monitoramento do ndice, onde identificamos se um determinado ndice est ou no sendo utilizado. A sintaxe utilizada para ativar o monitoramento de um ndice : ALTER INDEX INDEX_NAME MONITORING USAGE A partir deste ponto, o Oracle ir armazenar todas as vezes que o ndice foi utilizado, nesta sesso. Para visualizar se o ndice est sendo utilizado na sesso, utilize a view do dicionrio de dados denominada V$OBJECT_USAGE. Exemplo:
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

61

Grupo iPED - Curso de Oracle 10g SQL> SELECT INDEX_NAME, USED FROM V$OBJECT_USAGE; INDEX_NAME IDX_02 IDX_01 YES NO USED

---------------------------------------------------------------

Observe que a consulta efetuada na sesso onde os ndices IDX_02 e IDX_01 foram ativados, apresentam os valores YES e NO. Desta forma, foi possvel identificar que o ndice IDX_02 est sendo utilizado pelas consultas executadas na sesso durante o monitoramente, porm o ndice IDX_01 no foi utilizado. Toda vez que iniciar a monitorao de um ndice, a view V$OBJECT_USAGE ser redefinida, ou seja, os dados referentes monitoraes de ndices anteriores sero excludos. Para desativar o monitoramento do ndice, execute a seguinte sintaxe: ALTER INDEX INDEX_NAME NOMONITORING USAGE; Antes de tomar qualquer ao no banco de dados, certifique-se que o perodo monitorado foi suficiente para colher as informaes necessrias de verificao de uso do ndice! Mantenha sempre seu backup do banco de dados atualizado e testado, assim como os scripts de criao dos objetos( ndices por exemplo ), caso voc tenha que restaur-lo em uma situao emergencial! Data Guard: Pre-Requisitos do DGMGRL Um dos pre-requisitos para uso do DGMGRL que os bancos primrio e modo espera (standby) j tenham sido criados. O parmetro de inicializao tem que ser modificado para TRUE em todos os bancos da configurao Data Guard. Alm disso obrigatrio o uso de arquivos SPFILE ao invs de arquivos PFILE. Para converter arquivos de parmetros de inicializao de banco (PFILE) em arquivos SPFILE, execute no SQL*Plus o seguinte comando: CREATE SPFILE FROM PFILE=nome_file; Se as instncias de banco foram anteriormente iniciadas sem o uso do SPFILE, reinicie essas instncias utilizando-o. Em seguida modifique o parmetro de inicializao DG_BROKER_START para TRUE, utilizando om comando ALTER SYSTEM. Essa modificao salva no arquivo SPFILE. Da prxima vez que a instncia de banco foi iniciada, no ser necessrio modificar esse parmetro novamente. 62
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g Tabelas Temporrias Tabelas Temporrias so teis em aplicaes onde os dados necessitam ser preservados durante uma ou diversas transaes dentro de uma sesso. Uma tabela temporria possui praticamente as mesmas caracteristicas de uma tabela permanente. A diferena que os dados so vistos somente pelo usurio dono da sessa que inseriu os dados. Esse dados so descartados ao encerrar a sesso do usurio. Utilize o comando CREATE GLOBAL TEMPORARY TABLE para criar tabelas temporrias. A clusula ON COMMIT define se os dados da tabela so exclusivos da transao (CREATE GLOBAL TEMPORARY TABLE ON COMMIT DELETE ROWS) ou da sesso (CREATE GLOBAL TEMPORARY TABLE ON COMMIT PRESERVE ROWS). Podem ser criados em tabelas temporrias e a durao dos dados do ndice depende da durao dos dados da tabela temporria. Por definio, tabelas temporrias so criadas em tablespaces temporrias. Entretanto o DBA pode definir uma tablespace. Utilize este recurso se os segmentos da tabela temporria tiverem um crescimento no compatvel os da tablespace temporria. Os dados de uma tabela temporria, por definio, so temporrios. Backups e recuperao de dados dessas tabelas so esto disponveis em uma eventual falha de sistema. Viso Geral do Oracle ASM Automatic Storage Manager (ASM) um gerenciador de volumes e ao mesmo tempo um sistema de arquivos para banco de dados Oracle o qual suporta configuraes do tipo single-instance e RAC. O ASM uma soluo alternativa de gerenciamento de volume de discos, sistemas de arquivos e raw devices. O ASM utiliza agrupamento de discos para armazenar arquivos de dados; um ASM disk group nada mais do que uma coleo de discos os quais o ASM gerencia como se fosse apenas uma unidade de disco. Dentro de um disk group, os arquivos de banco de dados Oracle so apresentados em uma interface semelhante ao sistema de arquivos unix e linux. O contedo dos arquivos so eventualmente redistribuidos para evitar gargalos e garantir estabilidade de desempenho. Seu desempenho semelhante ao desempenho de raw devices. Voc pode adicionar ou remover discos de um disk group sem interromper o servio de banco de dados. Quando voc remove ou adiciona discos de um disk group, o ASM automaticamente redistribui os arquivos e, conseqentemente elimina a necessidade de parada de servios para redistribuio de contedos. O gerenciador ASM possui flexveis opes de espelhamento. ASM normal e alta redundncia de disk groups, espelhamentos tipo two-way e three-way respectivamente. Permite o uso de redundncia externa do tipo RAID.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

63

Grupo iPED - Curso de Oracle 10g O ASM tambm utiliza o Oracle Managed Files (OMF) para simplificar o gerenciamento de arquivos banco de dados. O OMF automaticamente cria os arquivos em sua respectivas pastas. Alm disso, atribui nomes aos arquivos e remove-os, defragmentando reas de disco, quando as tablespaces ou arquivos so excludos. O ASM simplifica as tarefas de administrao de storage consolidando os dados de storage em um reduzido grupo de discos. Isso possibilita a unificao do storage para diversos bancos de dados e oferece melhorias de desempenhos dos processos de leitura e gravao em discos. Os arquivos ASM podem ser configurados com outros gerenciadores de storage , como raw devices e sistemas de arquivos de terceiros. Isto simplifica a integrao do ASM com os demais sistemas de armazenamento j existentes. Buffer Cache, Shared Pool e o Log Buffer bem verdade que as interfaces GUI como o Spotlight, o Database/Grid Control(10g), o OEM(9x) entre outras, so muito teis, e facilitam em muito a identificao de problemas de performance. Mas, como nem sempre teremos essas ferramentas mo, interessante saber utilizar as vises V$ para identificar problemas de performance. Por isso, nesse artigo iremos falar um pouco da utilizao de views para realizar o ajuste do BUFFER CACHE, SHARED POOL e LOG BUFFER. Buffer Cache O buffer cache utilizado para armazenar os blocos lidos a partir dos discos. Significa que um buffer cache pequeno ir fazer com que o Oracle precise remover do cache os blocos de dados seguindo a lista LRU (LAST RECENTLY USED), e dependendo da frequncia com que isso acontece, poder gerar uma queda na performance. No existe uma mgica para dimensionar o buffer cache, o que normalmente se faz estimar um tamanho inicial e monitorar o acerto, caso no esteja dentro do ideal, voc precisar aumentar e repetir o ciclo de monitoramento. Um detalhe importante que quando a instncia inicializada, o buffer cache est vazio, portanto, qualquer consulta ir gerar misses no buffer. Significa dizer que validar as taxas de acerto no buffer logo aps o startup errado, voc provavelmente ter uma taxa de acerto muito baixa. O buffer calculado usando a seguinte frmula: 1 - (physical_reads/(db_block_gets consistent_gets)) consistent gets o nmero de vezes que uma leitura consistente foi requisitada para um bloco do buffer cache. db block gets from o nmero de vezes que um bloco foi requisitado para o buffer cache. physical reads o nmero total de blocos de dados lidos do disco para o buffer cache. 64
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g SELECT NAME, PHYSICAL_READS, DB_BLOCK_GETS, CONSISTENT_GETS, (PHYSICAL_READS / (DB_BLOCK_GETS CONSISTENT_GETS)) "Hit Ratio" FROM V$BUFFER_POOL_STATISTICS; NAME PHYSICAL_READS DB_BLOCK_GETS CONSISTENT_GETS Hit Ratio --------------- -------------- ------------- --------------- ---------DEFAULT 2382927 85639921 46004325 .981898738 1 row selected. No exemplo acima, a taxa de acerto foi de 98 no buffer cache. Uma consulta semelhante pode ser feita na V$SYSSTAT:

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

65

Grupo iPED - Curso de Oracle 10g

O buffer cache tambm pode ser ajustado com base na view VDB_CACHE_ADVICE. Para que essa view seja populada necessrio que o parmetro DB_CACHE_ADVICE esteja ON.

66

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g A declarao abaixo consulta a respectiva view, retornando estimativas de buffer e de acerto.

Lembrando que, quando falamos de memria, estamos falando de memria fsica, um servidor Oracle, no deve fazer swap. Para utilizar o buffer cache de forma eficiente, as declaraes SQL da aplicao devem estar ajustadas para evitar consumo desnecessrio de recursos. Isso feito verificando as declaraes SQL executadas com mais freqncia e as que fazem uso de uma maior quantidade de buffers. A consulta abaixo retorna as 50 maiores consultas consumidoras de BUFFERS. SELECT * FROM (SELECT SQL_FULLTEXT, BUFFER_GETS FROM V$SQL ORDER BY BUFFER_GETS DESC) WHERE ROWNUM <= 50 Existem duas formas de melhorar o acerto no buffer:

Otimizando as consultas de forma a retornarem menos blocos, e dessa forma utilizar menos buffer. Aumentando o buffer cache.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

67

Grupo iPED - Curso de Oracle 10g Shared Pool O Oracle utilize a SHARED POOL para armazenar declaraes PL/SQL e SQL, dados do dicionrio entre outros. Da mesma forma que o BUFFER CACHE, impossvel determinar um tamanho inicial para uma base nova. Voc deve seguir o mesmo principio do BUFFER CACHE, colocar um valor e avaliar o ambiente. Lembrando que a SHARED POOL inicia vazia, e medida que os usurios vo submetendo as declaraes SQL ela vai sendo preenchida. Para isso, observe o seguinte:

Utilize sempre que possvel bind variables ao invs de caracteres literais nas declaraes. Isso faz com que o Oracle armazene apenas uma declarao SQL. As declaraes, apesar de semelhantes, ocupam duas reas distintas na SHARED_POOL:

Substitua: SELECT employee_id FROM employees WHERE department_id = 10; SELECT employee_id FROM employees WHERE department_id = 20; Por: SELECT employee_id FROM employees WHERE department_id = :dept_id;

As aplicaes devem evitar os usurios possam criar suas prprias instrues. Crie padres para as bind variables e para os espaos nas declaraes SQL blocos de PL/SQL.

Por exemplo: SELECT employee_id FROM employees WHERE department_id = :dept_id diferente de: SELECT employee_id FROM employees where department_id = :dept_id O objetivo do tuning na SHARED_POOL fazer com que uma declarao SQL que est no cache possa ser reutilizada o maior nmero de vezes possvel. Utilize a declarao abaixo para identificar a taxa de hit ratio da shared pool:

68

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

A consulta mostrou que 99,65 dos cdigos de SQL e PLSQL esto sendo reaproveitados. A declarao abaixo mostra a quantidade de bytes livres na SHARED_POOL.

A consulta abaixo tambm auxilia na descoberta da taxa de acerto da SHARED POOL.


Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

69

Grupo iPED - Curso de Oracle 10g

Tambm possvel utilizar a view V$SHARED_POOL_ADVICE. Para isso preciso que o parmetro STATISTICS_LEVEL esteja configurado como ALL ou TYPICAL. show parameter statistics_level; statistics_level string TYPICAL

70

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

sada acima mostra que o tamanho da shared pool de 3922M. Mostra tambm que, se o tamanho da shared pool fosse ajustado para 3072M, teria a mesma eficincia.

Log Buffer Aplicaes que inserem, modificam ou excluem um grande volume de registros normalmente no utilizam o tamanho default de log buffer. Apesar do tamanho do log buffer ser bem menor frente ao tamanho total da SGA, ele tem grande impacto na performace de sistemas que realizam atualizao no volume dos dados. Um tamanho inicial para o log buffer : MAX(0.5M, (128K * nmero de CPUs)) A maioria dos sistemas que possuem log buffer maior que 1M no possuem ganhos de performance. A anlise da performance do log buffer feita por intervalo. Deve ser coletado em intervalos, e verificar se existe um aumento do valor. O ideal que no existam alteraes.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

71

Grupo iPED - Curso de Oracle 10g

Se o valor aumentar de forma consistente, necessrio ajustar o tamanho do log buffer.

Arquived Logs Neste Tpico iremos falar dos ARCHIVED LOGS. Compreenderemos sua utilidade, como habilit-lo e daremos alguns exemplos de como eles podem ser teis. A maioria dos SGDB"s possuem um mecanismo de log, que armazena todas as alteraes realizadas no base de dados, como por ex: insert"s, update"s, delete"s, create table. Esses eventos vo preenchendo esses arquivos de log. No Oracle, por default, so criados 3 grupos de redologs, cada grupo com 3 membro. A consulta abaixo, mostra a existncia de 3 grupos, cada grupo com um 2 membro.

72

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

Esta outra consulta, mostra quem so esse membros, e onde eles esto armazenados.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

73

Grupo iPED - Curso de Oracle 10g

A utilizao desses REDO LOGS cclica, significa dizer que, quando um REDO LOG estiver cheio, o Oracle utilizar o seguinte. No exemplo acima o GROUP 1 est CURRENT. Como ele o ltimo, quando estiver cheio, o banco voltar a utilizar o GROUP 2, e simplemente ir sobrescrever, se efetuar nenhuma cpia do arquivo de log INACTIVE. Os archives se, quando configurados, fazem com que o Oracle realize uma cpia para que possa ser utilizada posteriormente em operaes de BACKUP e RECOVER antes de sobrescever o REDOLOG. No exemplo acima, a base de dados est no modo NO ARCHIVE , e a localizao default de arquivamento est %ORACLE_HOME%\RDMS . O parmetro LOG_ARCHIVE_FORMAT utilizado para formatar o filename do archive, normalmente o formato ARC%S_%R.%T suficiente. Iremos ento mudar o lugar do armazenamento e em seguida habilitar archive log. Podemos ter at 10 locais diferentes de armazenamento. Para alterar o modo para ARCHIVE LOG, devemos colocar a base de dados em modo EXCLUSIVE, utilizando o comando STARTUP MOUNT EXCLUSIVE . Em seguida, utilizando o comando ALTER DATABASE ARCHIVELOG , vamos habilitar o arquivamento dos logs. O comando ARCHIVE LOG LIST , agora mostra a base em modo ARCHIVE. 74
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g Se quiser confirmar a correta configurao, utilize o comando ALTER SYSTEM SWITCH LOGFILE, para forar o arquivamento do log. Em verses anteriores a 10g, era necessrio setar o parmetro LOG_ARCHIVE_START para TRUE . Agora que habilitamos o ARCHIVE, vamos entender como ele pode nos ajudar a manter o ambiente. Imagine um ambiente que funciona 8(horas)x(5)dias, quem em hipotese alguma poder existir a perca de informaes, quando muito, aceita-se a perca de 30 minutos. Se sua base est em modo NO ARCHIVE, e seu HD foi para o espao, logo no final do dia, a nica coisa que te resta, fazer o restore FULL do ltimo backup, e torcer para que ele esteja consistente. Imaginando que vc fez o backup na noite anterior, voc vai perder ALM DO EMPREGO, 1 dia de movimento. Com o ARCHIVE e um pouco de sorte, perderia apenas os REDOLOGS que no haviam sido arquivados ainda. Por isso, aconselha-se a no colocar os archives no mesmo device da base de dados (CONTROLFILES, REDOLOGS, DATAFILES), alm de que esse processo gera uma carga de I/O adicional. Tablespace Temporria Tablespace Temporria, um ponto que pode chegar a virar um grande problema para o DBA ou desenvolvedor da empresa. A Tablespace Temporria, ou como ns conhecemos, TEMP, utilizada para armazenar informaes de ordenao (SORT) ou para armazenar dados de tabelas temporrias (CREATE TEMPORARY TABLE). A principio, a Tablespace Temporria tem seu lugar fsico reservado no servidor, determinado pelo DBA, porm, sua principal funo no banco de dados auxiliar a memria do Oracle (SGA), em seu principal componente, o SORT_AREA_SIZE. Porque a Tablespace Temporria auxilia a memria do Oracle? Muita gente no sabe que comandos como CREATE INDEX, ANALYZE, SELECTS com as funes DISTINCT, GROUP BY, ORDER BY, UNION, INTERSECT, MINUS, Junes de tabelas com HASH e MERGE iro utilizar a tablespace Temporrio, coisa que muitos DBAs e Desenvolvedores e usurios utilizam em seu dia-a-dia. Imagine o tamanho que teramos que ter em memria para poder armazenar criao de ndices de tabelas de 100GB, ou melhor, imagine um usurio dentro de um Data Warehouse fazendo um SELECT com juno MERGE de duas tabelas de 300 Milhes de Linhas e outra de 500 Mil linhas. O Oracle nunca ir conseguir ordenar isso em memria, e quem ir fazer esse trabalho no lugar do SORT_AREA_SIZE ser a nossa Tablespace Temporria.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

75

Grupo iPED - Curso de Oracle 10g Percebe-se que quando se cria um usurio no banco de dados, sempre devemos especificar uma Tablespace Temporria (TEMPORARY TABLESPACE), isso significa que quando esse usurio executar qualquer comando que precise de SORT_AREA, pea ajuda para a Tablespace Temporria vinculada a esse usurio. Criando e Gerenciando a Tablespace Temporria Agora que conhecemos um pouco da Tablespace Temporria, vamos criar uma desde o incio, lembrando que j deve existir uma Tablespace Temporrio padro, chamado TEMP, ento mude o nome da nova tablespace. Create temporary tablespace TEMP Tempfile X:\ORACLE\TEMP.DBF size 500m Autoextend on Next 100M Maxsize 2000M Extent management local Uniform size 100M; Percebe-se que os comandos para criao da tablespace temporria UM POUCO diferente do convencional, para Tablespaces de dados, notamos que na linha dois existe uma diferena que pode confundir muita gente, o TEMPFILES. O TEMPFILES especifica que o arquivo DBF que est no servidor ser de uso TEMPORARIO, podendo ou no ocupar toda sua capacidade. Exemplo imaginamos que temos um Filesystem de 20GB, e estou criando uma outra tablespace temporria, chamada TEMP2. Quando eu crio minha tablespace especificando o tamanho, exemplo 10GB. No sistema operacional (Exemplo SOLARIS), ir acusar que o DBF de 10GB, porm no ir ocupar esse espao efetivamente. Com isso podemos ter problemas. Se eu criar mais 2 tempfiles de 10GB, o Oracle ir permitir a criao e o sistema operacional tambm. Notamos que j temos 30GB alocados. Agora que ir comear o problema, quando seu banco de dados comear a transacionar ou o usurios trabalharem muito com SORT, esse espao temporrio ir crescer, crescer, e crescer que comear aparecer ERRO DE I/O para o usurio. Com isso ele ir acionar o DBA. Outro problema bsico que alguns administradores enfrentam quando procura pela Tablespace Temporrio na view dinmica DBA_DATA_FILES, sempre vlido lembrar que no Oracle ns temos duas opes de views, a DBA_DATA_FILES que mostra todos os datafiles de dados do banco de dados e o DBA_TEMP_FILES que mostra os datafiles TEMPORARIOS, que dizer, que faz parte de tablespaces temporrias. Gerenciando minha Tablespace Temporria on-line No Oracle temos algumas facilidades de manusear os arquivos temporrios, utilizando comandos simples, veja: Caso queira dropar uma tempfile pois o tamanho est exagerado siga os passos abaixo : 1 Criar novo tablespace temp 76
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g Create temporary tablespace TEMP_2 Tempfile X:\ORACLE\TEMP_2.DBF size 500m Autoextend on Next 100M Maxsize 2000M Extent management local Uniform size 100M; Tablespace created. 2Consultar usuarios SQL>spool c:\teste1.sql SQL> Select 'alter user '||username||' temporary tablespace temp_2;' from dba_users; alter user||username||temporary tablespace temp_2; (tirar cabealho para poder rodar) -----------------------------------------------------------------Alter user SYS Temporary tablespace temp_2; Alter user SYSTEM Temporary tablespace temp_2; Alter user OPS$ORACLE Temporary tablespace temp_2; Alter user OPS$BACKSINA Temporary tablespace temp_2; Alter user CORRWIN Temporary tablespace temp_2; Alter user FUNDOWIN Temporary tablespace temp_2; Alter user CARTEIRAWIN Temporary tablespace temp_2; Alter user ZAPCNT Temporary tablespace temp_2; Alter user CONSULT Temporary tablespace temp_2; Alter user CONSULTING Temporary tablespace temp_2; Alter user ACOESWIN Temporary tablespace temp_2; Alter user CUSTWIN Temporary tablespace temp_2; Alter user OUTLN Temporary tablespace temp_2; SQL>spool off; O resultado do arquivo deve ser rodado, o resultado do select acima tirando o cabealho e salvar como teste1.sql . Rodar o arquivo teste1sql com spool teste2.sql Alter user SYS Temporary tablespace temp_2; User altered. Alter user SYSTEM Temporary tablespace temp_2; User altered. Alter user OPS$ORACLE Temporary tablespace temp_2; User altered. Alter user OUTLN Temporary tablespace temp_2; User altered. 3 SQL> alter database default temporary tablespace TEMP; database altered. Obs : esse comando vai apontar o tablespace atual. 4Faa um consulta para verificar se esta todos os usurios como temp_2; SQL> select username, temporary_tablespace from dba_users;
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

77

Grupo iPED - Curso de Oracle 10g

5 Dropar o tablespace temp antigo SQL> drop tablespace TEMP including contents; Tablespace dropped.

Gerenciando o Crescimento Existe um meio eficaz de gerenciar o crescimento da tablespace temporria durante alguns processos de banco de dados, isso ser atravs da view v$sort_usage, porm antes, devemos saber qual o tamanho do bloco de dados do banco de dados, e para isso precisa de uma consulta simples:

O SQL*PLUS ir retornar o tamanho que sua instncia est usando. No nosso exemplo, no nosso exemplo, o db_block_size 8172 bytes (8KB).

78

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

Um select para ajudar os DBAs.

O resultado o tamanho total que est sendo ocupado dentro da tablespace Temporrio, depois, poder fazer um SELECT mais complexo e comparar o crescimento junto com o tamanho total da tablespace. Assim fica mais fcil para acompanhar.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

79

Grupo iPED - Curso de Oracle 10g Criando Bigfile Tablespaces no Oracle 10g

O Oracle 10g oferece a Bigfile Tablespace, ou seja, uma tablespace que pode suportar tamanhos superiores 4GB. Agora voc pode associar grandes datafiles a um Bigfile Tablespace que s pode ser gerenciado na modalidade 'locally managed'. O tamanho mximo de um Bigfile varia com base no tamanho do bloco do banco de dados. Ele pode variar de 8 a 128 terabytes. Com um Bigfile voc precisa gerenciar somente um data file por tablespace. Podendo suportar 8 exabytes em armazenamento. criando um bigfile tablespace: SQL> create bigfile tablespace Exemplo datafile '/u02/oracle/data/exemplo01.dbf' size 10G; Voc pode especificar o tamanho do bigfile tablespace em: K kilobytes M megabytes G gigabytes T terabytes - Como posso alterar o tamanho de um Bigfile Ttablespace: SQL> alter bigfile tablespace Exemplo RESIZE 8G; ou SQL> alter bigfile tablespace Exemplo AUTOEXTEND ON NEXT 5G; - Como posso identificar os Bigfile Ttablespace: As seguintes views possuem uma coluna BIGFILE que identificam a tablespace como uma Bigfile Tablespace: - DBA_TABLESPACES - USER_TABLESPACES - V$TABLESPACE

Tablespaces Como um banco de dados um conjunto de arquivos de dados, muito importante que voc entenda como um banco de dados Oracle agrupa esses arquivos. Ele faz isso sob a proteo de um objeto de banco de dados chamado tablespace. Antes de inserir dados dentro de um banco de dados Oracle, primeiro voc deve criar um tablespace e depois 80
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g uma tabela dentro deste tablespace para conter os dados, ento, uma tablespace usada para agrupar outras estruturas lgicas relacionadas entre si. O tamanho combinado dos arquivos de dados que formam uma tablespace ditam a sua capacidade de armazenamento. A combinao da capacidade de armazenamento de todas as tabespaces que formam um banco de dados forma a capacidade total de armazenamento desse banco de dados. Uma tablespace pode estar acessvel (on-line) ou no (offline), geralmente permanece online, disponvel para os usurios. Entretanto para algumas tarefas administrativas ou em algumas situaes especiais, possvel deix-las offline. Portanto, os dados de um banco de dados Oracle esto armazenados logicamente em tablespace e fisicamente nos arquivos de dados associados as tablespaces correspondentes. As tablespaces so usadas para:

Controlar a alocao de espao em disco para os dados de um banco de dados. Assinalar quotas especficas de espao para os usurios. Controlar a disponibilidade dos dados. Executar operaes parciais de cpia e recuperao de um banco de dados. Alocar o armazenamento dos dados entre diferentes dispositivos de armazenamento para melhorar a performace de um banco de dados.

O administrador de banco de dados pode criar novas tablespace, adicionar e remover arquivos de dados, configurar e alterar os parmetros de armazenamento para os segmentos criados em uma tablespace e, naturalmente, pode remov-las sem maiores problemas. Nomes de tablespace e contedo Em um tpico banco de dados existem algumas tablespaces padres, mas lembre-se os nomes aqui discutidos so apenas uma cinveno; no obrigatrio que o DBA da sua instituio os utilize. A funo principal dos tablespaces ajuda-lo a organizar seu banco de dados. Tablespace System O tablespace system uma parte obrigatria de todo banco de dados Oracle. onde o Oracle armazena todas as informaes necessrias para o gerenciamento, como os nomes dos tablespaces e o que os arquivos de dados de cada tablespace contm. Tablespace Temp O tablespace temp onde o Oracle armazena todas as suas tabelas temporrias. o quadro branco ou papel de rascunho do banco de dados. No caso de um banco de dados muito ativo, voc pode ter mais de um tablespace temporrio. Tablespace Tools O tablespace tools onde voc armazena os objetos de banco de dados necessrios para suportar as ferramentas usadas com o banco de dados, como o SQL*PLUS, assim como qualquer aplicativo Oracle o SQL*PLUS precisa armazenar tabelas no banco de dados.
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

81

Grupo iPED - Curso de Oracle 10g Tablespace Users O tablespace users contm informaes pessoais dos usurios. Tablespace SYSAUX - No Oracle Database 10g, foi criada uma nova tablespace chamada SYSAUX. Esta tablespace utilizada para armazenar uma srie de informaes relevantes para o funcionamento do banco de dados. Como o prprio nome sugere, ela um auxiliar para a tablespace SYS e manter uma srie de informaes de schemas especficos para o banco de dados. Problemas com Espao do UNDO Alguma vezes a Tablespace UNDO fica com tamanho exagerado devido a no configurao correta ao limitar o tamanho dela. O bom e fazer esse procedimento fora do expediente para no causar algum trauma durante o dia. Criar um novo tablespace UNDO Create UNDO TABLESPACE UNDOTBS_02 DATAFILE E:\ORACLE\ORADATA\SID\UNDOTBS_02.DBF SIZE 200M AUTOEXTEND ON NEXT 5M MAXSIZE 200M ; alterar o tablespace para apontar para o novo ALTER SYSTEM SET UNDO_TABLESPACE = UNDOTBS_02; Consulta para verificar se o undo esta online : SELECT SEGMENT_NAME, STATUS, TABLESPACE_NAME from dba_rollback_segs WHERE STATUS=ONLINE AND TABLESPACE_NAME =UNDOTBS1; COLOCAR O TABLESPACE UNDO OFFLINE ALTER TABLESPACE UNDOTBS1 offline; Dropar a tablespace UNDOTBS1 Drop tablespace UNDOTBS1 including contents and datafiles;

CREATE UNDO TABLESPACE UNDOTBS1 DATAFILE E:\ORACLE\ORADATA\SID\undotbs.dbf SIZE 500M AUTOEXTEND ON NEXT 5M MAXSIZE 2000M ; Alterar o tablespace para apontar para o UNDOTBS1 ALTER SYSTEM SET UNDO_TABLESPACE = UNDOTBS1; 82
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

Colocar offline o UNDOTBS_02 ALTER TABLESPACE UNDOTBS_02 offline; dropar undo UNDOTBS_02 drop tablespace UNDOTBS2 including contents and datafiles;

Obs : Verificar caso coloque o nome da Tablespace UNDO diferente do que esta no init.ora, caso esteja coloque o mesmo nome. UNDO_TBS = ''nome da nova tablespace de undo que voc criou'' UNDO_MANAGEMENT = AUTO Para efetuar o startup do banco, no SQL*Plus, digite: SQL> startup pfile=''caminho completo do arquivo initSID.ora'';

Depois de montado e aberto o banco, ainda no SQL*Plus

SQL> create spfile from pfile;

GRANT O que so comandos para ceder privilgios para o sistema ou para objetos (cedido pelos donos do objeto). A utilizao dos comandos GRANT muito utilizado no trabalho do DBA, onde damos privilgios para usurios de redes visitar tal tabela ou utilizar apenas aquele objeto especfico do database e no permitir acesso de outros usurios conectados na rede em nossas tabelas ou objetos. Os GRANT para objetos so autorizaes para outros usurios a utilizar de forma especfica o objeto escolhido, e para ceder o objeto, existe privilgios para o usurio onde o Oracle coloca a disposio o diversos privilgios, e vou citar apenas alguns mais utilizados: Alter = Permite modificaes nas tabelas ou sequences. Exemplo: SQL > GRANT ALTER ON tabela TO usuario; Index = Permite a criao de Index para as tabelas.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

83

Grupo iPED - Curso de Oracle 10g Insert = Permite a incluso de linhas nas tabelas. Update = Permite modificao nas linhas da tabela. Delete = Permite que seja deletada linhas da tabela. Select = Permite consulta na tabela. Exemplo: SQL > GRANT Index, Insert, Update, Delete, Select ON tabela1 TO usuario1; Read = Permite a leitura dos arquivos no diretrio. Write = Permita a gravao no diretrio. References = Autoriza a criao de restries de integridade que faam referncia a tabela ou view. Exemplo: SQL > GRANT Read, Write, References ON DIRECTORY nome_diretorio TO usuario1; Os GRANT de sistema so autorizaes que o DBA fornece para o usurio fazer aes dentro do banco de dados, o pacote de privilgios de sistema composto por Connect, Exp_Full_Database, Imp_Full_Database e DBA, ambos so "poderes" que o usurio poder utilizar dentro do database, cada um dos privilgios citados acima vem com diversas opes de utilizao. Entendendo como os comandos GRANT de sistema funcionam dentro do database, vou relatar alguns exemplos de como ceder privilgios para o usurio fazer aes dentro do banco. SQL > GRANT CONNECT TO usuario; SQL > GRANT CONNECT, DBA TO usuario; SQL > GRANT Exp_Full_Database, DBA, Imp_Full_Database, Connect TO usuario; Agora depois de termos cedidos milhares de privilgios, vamos aprender tambm como retirar os privilgios dos usurios mal intensionado na rede, e para fazer isso temos umas linhas de comando bem simples, que acaba com a graa de todos. SQL > REVOKE CONNECT FROM usuario; SQL > REVOKE CONNECT, DBA FROM usuario; SQL > REVOKE Exp_Full_Database, DBA, Imp_Full_Database, Connect FROM usuario; Espero ter ajudado algumas pessoas que me mandaram e-mails dizendo como autorizar certos usurios no banco de dados e deixar outros de fora e ajudado o pessoal que est com dvidas sobre o assunto. 84
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g Constraints

As CONSTRAINTS, que nada mais so restries que voc estabelece para uma coluna no banco de dados, e podem ter os seguintes tipos: * Primary Key (PK) = Est restrio cria um ndice nico para um conjunto de colunas ou uma coluna para Chave Primaria. * Unique = Est Contraint determina que uma coluna no poder ter 2 linhas com o mesmo valor. * Foreign Key (FK ou Chave Estrangeira) = Determina uma coluna ou um conjunto de colunas que possuem valores em outras tabelas, referente a uma referncia ou um relacionamento. * Check = Especifica a condio que a coluna precisa para salvar o registro. * Not Null = Determina que a coluna tem preenchimento obrigatrio.

Arquitetura de Armazenamento Lgico Para comearmos a falar sobre este assunto, precisamos de um pequeno resumo sobre os quatro grandes componentes que compe essa arquitetura, que so as tablespaces, segmentos, extenses e bloco de dados. Este um dos principais fundamentos para administrao de banco de dados Oracle, saber seu funcionamento e conceito uma grande vantagem na construo de modelo fsico de banco de dados. Primeiramente, devemos saber classificar cada um desses componentes, a fim de entender o funcionamento do armazenamento lgico do Oracle. A arquitetura lgica, como dita, composta por quatro componentes, so eles: Bloco de Dados (Data Block) O bloco de dados corresponde a um nmero especifico de bytes do banco de dados para armazenado em disco. Sendo que esse valor especificado durante a criao do banco de dados, pelo parmetro db_block_size. Ento, o Oracle gerencia todo o espao de armazenamento nos arquivos de dados (datafiles) atravs dessas pequenas unidades chamado blocos de dados, que carregam informaes importantes como cabealho, diretrio da tabela, diretrio de linha, dados de tabelas ou ndices e espao livre para inseres ou atualizaes de dados. Extenses(Extent) As extenses so unidades lgicas de armazenamento composta por um conjunto de blocos de dados, um ou mais extenses formam um segmento.
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

85

Grupo iPED - Curso de Oracle 10g As extenses so muito utilizadas para definir a caracterstica de armazenamento de algum objeto, como um tabela ou ndice. Eles podem influenciar muito na fragmentao de espao ou ajudar a definir um bom plano de crescimento da base de dados. Segmentos (Segment) Os segmentos um conjunto de extenses que possui todos os dados necessrios para uma estrutura de armazenamento lgico, como as tablespaces. Para cada tabela criada, o Oracle aloca um ou mais extenses para formar um segmento de dados, assim, tambm podemos dizer que o Oracle aloca um ou mais extenses para formar um segmento de ndice. Na arquitetura do Oracle, podemos encontrar quatro tipos de segmentos: SEGMENTO Portugus Dados ndices Desfazer Ingls Data Index Rollback Relacionados Tabelas ndices Rollbacks Segments e UNO

Consultados de Temporarrios Temporary Agrupamentos, Sumarizao, Ordenao e etc. Espaos de tabela (Tablespace) Os espaos de tabelas, ou mais conhecidas como Tablespaces, dividido atravs de unidades lgicas de armazenamento chamadas segmentos. Uma tablespace pode conter um ou mais segmentos, segmentos do tipo de dados, ndices, desfazer ou temporrio. A tablespace a camada lgica do Oracle, ficando anexada a uma camada fsica, que so os arquivos de dados (datafiles), onde se origina o armazenamento fsico dos dados. Podemos perceber que existe uma relao entre os quatro componentes citados, analise o raciocnio: Sem o bloco de dados no temos extenses, sem extenses no temos segmentos, e sem segmentos no temos tablespaces e sem tablespaces no temos banco de dados Oracle. Todos eles so responsveis pela arquitetura lgica do banco de dados. Por isso que fundamental o DBA ter esses conhecimentos. Abaixo podemos ver uma demonstrao grfica de como funciona o armazenamento lgico com e suas camadas: Na figura acima, observamos que nosso bloco de dados em destaque de 8KB, ento conclumos que no momento da criao do banco de dados, o parmetro db_block_size de 8192 bytes (8Kb), esse parmetro esttico no podendo ser alterado.

86

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g Percebemos tambm que a Extenso possui 24 blocos de dados, fazendo uma matemtica simples, 24 (blocos de dados) x 8192 (bytes) temos o tamanho da extenso, que possui 196608 bytes (192Kb). Seguindo o mesmo exemplo, nosso segmento possui duas extenses, determinando que o tamanho do segmento seja de 384 Kb. Assim podemos imaginar que se o segmento acima fosse um Segmento de Dados (Tabela), a nossa tabela teria um tamanho de 284Kb. Isso sem levar em considerao a configurao de storage desse segmento, que envolve os parmetros de INITIAL, NEXT, MINEXTENTS, MAXEXTENTS e PCTINCREASE, que j outro assunto mais detalhado. O tamanho da tablespace no tem vinculo nenhum com os componentes citados, pois seu tamanho especificado no momento de sua criao.Foi um breve resumo sobre sua arquitetura, espero que tenham gostado do assunto e que acrescente mais informaes para os futuros Dbas. Existem muitas particularidades sobre cada componente que no foi dito, porm, deixamos para outro momento. A principal concluso de como funciona toda a arquitetura de armazenamento lgico, um dos principais fundamentos do banco de dados Oracle.

Flashback - Novos Recursos O Oracle 10g apresentou novos recursos de Flashback, como o Flashback Database, o Flashback drop e o Flashback Query. Nesse artigo ser abortado mais sobre esses novos recursos. Flashback Database Esse recurso de Flashback Database permite recuperar o banco, fazendo que o mesmo possa ser voltado num ponto especfico do tempo. Esse recurso pode ser til para situaes como corrupo de dados lgicos ou perda de dados feita por algum usurio de uma maneira no intencional. Antes de aprofundarmos mais no assunto, gostaria de deixar claro que esse recurso no um recurso de recuperao de banco de dados no caso de perda fsica ou corrupo fsica, mas sendo um meio mais rpido para uma recuperao de dados se comparado a outros, como backups lgicos e Logminer. Estrutura A estrutura do Flashback Database envolve alguns novos componentes: logs de Flashback Database e RVWR (Processo de segundo plano). * Logs de Flashback Database: um arquivo de log com a imagem anterior dos blocos do banco de dados Oracle. Esses logs devem ser criados na rea de recuperao de flashback, ou seja, essa rea deve ser configurada para esse armazenamento. Esses logs no servem para recuperao de banco, pois os mesmos no so arquivados como acontece com a rea de redo.
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

87

Grupo iPED - Curso de Oracle 10g * RVWR: Quando o Flashback Database est ativado, o processo de segundo plano RVWR iniciado, sendo responsvel por gravar nos logs os dados do Flashback Database. RECYCLEBIN Para suportar esse recurso o Oracle introduziu o conceito de lixeira que funciona semelhante ao do Windows, sendo nomeado de RECYCLEBIN. Utilizando Quando o usurio d o comando drop table NOMEDATABELA, as tabelas vo para a lixeira do Oracle. Caso queira excluir a tabela sem que a mesma v para a lixeira, basta dar um drop table NOMEDATABLEA purge;. Na RECYCLEBIN, lixeira, o objeto tem seu nome alterado para evitar conflito nas atribuies de nomes dos objetos excludos. OBS: Note que os objetos no so excludos e sim movidos para a rea da lixeira quando "Dropado" sem o comando PURGE. Caso queira excluir um objeto da lixeira e no lembra qual seu nome identificado aps a excluso, utilize a viso do dicionrio de dados RECYCLEBIN, nela conter informaes do nome original do objeto, nome aps excluso, tipo de operao, tipo de objeto, dentre outras informaes. Aps identificar o nome, d o comando purge table NOMEIDENTIFICADO;. Para recuperar uma tabela excluda sem o comando PURGE, d: flashback table NOMEDATABELA to before drop; Pode-se tambm recuperar uma tabela num ponto especfico do tempo. Para isso h duas maneiras, TIMESTAMP ou SCN, conforme exemplos abaixo: flashback table NOMEDATABELA 09:00:00', 'dd-MON-yyyy hh24:mi:ss'); to timestamp to_timestamp('11-Jan-2005

flashback table NOMEDATABELA to before scn 1901443; FLASHBACK VERSIONS QUERY Esse recurso d a opo de visualizar num ponto especfico do tempo verses de dados, ou seja, caso queira ver dados de um usurio cadastrado a um determinado tempo em sua base e ver, por exemplo, as mudanas desses dados como e-mail, endereo ou telefone. No exemplo abaixo, mostraremos como utilizar esse recurso e examinar uma lista de telefones dos usurios e as alteraes nos ltimos trinta minutos.

88

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g * select id, nome, sobrenome, telefone from usurios VERSIONS BETWEEN TIMESTAMP SYSTIMESTAMP - INTERVAL '30' MINUTE; S sero mostradas as alteraes submetidas a COMMIT ou ROLLBACK. Um outro ponto importante que esse recurso depende do tamanho do seu UNDO, ou melhor, do seu UNDO_RETENTION. importante saber que ao informar um TIMESTAMP ou um SCN maior do possvel, o Oracle te retornar um erro. OBS: Esse Recurso no pode ser utilizado em Views e o usurio necessita de privilgios de Flashback e Select. FLASHBACK TRANSACTION QUERY Para finalizar o ltimo novo recurso Flashback presente na verso 10g, que possibilita a reconstruo de instrues SQL previamente executadas no banco. Para se fazer uso desse recurso ser utilizado a viso V$flashback_transaction_query, mas como o recurso anterior, tambm depende do parmetro UNDO_RETENTION. Exemplo: select undo_sql from v$flashback_transaction_query where table_owner = 'JOAO' and table_name = 'USUARIOS' and start_scn 1901443 and 1980475; Nesse exemplo estamos examinando instrues SQL realizadas entre o System Change Number 1901443 e 1980475. O nico problema nessa feature que a viso do dicionrio no indexada. Uma observao final. Nunca esquea de colocar um valor alto no parmetro UNDO_RENTENTION, caso contrrio, dependendo da situao, no conseguir voltar ao ponto desejado.

Oracle Data Pump No Oracle 10g voc pode usar um utilitrio de movimentao de dados chamado Data Pump para aumentar o desempenho no transporte de dados, pois o mesmo 60% mais rpido do que os utilitrios de export e import que ainda esto disponveis no 10g.

O Data Pump utiliza recursos de processamento paralelos no transporte de dados e pode ler arquivos de exportao criados pelo utilitrio export. Ele emprega a Tecnologia DIRECT PATH para carregar ou exportar dados. Diferentemente dos programas Import e Export que funciona no lado cliente de uma sesso do banco de dados, o Data Pump executa no servidor. Assim, voc deve usar um diretrio de banco de dados para especificar a localizao de arquivos de Dump e Log.
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

89

Grupo iPED - Curso de Oracle 10g

O Data Pump pode ser chamado da linha de comando com os programas IMPDB e EXPDP ou atravs do PACKAGE DBMS_DATAPUMP. Voc pode pedir ao expdp uma lista completa de parmetros, especificando o parmetro help=y.

Parmetros Full=y Schemas=schema_list Tables=tables_list Content=content_option Network_link=db_link Dumpfile=dir:file

Descrio Modo de exportao de banco de dados Especifica schema exportao em modo

Exportao em Modo Tabela Indica quando dados ou metadados sero exportados default ALL Especifica um Banco de Dados Remoto com a origem de dados Nome do Arquivo Dump, Se o nome do Arquivo contiver %U ,este ser substitudo por dois dgitos . Tamanho mximo do arquivo Dump e Log Localizao e nome do Arquivo de Log Localizao para Arquivo Dump e Log Indica que no ser gravado um arquivo de log. Especifica um nome que pode ser utilizado por um job de importao Nmero mximo de processos de palalelismo. Localizao e nome do arquivo de Parmetros

Filesize=size_limit Logfile=dir:file Directory=dir Nologfile=y Job_name=identifier Parallel=degree Parfile=dir:file

90

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g Utilizando o Data Pump para Exportar dados Voc inicia uma exportao via Data Pump executando o Programa EXPDP ou executando um Programa PL/SQL que chama a procedure DBMS_DATAPUMP.O Enterprise Manager Tambm fornece uma interface grfica para a execuo do Data Pump. Aprenderemos agora como Exporta dados utilizando a linha de comando com o Data Pump. O programa de exportao do Data Pump pode funcionar de vrios modos, incluindo banco de dados, Schema, Tabela, Tablespace. Em uma exportao de modo de banco de dados, o banco de dados inteiro exportado para arquivo de sistema operacional incluindo contas de usurios, sinnimos pblicos, roles e profiles. Em uma exportao de modo schema, todos os dados e metadados de uma lista de schema so exportados. No modo de tabela, inclui os dados e metadados de uma lista de tabelas no modo tablespace, extrai tanto dados como metadados de todos os objetos em uma lista de tablespace bem como qualquer objeto dependente daquela lista de tablespaces especificada. Os arquivos criados pelo Data Pump so chamados de DUMP FILES, um ou vrios desses arquivos podem ser criados durante uma nica execuo do Data Pump. Mltiplos arquivos podem ser criados se a execuo do Data Pump tiver um grau de paralelismo maior que um ou se um arquivo exceder o tamanho limite do parmetro FILISEZE. Todos os arquivos de dump de uma execuo so chamados de dump file set. Veremos agora como executar o data pump em seus diferentes modos de exportao. Entre com o usurio system, d o privilgio create any directory para criar o diretrio onde ser guardado o dump file Conn system/password@orcl

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

91

Grupo iPED - Curso de Oracle 10g

92

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

Utilize a view dba_directories para consultar o que vc acabou de criar se realmente esta no caminho correto.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

93

Grupo iPED - Curso de Oracle 10g

Fazendo o export de tabelas com expdp Expdp scott/tiger@orcl tables=emp,dept directory=teste_dir Dumpfile=emp_dept.dmp logfile=expdppemp_dept.log nologfile =y content=metadata_only

94

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g O parmetro nologfile=y diz ao DATA PUMP para no gravar um arquivo de log em disco. O parmetro content=metadata_only diz ao DATA PUMP para exportar s os metadados, no os dados das tabelas. Para especificar somente dados, sem metadados, substitua o parmetro metadata_only por data_only. O parmetro tables_exists_action=append permite importar dados para uma tabela que j tem dados . Fazendo o export de schemas com expdp Expdp system/oracle@orcl logfile=impdpscott.log schemas=scott directory=teste_dir dumpfile=scott.dmp

Fazendo o exporte do Banco de Dados com expdp Expdp system/password@orcl logfile=impdpdb10g.log full=y directory=teste_dir dumpfile=db10g.dmp

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

95

Grupo iPED - Curso de Oracle 10g

Fazendo o exporte das tablespaces Expdp system/password@orcl directory=teste_dir logfile=exptbs10g.log tablespaces=users dumpfile=db10tabelspace.dmp

96

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g Para monitorar as operaes realizadas pelo Data Pump, consulte as views: Dba_datapump_jobs Dba_datapump_sessions Datapump_paths

Uma importao com o Data Pump pode ser iniciada com um programa PL/SQL, utilizando a procedure DBMS_DATAPUMP ou pelo Oracle Enterprise Manager. Veremos como importar dados com o Data Pump. Executando uma importao utilizando a linha de comando O programa de importao DATA PUMP, impdp, tem vrios modos de operao, incluindo FULL, SCHEMA, TABLE, TABLESPACE. No modo FULL, o contedo inteiro de um conjunto de arquivos especificado carregado. Modo SCHEMA, todo o contedo de uma lista de esquemas especificados carregado. O conjunto de arquivos especificado de uma importao no modo SCHEMA pode ser de banco de dados ou de uma exportao de modo TABLE, no modo TABLE, s a Tabela especificada e os objetos dependentes so carregadas do conjunto de arquivos de exportao. Com uma importao no modo TABLESPACE, todos os objetos no conjunto de exportao que estiverem na lista de tablespace especificada so carregados. Em todos estes modos, a origem pode ser um banco de dados, ao invs de um conjunto de arquivo. A tabela abaixo mostra os modelos de importao suportados por diversos modos de exportao. Modo de Exportao Database, Schema, Tablespace. Database, Schema Database, Schema, Tablespace. Database, Schema, Tablespace. Modo de Importao Tabela, Full Schema Tabela, Tabela Tabela, Tablespace

A Role IMP_FULL_DATABASE requerida se a origem for um banco de dados ou se a sesso de exportao exigir a role EXP_FULL_DATABASE.Vrios parmetros controlam Data Pump na importao. Esses parmetros so listados na Tabela Digite: help = y Parmetros de Importao do Data Pump

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

97

Grupo iPED - Curso de Oracle 10g

Full=Y Schema Tables=tabela_list Tablespace=tablespace_list Content=cont_option Network_link=db_link

Especifica uma Importao full Especifica uma modo Schema importao no

Especifica importao no modo Table Especifica importao no modo Tablespace Indica que sero carregados dados, metadados ou ambos Indica que o banco de dados especificado no Database link ser utilizado como origem de dados Localizao e o nome do arquivo de dump Localizao e o nome do arquivo de log Diretrio para localizar os arquivos de Dump e Log No grava arquivos de log Especifica um arquivo para gravar comandos DDL Nome para tarefa de import Nmero mximo de processos para importao Localizao Parmetro dos arquivos de

Dumpfile=dir:arq Logfile= Directory=dir Nologfile=y Sqlfile= Job_name=identifier Parallel Parfile= Reuse_datafiles=option

Indica se arquivos devero ser sobrepostos com o camando: Create Tablespace

Remap_datafiles=source:target Indica como renomear arquivos de dados Remap_schema Remap_tablespace Include exclude 98 Determina a carga de um schema Instruo para fazer Remap de tablespace Determina que tipo de objeto sero includos na importao Determina que tipo de objeto sero
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g

excludos na importao Status Streams_configuration Table_exists_action Transform Permitem o carregamento da ao do metadata Exemplos de objetos importados Metadata transformam para aplicar-se aos objetos aplicveis. Vlido transforme keywords Passa os importados datafiles a serem do as

Transport_datafile Transport_full_check

verificam segmentos armazenamento de todas tabelas

Transport_tablespace

Determina a tablespace a ser importada

Exemplo da utilizao do Importe do Data Pump Fazendo o import de tabelas com impdp Imp scott/tiger tables=emp,dept logfile=impdpemp.log directory=teste_dir dumpfile=emp_dept.dmp

Fazendo import de schemas com impdp Impdp system/password logfile=impdpscott.log schemas=scott directory=teste_dir dumpfile=scott.dmp

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

99

Grupo iPED - Curso de Oracle 10g

Fazendo o import full do Banco de Dados com impdp impdp system/passwordl logfile=impdpdb10g.log full=y directory=teste_dir dumpfile=db10g.dmp

Obs.: Na imagem, esto aparecendo algumas mensagens de erro. Estas mensagens so devidas a existncia de algumas tablespaces e esquemas. Fazendo o import tablespaces Voc usa Tablespaces transportvel quando voc quer mover um tablespace inteiro dos dados de uma base de dados do Oracle para outra. Tablespaces transportvel permite 100
Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

Grupo iPED - Curso de Oracle 10g que os arquivos de dados do Oracle sejam desconectados de uma base de dados, movidos ou copiados a uma outra posio, e plugged ento em uma outra base de dados. Os dados movidos que usam Tablespaces transportvel podem ser muito mais rpidos do que executando uma exportao ou a importao dos mesmos dados, porque transportar um tablespace requer somente a cpia dos datafiles e integrar a informao do dicionrio do tablespace. Mesmo ao transportar um tablespace, a exportao e a importao so usadas e ainda segurar a extrao e a recreao do metadata para esse tablespace. impdp system/password directory=teste_dir .dmp logfile=exptbs10g.log tablespaces=users dumpfile=db10tabelspace

Chegamos ao Fim de mais um Curso do Grupo IPED.

Proibida a reproduo por qualquer meio eletrnico ou impresso. Grupo iPED - Todos os direitos reservados - www.iped.com.br

101

Você também pode gostar