Banco de dados Oracle:
Fornecer ao leitor
uma visão geral dos conceitos de banco de dados e o Oracle.
Visão geral
O objetivo de um banco de dados é armazenar e recuperar informações
relacionadas. Um servidor de banco de dados é a chave da solução do problema de
gerenciamento de informações.
Em geral o servidor gerencia uma grande quantidade de dados
em um ambiente multiusuário onde vários usuários podem concorrer ao acesso a um
mesmo dado.
Tudo isso ocorre enquanto o banco entrega dados em alto
desempenho. Um banco de dados Oracle tem estruturas lógicas e estruturas
físicas.
Separadas assim o armazenamento dos dados podem ser
gerenciados sem afetar o acesso às estruturas lógicas de armazenamento.
Estruturas lógicas de banco de dados
As estruturas lógicas do Oracle incluem schemas, data
blocks, extens, segments e tablespaces.
Schemas e objetos de schemas
Schema é uma coleção de objetos de um banco de dados.
Um schema pertence a um usuário do banco de dados e tem o
mesmo nome do usuário. Objetos de um schema são estruturas lógicas que se
referem diretamente aos dados do banco. Objetos de um schema incluem estruturas
como tables (tabelas), views (visões de tabelas) e index (índices de tabelas).
Não há relação entre tablespaces e schema. Objetos do mesmo
schema podem estar em diferentes tablespaces diferente tablespaces podem conter
objetos de diferentes schemas.
Tables (tabelas)
Uma tabela é uma unidade básica de armazenamento do banco de
dados Oracle. Tabelas do banco de dados possuem todos os dados acessíveis ao
usuário.
Cada tabela contém um determinado número de linhas e
colunas. O Oracle armazena em cada linha de uma tabela no máximo 256 colunas. Uma
tabela que contenha dados sobre empregados pode conter uma coluna chamada
numero_do_empregado e cada linha desta coluna é um número de determinado
empregado.
Views (Visões de tabelas)
Views são apresentações customizadas de dados de uma ou mais
tabelas ou outras views. Um view pode ser considerada uma query de armazenamento. Views não contém dados. Os
dados de uma view derivam das tabelas bases da view.
Elas são referenciadas como “base tables” (tabelas base).
Como as tabelas, as views podem ser selecionadas,
atualizadas, inseridas e eliminadas. Com algumas restrições. Todas as operações
efetuadas em uma view afetam as tabelas base.
Views proporcionam um nível adicional de segurança
restringido acesso a determinados conjunto de linhas e colunas de uma tabela.
Elas também escondem a complexidade dos dados armazenados e a complexidade das
querys.
Index (Índice)
Índices são estruturas associadas com tabelas. Índices podem
ser criados para melhorar o desempenho da recuperação de dados. Como um índice
de um livro permite que você acesse rapidamente as informações contidas neste
livro os índices do Oracle permitem que os dados sejam acessados mais
rapidamente.
Quando processa uma requisição o Oracle utiliza um ou todos
os índices disponíveis para localizar as linhas requisitadas de forma
eficiente. Índices são especificamente úteis quando aplicações requisitam dados
de uma tabela com número de linhas ou quando requisita uma linha específica.
Índices são criados com uma ou mais colunas de uma tabela.
Depois de criado o índice é automaticamente mantido e usado pelo Oracle.
Mudanças realizadas na tabela são automaticamente incorporadas aos índices com
completa transparência para os usuários.
Você pode particionar índices.
Cluster (Agrupamento)
Cluster é um grupo de uma ou mais tabelas fisicamente
armazenados juntos. Isto ocorre porque elas compartilham colunas comuns e
freqüentemente as usam juntas.
Por serem fisicamente armazenadas juntas o acesso a disco é
melhorado.
Como os índices os clusters não afetam o desenvolvimento da
aplicação. Se uma tabela é parte ou não de um cluster isto é transparente para
o usuário e para a aplicação. Dados armazenados em uma tabela de um cluster são
acessados da mesma forma que dados de uma tabela não clusterizada.
Data blocks, extents e segments.
As estruturas lógicas de armazenamento incluem data blocks,
extents e segments. Estes objetos permitem ao Oracle ter um grande controle do
espaço em disco.
Data blocks (Bloco de dados)
Num nível mais alto de granulidade o Oracle armazena dados
nos data blocks.
Um data block corresponde a um número específico de bytes no
espaço físico do banco de dados no disco. O tamanho padrão de um data block é
especificado no parâmetro DB_BLOCK_SIZE. Adicionalmente você pode especificar
mais de cinco tamanhos de blocos. O banco de dados usa e aloca o espaço livre
do banco em data blocks.
Extents (Extensões)
O próximo nível lógico de armazenamento é o extent. Um
extent é um conjunto contínuo de data blocks obtido em uma alocação individual
usada para armazenar um tipo específico de informação.
Segments (Segmentos)
Um segment é a unidade de armazenamento lógico imediatamente
acima do extent. Segment é um conjunto de extents armazenados em uma determinada
estrutura lógica. A tabela a seguir descreve os diferentes tipos de segments.
O Oracle aloca dinamicamente espaço quando os extents de um
segment estão cheios. Em outras palavras: Quando um extent de um segment esta
cheio o Oracle aloca um outro extent para o segment. Por ser alocado apenas
quando necessário o extent de segment pode ser ou não contínuo.
Tablespaces
Um banco de dados é dividido em unidades lógicas de
armazenamento chamadas de tablespaces. Estas unidades agrupam estruturas lógicas
relacionadas, por exemplo: Tablespaces comumente agrupam objetos da aplicação
simplificando algumas operações administrativas.
» Cada banco de dados é divido em uma ou mais tablespaces.
» Um ou mais datafiles são criados para armazenar
fisicamente os dados de todas as estruturas lógicas de um tablespace.
» O tamanho total dos datafiles de um tablespace é a
capacidade do armazenamento do table space.
» A capacidade combinada dos tablespaces de um database é a
capacidade do database.
Os tablespaces podem estar on-line ou off-line. Um
tablespace precisa estar on-line para que os usuários possam acessar suas
informações. Os tablespaces podem ficar off-line para manutenção do database.
Estruturas físicas do banco de dados
Iremos dar uma visão geral das seguintes estruturas físicas
do banco de dados Oracle: data files, arquivos de log de redo e arquivos de
controle.
Data files
Todo banco de dados Oracle tem um ou mais data files
físicos. Os data files contém os dados
do banco de dados. Os dados das estruturas lógicas como tabelas e índices são
fisicamente armazenados nos data files alocados para o banco de dados.
As características dos data files são:
» Um data file pode ser associado a um único data base.
» Os data files tem uma características que permitem que
eles sejam expandidos sempre que o espaço físico do banco de dados terminar.
» Um ou mais data files formam uma unidade lógica de
armazenamento chamada tablespace.
Os dados de um data file são lidos, quando preciso, durante
as operações normais de banco de dados e armazenados no cachê de memória do
Oracle. Por exemplo: Um usuário quer acessa
algum dado armazenado na tabela do banco. Se o dado desejado não ainda
não se encontra no cachê do banco ele é lido no data file apropriado e
armazenado no cache de memória.
Dados modificados ou alterados não são necessariamente
armazenados no data file de imediato. Para reduzir o acesso a disco e melhorar
o desempenho, o dado é colocado na memória e gravado no data file todos de uma
vez como determinado pelo processos interno do Oracle chamado “database writer
process”. Este processo é executado em segundo plano.
Redo Log Files
Todo banco de dados Oracle tem um conjunto de um ou mais
redo log files. O conjunto de um ou mais redo log files são conhecidos
coletivamente como redo log do banco de dados. Os redo log files são criados
através de registros de redo.
A função primária destes arquivos e registrar todas as
mudanças realizadas nos dados do banco de dados. Se devido a uma falha há
necessidade de se recuperar informações do banco de dados isto é possível de
ser feito através dos redo log files.
Para evitar falhas envolvendo os arquivos de redo log files
o Oracle permite a criação de multiplexed redo log files que são uma ou mais
cópias mantidas em diferentes discos.
As informações dos redo log files são usadas somente para
recuperar um banco de dados após uma falha do sistema ou do disco.
Control files
Todo banco de dados do Oracle tem um control file. Os
controls files guardam os registros que especificam as estruturas físicas dos
arquivos. Por exemplo, eles contém as seguintes informações:
» Nome do banco de dados
» Nomes e localizações dos redo log files
» A data da criação do banco de dados
Como os redo log files os control files também podem ter
cópias mantidas em mais de um disco para efeito de segurança.
Data Utilities
A um conjunto de três utilitários do Oracle (data utilities)
quer permitem que você faça as operações de importação, exportação e SQL
Loader.
Utilitário de importação
O utilitário de importação do Oracle insere em um banco de
dados objetos retirados de outro banco de dados através do utilitário de
exportação.
Utilitário de exportação
O utilitário de exportação do Oracle exporta objetos de um
banco de dados e insere em outro banco de dados sobre mesma plataforma ou
plataforma diferente.
SQL Loader
Arquivos gerados pelo utilitário de exportação só podem ser
lidos pelo utilitário de importação. Caso necessite ler arquivos em formato
ASCII, como arquivos com campos delimitados por vírgula, deverá ser utilizado o
utilitário SQL Loader.
ORACLE 2
O Oracle divide-se em duas partes:
1. Instância
– área de memória, alocada para o oracle gerenciar as requisições feitas pelos
usuários e manipular os Bancos de Dados. É a forma de conexão com o Banco de
Dados, apenas um instância é aberta;
2. Banco de
Dados – conjunto de arquivos físicos, onde são armazenadas as tabelas, índices
e demais objetos do Banco de Dados.
O Banco de Dados é dividido em três arquivos, são eles:
• Datafiles
– Arquivos físicos, armazenam tabelas, índices, etc. É necessário pelo menos um
datafile;
• Redo Log
File – Armazena fisicamente as alterações realizadas pelo Oracle, é utilizado
como uma espécie de segurança transacional. São necessários pelo menos 2 Red
Log File;
• Control
File – Gerenciam e armazenam toda a estrutura do Banco de Daods. É necessário
pelo menosum Control File.
SGA (System global area) – memória alocada na inicialização,
é de fundamental importância para o funcionamento do Banco de Dados. A sua
estrutura é a seguinte:
• Shared
Pool;
• Database
Buffer Cache;
• Redo Log
Buffer;
• demais
estruturas (lock, gerenciamento de fila, dados estatísticas);
• large
pool;
• java
pool.
O SGA, possui informações e dados de comtrole para o
servidor.
Para verificar os parâmetros do SGA usa-se o comando:
>show sga
PGA (Program global area) – memória alocada na inicialização
quando o servidor é iniciado, é uma memória não compartilhada. Contêm:
• Área de
SORT;
• Informações
de Sessão;
• Estado do
Cursor;
• Espaço de
pilha.
Segmento de RollBack (undo segment), é um objeto físico
localizado dentro de um data file do Banco de Dados. Armazena a imagem antiga
de uma transação que está sendo executada.
Conectando com o Banco de Dados
connect / as sysdba
Os comandos abaixo são utilizados para exportar e importar
um Banco de Dados, tabela(s) e/ou usuário(s).
EXPORT
Exporta as tabelas (tabela1, tabela2 e tabela3)
$ expdp USUARIO/INSTÂNCIA tables=(tabela1, tabela2, tabela3)
\
file=d:\banco.dmp \
log=d:\banco.log
Exporta o Banco de Dados inteiro
$ expdp USUARIO/INSTÂNCIA full=y \
file=d:\banco.dmp \
log=d:\banco.log
Importa as tabelas (tabela1, tabela2 e tabela3)
$ impdp USUARIO/INSTÂNCIA tables=(tabela1, tabela2, tabela3)
\
file=d:\banco.dmp \
log=d:\banco.log
Exporta o Banco de Dados inteiro
$ impdp USUARIO/INSTÂNCIA full=y \
file=d:\banco.dmp \
log=d:\banco.log
Nenhum comentário:
Postar um comentário