curso dba oracle 11g r2 parte 1 - aulas 01 e 02 - texto

7
Curso DBA Oracle 11g - Parte 1 Aulas 01 e 02 Oriens Assessoria & Soluções

Upload: daniela-macedo

Post on 04-Jul-2015

404 views

Category:

Documents


2 download

DESCRIPTION

Texto para acompanhamento das aulas 01 e 02 do Curso DBA Oracle 11g R2 Parte 1, disponível para acesso completo pelo site http://www.oriens.inf.br.

TRANSCRIPT

Page 1: Curso DBA Oracle 11g R2 Parte 1 - Aulas 01 e 02 - Texto

Curso DBA Oracle 11g - Parte 1

Aulas 01 e 02

Oriens Assessoria & Soluções

Page 2: Curso DBA Oracle 11g R2 Parte 1 - Aulas 01 e 02 - Texto

Curso DBA Oracle 11g Parte 1

ORIENS Assessoria e Soluções Ltda. – http://www.oriens.inf.br

Todos os direitos reservados

2

Primeira vídeo-aula

Introdução ao curso

Olá! Seja bem-vindo ao curso de administração de banco de dados Oracle 11g – parte 1.

Antes de começarmos o curso propriamente dito, temos de definir o que significa a expressão

“DBA Oracle” – que está no título deste curso. DBA é a sigla para database administrator.

E o que é Oracle? É um gerenciador de banco de dados relacional. Assim, um DBA Oracle é um

profissional cuja função é administrar bancos de dados Oracle. Ou seja, é alguém responsável

pelo banco de dados desde a sua criação. Ele deve criar o banco de dados, parametrizá-lo

adequadamente ao ambiente em que será instalado (levando em conta o servidor, o sistema

operacional e a forma de armazenamento dos arquivos físicos, além dos diversos recursos que

podem ser agregados ao banco de dados, como, por exemplo, memória flash), monitorar o seu

funcionamento e a performance dos diversos aplicativos que o utilizam, configurar e gerenciar

os backups, definir estratégias de contingência e segurança de dados.

Com a série de vídeo-aulas deste curso, vamos mostrar os conteúdos necessários para o início da

formação de um DBA. Por meio desses conteúdos teremos uma visão de conjunto a respeito do

que é o banco de dados Oracle e daquilo que é necessário fazer para criá-lo, configurá-lo e

mantê-lo funcionando de forma adequada às necessidades do ambiente de produção. Veremos as

principais estruturas que compõe o banco de dados e como utilizá-las para criar e gerenciar um

banco customizado para os dados que queremos armazenar e acessar a partir dele.

O único pré-requisito deste curso é o conhecimento da linguagem SQL (sigla para Structured

Query Language – Linguagem Estruturada de Consulta). Essa é a linguagem com a qual nós

podemos consultar e manipular as informações armazenadas no banco de dados Oracle. Usando

SQL também é possível criar as principais estruturas de armazenamento de dados, que são as

tabelas. Sem o conhecimento da linguagem SQL, o DBA não dispõe do meio mais fundamental

de manipulação da informação contida no banco de dados e não tem condições também de

recuperá-la. A linguagem SQL é a ferramenta mínima que permite acesso aos dados e é

imprescindível que o DBA Oracle seja capaz de dominá-la.

Além da linguagem SQL, outra ferramenta importante na administração do banco de dados

Oracle é o Enterprise Manager, uma interface visual que permite ao DBA total controle sobre as

operações do banco de dados. Em suas versões iniciais, o Oracle Enterprise Manager facilitava

ao DBA a realização das tarefas mais repetitivas. Hoje, com o banco Oracle cada vez mais auto-

gerenciável e realizando um número cada vez maior de tarefas automáticas, o Enterprise

Manager tornou-se uma console de administração e gerenciamento do banco de dados.

No decorrer deste curso, teremos oportunidades para operar o banco de dados através do

Enterprise Manager, tanto quanto através do uso direto da linguagem SQL em prompt de

comando, sempre que possível, pois o DBA Oracle não deve ser um simples operador de

interface visual, mas precisa ter um conhecimento profundo a respeito do que se passa no banco

Page 3: Curso DBA Oracle 11g R2 Parte 1 - Aulas 01 e 02 - Texto

Curso DBA Oracle 11g Parte 1

ORIENS Assessoria e Soluções Ltda. – http://www.oriens.inf.br

Todos os direitos reservados

3

de dados e das diversas formas de gerenciá-lo para obter o melhor resultado possível na

manipulação e na segurança da informação.

Para um melhor aproveitamento de tudo o que será dito e demonstrado em nossas aulas,

recomendamos o download do software Oracle 11gR2, no seguinte link: http://otn.oracle.com.

Não há custo de licença para estudo, mas não é permitido fazer qualquer uso comercial do

software sem o devido licenciamento.

Nas próximas aulas, antes de mostrarmos como fazer a instalação do banco de dados Oracle,

vamos falar sobre a estrutura física e lógica do banco Oracle e, em seguida, sobre a sua

arquitetura. Estas primeiras três aulas serão mais teóricas e vão formar a base para o nosso

estudo. Depois teremos uma aula sobre a instalação do software Oracle 11g e, em seguida, outra

sobre criação do banco dados Oracle 11g. A partir daí, as aulas serão tanto teóricas como

práticas. Continue conosco!

Segunda vídeo-aula

Estrutura de um banco de dados Oracle

Olá! Esta é a segunda aula do curso DBA Oracle 11g – parte I. Vamos mostrar agora a estrutura

física e a estrutura lógica que compõe o banco de dados Oracle.

Um banco de dados Oracle é formado, primariamente, por tabelas. As tabelas são as principais

estruturas de armazenamento e de acesso aos dados. Elas são estruturas compostas de colunas,

que qualificam a informação que devem conter, e por linhas, que formam um conjunto único e

identificável de informação (também chamado de registro).

Vamos relembrar o conceito de tabela a partir de um exemplo. Vamos imaginar uma tabela

chamada CADASTRO_DE_CLIENTES em um banco de dados Oracle. Ela poderá ter como

colunas: NÚMERO, NOME, ENDEREÇO, TELEFONE, E-MAIL, DATA_NASCIMENTO,

CIDADE, ESTADO. Cada uma dessas colunas qualifica a informação que contém, ou seja, cada

coluna é um atributo do cliente. E o conjunto de todas essas colunas, que formam a linha,

identifica um determinado cliente.

Depois da tabela, outra estrutura chave do banco de dados Oracle é o índice. Os índices são

estruturas – ou objetos – destinados a conferir maior velocidade no acesso aos dados

armazenados nas tabelas. Eles têm esse nome – índice – porque, através de um algoritmo,

indexam os endereços das informações contidas nas tabelas e permitem o acesso rápido a esses

endereços. Uma vez recuperado o endereço da informação no banco de dados Oracle, é possível

buscá-la diretamente, sem a necessidade de fazer a varredura completa de toda a tabela –

operação que pode ter um custo enorme de tempo em tabelas grandes.

Tabelas, então, são as estruturas-chave para armazenamento de dados, enquanto os índices são

as estruturas-chaves para maior velocidade de acesso aos dados contidos nas tabelas. Sobre as

Page 4: Curso DBA Oracle 11g R2 Parte 1 - Aulas 01 e 02 - Texto

Curso DBA Oracle 11g Parte 1

ORIENS Assessoria e Soluções Ltda. – http://www.oriens.inf.br

Todos os direitos reservados

4

tabelas e os índices, fundamentalmente, está assentada toda a infraestrutura dos sistemas que

utilizam o banco de dados Oracle.

Tanto tabelas quanto índices são segmentos. O que são segmentos? São estruturas – ou objetos –

do banco de dados Oracle que possuem armazenamento físico. Ou seja, ocupam espaço ao serem

criados e, na medida em que as informações vão sendo agregadas, crescem, ocupando ainda

mais espaço. Eventualmente, um segmento também pode ser eliminado do banco de dados

Oracle e, nesse caso, o espaço que ele ocupava torna-se espaço livre e pode, a partir de então, ser

aproveitado por outro segmento ainda existente.

Neste ponto, precisamos entender um conceito importante, que é a forma como os segmentos

alocam espaço no banco de dados Oracle. Para isso, precisamos começar definindo data blocks ou

blocos de dados. Os blocos de dados são a unidade mínima de armazenamento do banco de dados

Oracle. Seu tamanho é definido na criação do banco de dados e os valores permitidos para o

tamanho de um bloco de dados são 2 Kb, 4 Kb, 8 Kb, 16 Kb ou 32 Kb. Uma vez definido o

tamanho default do bloco de dados, ele não poderá ser modificado, a não ser que o banco de

dados Oracle seja recriado. Porém, é possível utilizar diferentes tamanhos de bloco de dados em

um mesmo banco de dados, ou seja, outros tamanhos além do tamanho default do bloco de

dados. Trataremos sobre o modo de fazer isto e a utilidade dessa técnica mais adiante em nosso

curso.

Chamamos de extents ou extensões aos conjuntos contíguos de blocos de dados. E então podemos

voltar aos segmentos e ao modo como eles alocam espaço no banco de dados Oracle. Pois os

segmentos são formados por extensões, não necessariamente contíguas entre si. Em uma mesma

extensão, sim, todos os blocos de dados são contíguos. Quando um segmento – uma tabela ou

um índice, por exemplo – é criado, está ocorrendo a alocação de uma extensão – um conjunto

contíguo de blocos de dados – para esse segmento. Quando esse mesmo segmento – tabela ou

índice – aumenta de tamanho, então novas extensões são alocadas, extensões essas que poderão

não estar contíguas, ou seja, poderão estar distribuídas no espaço destinado a elas.

E onde as extensões de um segmento alocam espaço? Nas tablespaces, que são as grandes

estruturas destinadas à alocação de espaço para os segmentos que compõe o banco de dados

Oracle. No momento em que são criadas, as tablespaces tem um tamanho total pré-alocado e são

formadas unicamente por extensões livres (também estas com um tamanho pré-definido). Na

medida em que os segmentos são criados e, posteriormente, crescem, eles ocupam estas

extensões, que deixam de ser consideradas extensões livres e passam a fazer parte do espaço

ocupado das tablespaces.

Até aqui vimos as estruturas lógicas de armazenamento do banco de dados Oracle. Mas, além

dessa hierarquia de estruturas lógicas, existem ainda as estruturas físicas.

A primeira das estruturas físicas que temos de ver são os datafiles ou arquivos de dados. Os

datafiles são os arquivos físicos que correspondem às tablespaces como estruturas lógicas.

Então, quando criamos uma tabela em um banco de dados Oracle, designamos a tablespace

onde essa tabela deverá alocar espaço, isto é, alocar suas extensões iniciais e suas extensões de

Page 5: Curso DBA Oracle 11g R2 Parte 1 - Aulas 01 e 02 - Texto

Curso DBA Oracle 11g Parte 1

ORIENS Assessoria e Soluções Ltda. – http://www.oriens.inf.br

Todos os direitos reservados

5

crescimento ou de aumento de tamanho. Fisicamente, porém, essa tabela estará ocupando

espaço nos datafiles dessa tablespace. Portanto, as tablespaces – que são uma estrutura lógica de

armazenamento – são compostas de um ou mais datafiles – que são estruturas físicas de

armazenamento do banco de dados Oracle. É importante dizer que, quando uma tabela ou um

índice são criados, podemos especificar a sua tablespace, mas nunca especificamos o seu

datafile. Pois a estrutura física do banco de dados Oracle é transparente para o DBA, que

trabalha sempre no nível da estrutura lógica, a não ser quando se ocupa diretamente de tarefas

de manutenção das estruturas físicas do banco de dados Oracle. Também é preciso salientar

que, quando o DBA cria uma tabela e designa uma tablespace onde ela deverá alocar espaço,

essa tabela poderá alocar suas extensões em qualquer um dos datafiles que compõe essa

tablespace (caso a tablespace seja composta de mais de um datafile). Porém, essa tabela nunca

poderá alocar extensões em outras tablespaces, além desta onde foi criada (a exceção são as

tabelas particionadas, que vamos mencionar mais adiante neste curso).

Os datafiles são considerados a principal estrutura física de armazenamento do banco de dados

Oracle porque neles são armazenados os dados propriamente ditos. No entanto, mesmo em

relação ao armazenamento de dados, existem datafiles destinados a funções diferentes. Pois

existem no banco de dados as tablespaces que se destinam a armazenar dados permanentes (os

dados dos diversos sistemas que utilizam o banco de dados Oracle e os dados do Dicionário de

Dados, que são chamados de metadados) e existem as tablespaces cuja função é fazer um

armazenamento de dados temporário. Por exemplo, quando um conjunto de dados é ordenado

(passa por uma operação ORDER BY), ele deve ser armazenado em um espaço temporário de

memória para passar pela ordenação e, depois que for classificado, então é devolvido o conjunto

final resultante de dados ao sistema ou ao usuário que requisitou essa operação. Se não houver

espaço suficiente na área temporária de memória para realizar a ordenação, então é alocado

espaço na tablespace temporária para completar a operação. Então, assim como as tablespaces

são classificadas em permanentes e temporárias, também os datafiles que as compõe recebem a

mesma classificação. Os datafiles das tablespaces temporárias recebem o nome especial de

tempfiles.

Mas os datafiles e os tempfiles não são os únicos arquivos físicos que compõe o banco de dados

Oracle. Além deles, também existem mais dois tipos de arquivos físicos que compõe o banco de

dados Oracle: são os control files e os redo log files. Vamos falar um pouco sobre eles, começando

pelos control files. Os control files são os arquivos responsáveis pelo controle do funcionamento

do banco de dados Oracle. Toda base de dados Oracle deve, obrigatoriamente, ter pelo menos 1

control file e poderá ter até 8 – havendo mais de 1 control file, eles servirão como redundância

ou espelho um para o outro, pois as informações que estão contidas nos control files e que a base

de dados periodicamente grava neles são exatamente as mesmas. São os control files que

regulam a inicialização do banco de dados Oracle (startup) e que dão a informação básica sobre

a sua derrubada (shutdown). Pois os control files informam, durante o processo de inicialização,

se o banco foi derrubado de maneira correta, sincronizadamente, de modo que também possa

voltar a subir de maneira correta e sincronizada. Também, no mesmo processo de inicialização

do banco Oracle, os control files informam onde estão os datafiles pertencentes a esse banco de

dados, de modo que todos possam ser localizados e abertos (e, caso não possam, o banco de

Page 6: Curso DBA Oracle 11g R2 Parte 1 - Aulas 01 e 02 - Texto

Curso DBA Oracle 11g Parte 1

ORIENS Assessoria e Soluções Ltda. – http://www.oriens.inf.br

Todos os direitos reservados

6

dados também não poderá ser aberto). Os control files contém as informações sobre o nome da

base de dados, a data e a hora (timestamp) em que ela foi criada e os dados do último checkpoint

ocorrido – sobre o checkpoint, porém, e a sincronia entre os datafiles, vamos falar com mais

detalhes nas próximas aulas. Neste ponto, porém, devemos salientar que esta é uma questão

muito importante e crítica do banco de dados Oracle e que deve, por isso, ser muito bem

compreendida. Por fim, sobre os control files, precisamos ainda dizer que eles não contém os

dados dos sistemas que utilizam o banco de dados Oracle como meio de armazenamento e de

acesso, mas as informações sobre a própria base de dados e que permitem mantê-la

funcionando.

Um terceiro tipo de arquivo físico que compõe o banco de dados Oracle são os redo log files. Eles

também não armazenam os dados dos sistemas, como os control files. Mas os redo log files

armazenam as transações que são executadas e confirmadas com o comando commit pelos

usuários no banco Oracle. Os redo log files, então, são o log de transações do banco de dados

Oracle. Qual é o motivo desse armazenamento de transações? Por que é que se mantém um log

de transações no banco Oracle? Para permitir a maior recuperabilidade das transações que já

foram confirmadas (commit) no banco de dados Oracle. Pois os dados das transações não são

imediatamente gravados em disco logo que essas transações são finalizadas e confirmadas com

commit. E isso por uma questão de performance, já que o acesso aos dados em disco é muito

mais lento do que o acesso aos mesmos dados em memória. Então, como a transação já foi

confirmada com commit, mas os seus dados permanecem apenas em memória, essa transação

está sujeita a ser perdida, caso haja uma queda de banco, por exemplo. E os dados de uma

transação já confirmada não podem ser perdidos, como regra. Por isso, quando uma transação é

commitada, os comandos que compõe essa transação são gravados nos redo log files e eles poderão

ser usados para recuperar essa transação, no caso de ocorrer algum tipo de queda, corrupção ou

perda no banco de dados Oracle antes que os dados dessa transação sejam gravados nos

datafiles. Então, o grande objetivo dos redo log files é proteger os dados das transações

commitadas e para isso eles existem. Mais adiante falaremos com mais detalhes sobre o modo

como os redo log files trabalham no banco de dados Oracle.

Por fim, é preciso mencionar a existência dos archived log files ou, simplesmente, archives. Os

archives não são arquivos obrigatórios, como os anteriores. Quer dizer, não existe base de dados

Oracle sem datafiles, redo log files e control files. Mas pode existir base de dados Oracle sem

archives. O que são os archives? São cópias off-line dos redo log files. Porque, como veremos em

algumas aulas, os redo log files trabalham de forma circular e, por causa disso, periodicamente

as informações da transações mais antigas, na medida em que os seus dados vão sendo gravados

nos datafiles, vão sendo sobrepostas e não são mais acessíveis. No entanto, por causa da

estratégia de backup e para manter um grau máximo de recuperabilidade da base de dados

Oracle, com flexibilidade, pode ser necessário guardar de alguma maneira e manter acessíveis os

comandos dessas transações mais antigas. O modo de fazer isso é mantendo uma cópia do redo

log file antes que ele seja sobreposto. A esta cópia nós damos o nome de archive. Os archives são

muito importantes para a estratégia de backup & recovery do banco de dados Oracle, mas não são

usados pelo banco de dados Oracle em si, pela base que está produzindo. São gerados por ela e,

depois de gerados, não têm nenhuma funcionalidade nessa base de dados.

Page 7: Curso DBA Oracle 11g R2 Parte 1 - Aulas 01 e 02 - Texto

Curso DBA Oracle 11g Parte 1

ORIENS Assessoria e Soluções Ltda. – http://www.oriens.inf.br

Todos os direitos reservados

7

Para terminar esta aula, precisamos falar sobre as formas de armazenamento físico que o banco

de dados Oracle pode utilizar, ou seja, onde e como os arquivos físicos que compõe o banco de

dados Oracle são armazenados.

Uma primeira forma, certamente a mais óbvia e a única disponível até a versão Oracle 9i, é o

armazenamento em filesystem. Nesse tipo de armazenamento, o banco de dados Oracle se utiliza

do gerenciamento de arquivos realizado pelo sistema operacional. Então, para realizar qualquer

operação de leitura e de gravação nos arquivos físicos, o banco de dados Oracle deve requisitar

essa operação ao sistema operacional, seja ele qual for. O sistema operacional, por sua vez,

através de seu gerenciador de volumes, realizará a operação e depois, quando a operação de

leitura e/ou de gravação estiver concluída, sinalizará ao banco de dados.

A outra possibilidade, existente desde a versão Oracle 10g e aperfeiçoada na versão Oracle 11g, é

o armazenamento através do ASM – Automatic Storage Management. Usando esse tipo de

armazenamento, é o próprio Oracle que controla as operações de leitura e gravação em seus

datafiles, control files e redo log files, de modo completamente independente do sistema

operacional, de seu gerenciamento de volumes e dos filesystems. Ou seja, através de um

conjunto de processos e de novas estruturas de memória (que compõe a instância ASM, como

veremos detalhadamente mais adiante), o banco de dados Oracle controla o acesso direto ao

disco físico, sem passar pelo sistema operacional, e nele escreve e lê diretamente seus próprios

arquivos – datafiles, redo log files e control files – sem nenhum tipo de ingerência do sistema

operacional. Isso quer dizer que o sistema operacional não conhece os volumes que o banco de

dados Oracle gerencia através do ASM e nem sabe que há arquivos naquele espaço em disco. O

ganho que se obtém com o uso do ASM é uma maior autonomia da base de dados Oracle em

relação ao sistema operacional, uma maior independência, e melhor performance nas operações

que envolvem acesso a disco, pois não há mais as camadas de sistema operacional e gerenciador

de volumes para as quais o banco Oracle deve requisitar o acesso ao disco. Para fazer acesso ao

disco, quando usa ASM, os processos Oracle da base de dados conversam com processos Oracle

da instância ASM – e isso é muito mais rápido do que quando o sistema operacional está no

meio, fazendo a mediação do acesso ao disco.

Tratamos, nesta aula, das estruturas físicas e lógicas que compõe o banco de dados Oracle.

Relembramos os conceitos de tabela e índice, falamos das tablespaces e de seu espaço livre e

ocupado – as extensões ou extents, divididos em blocos de dados ou data blocks. Vimos que as

extensões formam os segmentos ou segments e que estes, por sua vez, ficam armazenados nas

tablespaces. Falamos sobre os tipos de arquivos que compõe a base de dados – datafiles,

controlfiles e redo log files. Por fim, falamos sobre as possibilidades de armazenamento físico do

banco: filesystem, usando o gerenciador de volumes do sistema operacional, ou ASM, usando um

gerenciamento de volumes próprio, independente do sistema operacional. Na próxima aula,

falaremos sobre a arquitetura Oracle. Continue conosco!