More than Just Lines on a Map: Best Practices for U.S Bike Routes
Curso DBA Oracle 11g R2 Parte 1 - Aulas 01 e 02 - Texto
1. Curso DBA Oracle 11g - Parte 1
Aulas 01 e 02
Oriens Assessoria & Soluções
2. 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
3. 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
4. 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
5. 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
6. 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.
7. 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!