Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Agradecimentos
minha famlia pelo apoio durante toda a minha vida e minha
namorada, por todo o carinho e pela pacincia que ela teve comigo durante todo
esse semestre.
Resumo
O desempenho do Sistema de Gerenciamento de Banco de Dados
(SGBD) est diretamente relacionado com a eficincia das aplicaes. No
contexto atual, sistemas computacionais tm se tornado cada vez mais
importantes nos negcios e a eficincia deles pode ser decisiva para o sucesso
do empreendimento, principalmente no que se refere aos negcios on-line.
O trabalho apresentado nessa monografia aborda tpicos sobre
administrao de sistema de gerenciamento de banco de dados. Sero
enfatizados principalmente, tcnicas de administrao que tm influncia direta
sobre a performance e a estabilidade do SGBD Oracle Database 10g
[ORCL10G].
Abstract
The performance of the Database Management System (DBMS) is directly
related to the efficiency of the applications. In the current context, computational
systems have become very important in businesses and their efficiency can be
decisive for the success of the company, especially when the business is totally
on-line.
This monograph focuses on topics about the administration of Databases
Management System. The project will emphasize on administration techniques
that have direct influence on the performance and the stability of the DBMS
Oracle Database 10g [ORCL10G].
Sumrio
1
Introduo................................................................... 10
1.1
1.2
Objetivo............................................................................................................. 11
Estrutura do Trabalho ....................................................................................... 11
3.3.9
3.3.10
6
7
Concluso ....................................................................86
Referncias.................................................................. 87
Lista de figuras
Figura 2.1 Estruturas de armazenamento fsico. Fonte: [LONEY05] ........................... 21
Figura 3.1 Contedo do tablespace SYSAUX............................................................... 30
Figura 3.2 Edio de tablespaces ................................................................................... 35
Figura 3.3 Edio do arquivo de dados.......................................................................... 35
Figura 3.4 Adicionando arquivo de dados ..................................................................... 36
Figura 3.5 Blocos, extenses e segmentos. Fonte: [DAWES05]................................... 40
Figura 3.6 Formato do bloco Oracle. Fonte: [ORCLCONCEPTS] ............................... 41
Figura 3.7 Descrio da viso DBA_TABLESPACES................................................. 44
Figura 3.8 Descrio da viso DBA_SEGMENTS ....................................................... 44
Figura 3.9 Descrio da viso DBA_FREE_SPACE .................................................... 45
Figura 3.10 Criao de um tablespace de undo. ............................................................ 59
Figura 3.11 Adicionando arquivo de dados ao tablespace de undo. .............................. 60
Figura 3.11- Definio da estratgia de alocao de espao no tablespace de undo. ....... 60
Figura 3.12 Interface principal da ferramenta Undo Advisor no Enterprise Manager .. 63
Figura 3.13 - Interface da ferramenta Undo Advisor no Enterprise Manager .................. 63
Figura 4.1 Estimativa dos valores da shared pool.......................................................... 70
Figura 5.1 Componentes do Grid Control. Fonte: [OEMSG05] ................................... 79
Figura 5.2 Oracle Management Agent. Fonte: [OEMSG05]......................................... 80
Figura 5.3 Oracle Management Service. Fonte: [OEMSG05]....................................... 81
Figura 5.3 - Grid Control Console: Home ........................................................................ 82
Figura 5.4 - Grid Control Console: Targets ...................................................................... 82
Figura 5.5 - Grid Control Console: Deployments............................................................. 83
Figura 5.6 - Grid Control Console: Alerts ........................................................................ 84
Figura 5.7 - Grid Control Console: Jobs........................................................................... 84
Figura 5.8 - Grid Control Console: Management System ................................................ 85
Lista de quadros
Quadro 2.1 Vises de dicionrios de dados ................................................................... 20
Quadro 2.2 Vises de desempenho dinmico ................................................................ 20
Quadro 2.3 Criao do SPFILE a partir do PFILE ........................................................ 22
Quadro 2.4 Backup do arquivo de controle ................................................................... 23
Quadro 2.5 Exibio do valor do parmetro USER_DUMP_TEST.............................. 23
Quadro 2.6 Especificao dos arquivos de controle ...................................................... 23
Quadro 3.1 Criao de grupos temporrios ................................................................... 31
Quadro 3.2 Definio de um grupo de tablespaces temporrio como padro ............... 31
Quadro 3.3 Remoo de grupos temporrios................................................................. 32
Quadro 3.4 Comando para a criao de tablespaces...................................................... 33
Quadro 3.5 Comando para a localizao dos arquivos de dados do tablespace ............ 37
Quadro 3.6 Comando para iniciar o banco de dados (modo MOUNT)......................... 37
Quadro 3.7 Comando para atualizar as referncias aos arquivos de dados (ALTER
DATABASE).................................................................................................................... 37
Quadro 3.8 Comando para abrir o banco de dados........................................................ 37
Quadro 3.9 Comando de alterao da tabela para modo offline.................................... 38
Quadro 3.10 - Comando para atualizar as referncias aos arquivos de dados (ALTER
TABLESPACE)................................................................................................................ 38
Quadro 3.11 Parmetros de inicializao relacionados ao OMF................................... 47
Quadro 3.12 Comando para criao de grupos de disco de redundncia normal .......... 48
Quadro 3.13 Comando CREATE TABLESPACE (referncia ao arquivo de dados /
ambiente ASM)................................................................................................................. 49
Quadro 3.14 Comando para a seleo dos ocupantes do tablespace SYSAUX ............ 49
Quadro 3.15 Consulta para seleo do procedure para movimentao dos componentes
do tablespace SYSAUX.................................................................................................... 50
Quadro 3.16 Comando para movimentao dos componentes do tablespace SYSAUX
........................................................................................................................................... 50
Quadro 3.17 Comando para habilitar o movimento de linhas de uma tabela ................ 51
Quadro 3.18 Configurao do Segment Advisor........................................................... 52
Quadro 3.19 Consulta s recomendaes do Segment Advisor .................................... 53
Quadro 3.20 Seleo da ao sugerida pelo Segment Advisor...................................... 53
Quadro 3.21 Comando para monitorar a utilizao do ndice ....................................... 54
Quadro 3.23 Consulta viso V$OBJECT_USAGE sobre a utilizao do ndice ....... 54
Quadro 3.24 Comando para a reconstruo de ndice ................................................... 55
Quadro 3.25 Comando para listagem de transaes suspensas ..................................... 56
Quadro 3.26 Vises utilizadas no monitoramento do tablespace de undo. ................... 61
Quadro 3.27 Clculo para estimar o tamanho do tablespace de undo ........................... 62
Quadro 4.1 Comando para gerao do plano de consulta.............................................. 66
Quadro 4.2 Seleo do plano de execuo..................................................................... 67
Quadro 4.3 Consultas no shared pool que mais utilizam E/S ........................................ 68
Quadro 4.4 Parmetros de memria............................................................................... 69
Quadro 4.5 Estimando o tamanho do shared pool ......................................................... 70
Quadro 4.6 Linhas encadeadas em uma tabela .............................................................. 71
1 Introduo
Sistemas computacionais tm se tornado extremamente crticos para o
mundo corporativo. Ocorre um aumento crescente da dependncia entre
negcios
os
sistemas
de
informao.
Muitas
novas
geraes
de
sobreviver no
mercado e
se manterem
competitivas,
as
Companhia
2005
2004
Oracle
6,721.1
48.6
6,234.1
48.9
IBM
3,040.7
22.0
2,860.4
22.4
Microsoft
2,073.2
15.0
1,777.9
13.9
Teradata
440.7
3.2
412.1
3.2
Sybase
407.0
2.9
382.8
3.0
Outros
1,134.7
8.2
1,090.4
8.5
Total
13,817.4
100.0
12,757.8
100.0
10
1.1 Objetivo
Esse trabalho tem como objetivo auxiliar os Administradores de Banco de
Dados (ABD) ou DBA (da sigla em Ingls Database Administrator) na tarefa de
administrao do SGBD Oracle 10g.
Inicialmente ser feito um estudo da arquitetura Oracle e posteriormente
sero abordados diversos assuntos relacionados administrao do Oracle 10g
como boas prticas de administrao que visam aumentar a estabilidade e
confiabilidade do sistema, tcnicas utilizadas para se maximizar o desempenho
do sistema, entre outros. Ao longo do trabalho, a ferramenta Oracle Enterprise
Manager Database Control [OEMDBC] ser utilizada para a execuo de boa
parte das tarefas administrativas.
11
12
2.1.2 Blocos
Os blocos so as menores unidades de armazenamento de um banco de
dados no Oracle 10g. O tamanho medido em bytes e especificado no
parmetro de inicializao DB_BLOCK_SIZE. O tamanho do bloco deve ser um
mltiplo do tamanho de bloco do sistema operacional para que as operaes de
E/S ocorram de modo eficiente.
2.1.3 Extenses
A extenso est um nvel acima na hierarquia dos agrupamentos lgicos
no banco de dados no Oracle10g. A extenso consiste de um ou mais blocos
alocados a um tipo de objeto especfico (tabela ou ndice).
13
2.1.4 Segmentos
Os segmentos consistem em um conjunto de extenses. O segmento
contm todos os dados de um agrupamento lgico dentro de um tablespace. Por
exemplo, para cada tabela o Oracle aloca uma ou mais extenses para formar
um segmento de dados da tabela, para cada ndice ocorre essa mesma
alocao das extenses para formar o segmento de ndice.
Existem no Oracle quatro tipos de segmentos:
Segmento de dados
Um nico segmento de dados agrupa todos os dados de
uma tabela no banco, exceto nos casos de tabelas particionadas
ou clustetizadas, onde cada partio armazenada em um
segmento;
Segmento de ndice
Para todos os ndices no particionados tem-se tambm
segmentos de ndice que armazenam seus dados;
Segmento temporrio
Durante o processamento das queries do usurio o Oracle
precisa frequentemente de um espao de armazenamento
temporrio para a execuo de uma operao SQL [SQL]
(Structured Query Language). Esse espao em disco alocado
automaticamente e chamado de segmento temporrio.
Operaes de ordenao, por exemplo, normalmente fazem
uso desse espao;
Segmento de rollback
Os segmentos de rollback ainda existem no Oracle 10g
apenas no tablespace SYSTEM. Nas verses anteriores do Oracle
esse segmento era criado para salvar valores anteriores de uma
operao de manipulao de dados para o caso da necessidade
da transao ter de ser revertida, os segmentos tambm eram
utilizados durante a operao de recuperao do banco.
14
2.2.1 Tabelas
A
tabela
unidade
mais
bsica
de
armazenamento.
Tabelas relacionais
A tabela relacional a mais comum. Suas linhas contm
uma ou mais colunas de tipos e comprimentos diversos. As linhas
no so organizadas em ordem, a ordenao feita por heap;
Tabelas de objeto
As tabelas de objeto so uma estratgia OO (object-oriented
orientada a objeto) para banco de dados.
As suas linhas contm objetos ou instanciaes de tipos
definidos pelo usurio. As linhas de uma tabela de objetos podem
ser recuperadas pelo seu OID (object id identificador do objeto);
Tabelas clusterizadas
As tabelas clusterizadas podem ser uma estratgia para
maximizar o desempenho de consultas que fazem referncia a
duas ou mais tabelas que frequentemente so acessadas juntas.
Tome-se
como
exemplo
duas
tabelas:
empregados
custo
plano
de
execuo
de
SQL.
Tabelas particionadas
A melhor prtica a ser adotada em tabelas grandes (maiores
que 2GB) o particionamento. Uma tabela pode ser particionada
ou subparticionada em n partes menores. Particionar uma tabela
16
2.2.2 ndices
Os ndices so utilizados na otimizao de consultas. Durante a insero
de dados em uma tabela, as linhas podem ser inseridas em quaisquer blocos.
Desse modo, quando ocorre um busca por uma linha especfica, a tabela inteira
precisa ser lida.
Assim, os ndices so criados com intuito de eliminar essa varredura
completa na tabela na inteno de se encontrar a linha.
O que ocorre aps a criao do ndice que quando uma consulta
submetida, o ndice para tabela primeiramente lido e o identificador da linha
retornado. Por meio desse identificador, chamado de rowid, a linha certa
encontrada na tabela.
A criao de um ndice tem impacto direto nas operaes de INSERT e
DELETE nas tabelas, pois cada criao ou deleo de uma linha
acompanhada de uma mesma operao na estrutura de ndices. Isso acarreta
17
um overhead maior nessas operaes e, portanto a criao dos ndices deve ser
feita de maneira ordenada.
Existem vrios tipos de ndice, cada qual adequado a um tipo particular
de tabela ou aplicao:
ndices nicos
a forma mais comum de ndice B*Tree1. Freqentemente ele
utilizado para impor restrio de chave primria de uma tabela;
ndices no-nicos
Utilizado para acelerar o acesso tabela sem impor restrio
de unicidade. Esse tipo de ndice criado por padro se nenhuma
outra palavra chave for utilizada em sua construo;
ndices de chave inversa
Nesse tipo de ndice, todos os bytes em cada valor de chave da
coluna
so
invertidos.
objetivo
dessa
operao
visa
2.2.3 Seqncias
Uma seqncia utilizada para atribuir nmeros seqenciais, que so
garantidamente nicos, caso a seqncia no seja redefinida.
Seqncias
podem
gerar
nmeros,
com
intervalos
entre
eles
Um index B*Tree consiste de nveis de blocos. Com cada nvel contendo ponteiros para o nvel mais baixo e
18
2.2.4 Vises
As vises so uma forma de se apresentar os dados de uma tabela ou de
uma juno delas. As consultas subjacentes, necessrias para a apresentao
dos dados so transparentes para os usurios dessa viso.
Em uma viso regular, onde no ocorre o armazenamento de dados, essa
consulta subjacente executada toda vez que a viso acessada. Uma
extenso viso regular a viso materializada, na qual ocorre o
armazenamento dos dados. Esse tipo de viso traz o benefcio de um menor
tempo de resposta para consulta sobre os seus dados, j que a consulta
subjacente no executada durante o acesso a viso.
O Oracle armazena em tabelas do sistema dados sobre a prpria base de
dados. Exemplos dessas informaes incluem os nomes de todas as tabelas na
base de dados, as colunas, os nomes, os tipos dessas tabelas, nmero de linhas
que a tabela contm informaes relacionadas segurana, que informam, por
exemplo, que usurios tm acesso a que elementos da tabela.
Esses dados relacionados prpria base de dados so chamados de
metadados.
Com intuito de facilitar o acesso a esses metadados, o Oracle forma
vises dessas tabelas. Uma base de dados do Oracle 10g contm dois tipos de
vises que com esses metadados:
Vises de dicionrio de dados
Essas vises possuem nomes que comeam com DBA_, ALL_
e USER_.
As diferenas entre elas podem ser ilustradas utilizando a viso
do dicionrio de dados da DBA_TABLES (Quadro 2.1). Ela mostra
informaes de todas as tabelas da base de dados. A ALL_TABLES
mostra apenas as tabelas que um usurio em particular do banco
possui ou tem acesso. A USER_TABLES mostra somente os objetos
que o usurio possui.
19
Viso
Descrio
DBA_TABLES
DBA_USERS
DBA_VIEWS
DBA_TAB_COLUMNS
Viso
Descrio
V$DATABASE
V$OPTION
V$SQL
2.2.5 Usurios/Esquemas
O usurio a pessoa que tem acesso ao SGBD Oracle. Quando um
usurio criado, ele no possui nenhum objeto. Entretanto, assim que os
usurios criem os objetos eles faro parte de um esquema que ter o mesmo
nome do usurio.
20
21
22
Esse comando gera um arquivo texto contendo um script SQL que pode
ser utilizado para recriar o arquivo de controle. Esse arquivo criado no diretrio
especificado no parmetro do arquivo de inicializao USER_DUMP_TEST.
Esse valor poder ser obtido pela instruo:
Quadro 2.5 Exibio do valor do parmetro USER_DUMP_TEST
24
2.4
Estruturas de memria
2.4.1 System Global Area
2.5
26
27
PMON tambm
verifica
processo
despachante
processo
recoverer
(RECO)
usado
para
resolver
28
29
ser atribudo para cada usurio, sesses desse usurio s podero utilizar esse
tablespace. Isso pode causar um problema de desempenho pela disputa de E/S
como mencionado anteriormente.
Por essa razo, o Oracle d suporte ao recurso de grupos de espao de
tabela temporrio, que significam na verdade, uma lista de espaos de tabela.
A grande vantagem na utilizao desse recurso vem do fato de se poder
ter mltiplas sesses de um usurio utilizando diferentes tablespaces
temporrios em um mesmo grupo para a realizao de suas operaes de
classificao. Isso particularmente bastante til quando podemos alocar discos
fsicos distintos para cada tablespace, reduzindo drasticamente a disputa de E/S
naqueles segmentos.
O grupo deve conter pelo menos um tablespace temporrio. Abaixo
ilustrada a criao do grupo temporrio grupotmp a partir de trs tablespaces
(tmp1, tmp2, tmp3) previamente criados.
Quadro 3.1 Criao de grupos temporrios
31
32
33
MANUAL
Essa opo significa usar free lists. Elas so listas de blocos de
dados que contm espaos disponveis. Essa opo chamada de
manual porque preciso que seja especificado manualmente alguns
parmetros para a criao dos objetos no tablespace (PCTUSED,
FREELISTS e FREELISTS GROUPS) ; e
AUTO
O gerenciamento automtico mais eficiente. Ele elimina a
necessidade de se especificar parmetros na criao de objetos.
O gerenciamento automtico utiliza bitmaps para gerenciar os
espaos livres nos segmentos. Neste caso, utilizado um mapa que
informa o status de cada bloco dentro do segmento.
34
35
ALTER DATABASE
1. Localizar os arquivos de dados atravs das vises (V$DATAFILE e
V$TABLESPACE)
36
select d.name
from v$datafile d join v$tablespace t using (ts#)
where t.name = EXAMPLE;
startup mount;
ALTER TABLESPACE
sempre prefervel que se utilize esse comando ao mover arquivos de
dados de tablespaces diferentes dos acima descritos. A razo para isso que o
banco de dados, exceto pelo tablespace que est sendo modificado, continua
disponvel durante toda a operao.
37
38
39
Blocos
Como dito, os blocos so as menores unidades de armazenamento do
Oracle. O formato do bloco apresentado abaixo:
40
41
Extenses
A extenso o prximo nvel de alocao de espao. A extenso consiste
de um conjunto de blocos.
No momento da criao de uma tabela, uma extenso inicial criada.
Posteriormente, se necessrio, extenses incrementais vo sendo alocadas.
Essas extenses incrementais podem ter ou no o mesmo tamanho da
extenso inicial.
Essa diferena definida no momento da criao do tablespace atributo
UNIFORM.
Quando essa alocao das extenses no uniforme, ela pode ser
automaticamente dimensionada pelo Oracle (AUTOALLOCATE). O Oracle utiliza
um algoritmo de alocao de espao que visa diminuir a fragmentao do
tablespace.
Quando a autoalocao do espao utilizada, os parmetros de
armazenamento (INITIAL, NEXT, PCTINCREASE e MINEXTENTS) so
utilizados apenas como parmetros para o algoritmo interno do Oracle.
42
Segmentos
As extenses descritas acima so alocadas para um nico segmento que
por sua vez est contido dentro de um nico tablespace.
O segmento representa um s tipo de objeto no banco de dados, seja ele
uma tabela, uma partio, um cluster, um ndice, ou um segmento temporrio.
O modo de como o espao dentro do segmento gerenciado depende de
como o tablespace que contm o segmento foi criado. Se o tablespace for
gerenciado por dicionrio, o Oracle utiliza freelists para o gerenciamento do
espao. Caso o tablespace seja gerenciado localmente, h duas maneiras de se
fazer esse gerenciamento: freelists ou mapa de bits. fortemente recomendado
pela Oracle que esse espao seja gerenciado por mapas de bits por questes de
desempenho, pois permitido um maior nmero de acessos concorrentes aos
mapas de bits em comparao com as freelists.
Caso o gerenciamento do espao seja realizado pelos mapas de bits, as
instrues PCTUSED, FREELIST e FREELIS GROUP declaradas no momento
da criao de uma tabela ou ndice sero ignoradas.
vises,
tpico
abordado
no
captulo
anterior,
so
DBA_TABLESPACES
Esta viso contm informaes sobre os espaos de tabela. Ela possui
uma linha para cada tablespace seja nativo ou conectado atravs de outro
banco de dados, sua descrio mostrada na figura 3.7.
43
DBA_SEGMENTS
Nesta viso esto representados os segmentos de dados. De modo
semelhante viso DBA_TABLESPACES, apresenta uma linha para cada
segmento de dados. Esta viso bastante til para se obter informaes sobre o
dono do objeto e o tablespace onde ele est armazenado. Sua descrio
mostrada na figura 3.8.
44
DBA_FREE_SPACE
Esta viso, descrita na figura 3.9, est dividida pelo nmero de arquivo de
dados dentro do tablespace. Uma consulta til sobre esta viso seria para se
analisar a quantidade de bytes livres em cada tablespace.
DBA_TRESHHOLDS
Esta viso apresenta uma lista das diferentes mtricas que do uma
estimativa da sade do banco de dados e especifica uma condio sob a qual
um alerta ser emitido se a mtrica alcanar o limiar ou exceder um valor
especificado.
A manuteno dos valores dessa viso, em geral, feita utilizando a
ferramenta EM, porm o Oracle disponibiliza um conjunto de blocos PL/SQL
(DBMS_SERVER_ALERT) para configurar esses valores sem o auxlio da
interface. A configurao e obteno desses valores podem ser obtidos atravs
das funes SET_THRESHOLD e GET_THRESHOLD respectivamente.
As mensagens de alerta podem ser lidas atravs dos pacotes DBMS_AQ
e DBMS_AQDM ou o DBA pode configurar o banco para que essas mensagens
sejam automaticamente enviadas para ele por e-mail.
45
46
Parmetro de Inicializao
Descrio
DB_CREATE_FILE_DEST
DB_CREATE_ONLINE_LOG_DEST_n
DB_RECECOVERY_FILE_DEST
47
48
tbls1
DATAFILE
+disk_group_1/user_data_1
questes
de
desempenho
de
E/S,
monitoramento
49
coluna
MOVE_PROCEDURE
da
mesma
viso
EXECUTE nome_da_procedure(tablespace_destino)
50
51
declare
name varchar2(100);
descr varchar2(500);
obj_id number;
begin
name := ;
descr := Check RH.EMPREGADO;
dbms_advisor.create_task(Segment Advisor, :task_id, name,
descry, NULL);
dbms_advisor.create_object(name,
TABLE,
RH,
EMPREGADO,
NULL, NULL, obj_id);
dbms_advisor.set_task_parameter(name,
RECOMMEND_ALL,
TRUE);
dbms_advisor.execute_task(name);
end;
parmetros
passados
para
procedimento
52
SQL>
more_info
select
owner,
task_id,
task_name,
type,
message,
from DBA_ADVISOR_FINDINGS
where task_id = 6;
3.3.7
Uso de ndices
53
54
55
Isso significa dizer que a operao que no tenha espao suficiente ser
suspensa por 3600 segundos (1 hora) para que a condio de falta de espao
seja reparada. Caso isso no acontea, a transao ir falhar.
Como exemplo, ser analisada a cpia de uma tabela de um tablespace
para outro. No caso a seguir, as linhas da tabela EMPREGADO, que contm os
dados dos funcionrios da filial, esto sendo inseridas em outra tabela que
contm informaes sobre todos os funcionrios da organizao.
*
ERROR at line 1
ORA-01653: unable to extend table RH.EMPREGADOS_ORGANIZACAO by X
in tablespace Y
56
desse
trabalho
em
categorias
atravs
da
procedure
CREATE_JOB_CLASS.
57
Rollback
Toda transao no Oracle pode ser revertida. Para que isso ocorra
quando uma operao de manipulao de dados submetida, os valores
antigos alterados por esta so armazenados no tablespace de undo.
Quando a transao precisa ser revertida, o Oracle utiliza os registros de
undo correspondentes no tablespace para desfazer todas as operaes contidas
pertencentes transao e, por fim, libera os blocos nas linhas afetadas.
Consistncia de Leitura
Fornecer consistncia de leitura significa dizer que um usurio que est
lendo dados de uma tabela que est sendo modificada por outro usurio, no
ver essa modificao at que o segundo confirme (COMMIT) sua transao.
Os segmentos de undo so, portanto, utilizados para reconstruir os blocos
de dados a uma verso de leitura consistente.
A execuo dessa operao pode levantar erros do tipo snapshot too old
devido ao fato de no haver mais espao para o armazenamento dos segmentos
na tabela de undo.
58
Operaes de Flashback
Algumas operaes de flashback como: flashback table - que restaura
uma tabela de acordo com um ponto do tempo no passado, flashback query que permite a visualizao de uma coluna em um perodo do passado e o
pacote DBMS_FLASHBACK utilizam dados do tablespace de undo.
59
Viso
Descrio
Todos os segmentos de undo no banco de dados incluindo
DBA_UNDO_EXTENTS seus tamanhos, extenses, tablespaces em que residem.
V$UNDO_STAT
V$ROLLSTAT
V$TRANSACTION
61
Mtodo manual
O DBA pode estimar o tamanho do espao de tabela de undo utilizando a
seguinte frmula:
Quadro 3.27 Clculo para estimar o tamanho do tablespace de undo
Undo Advisor
O undo advisor um recurso que automatiza a parte do ajuste do espao
para o tablespace de undo. Ele pode ser utilizado por meio da interface do EM
ou atravs dos pacotes PL/SQL de forma semelhante ao Segment Advisor
discutido na seo 3.3.6. Abaixo, nas figuras 3.12 e 3.13 ilustramos algumas
etapas do gerenciamento do undo advisor na ferramenta EM.
62
63
4.1
Ajuste de SQL
64
4.1.2 Clusters
Quando duas tabelas so frequentemente consultadas ao mesmo tempo,
o uso de cluster pode ser a melhor alternativa para se melhorar o desempenho.
Os clusters armazenam linhas a partir de mltiplas tabelas nos mesmos blocos
de dados fsicos, com base na chave do cluster.
Um cluster de hash armazena uma linha em um local especfico com
base no seu valor na coluna da chave de cluster. Quando uma linha vai ser
65
inserida, o valor da sua chave utilizado para determinar em qual bloco ele deve
ser armazenado. Isso facilita a resoluo das consultas, devido ao fato da
anlise dessa chave levar ao bloco que precisa ser recuperado.
Os clusters de hash so bastante teis para se melhorar o desempenho
das consultas por equivalncia - consultas nas quais o valor de uma coluna
comparado com um valor exato.
explain plan
for
select contato_id from contato
where nome like %M;
O comando, portanto, informa ao banco que ele deve explicar o seu plano
de execuo para a consulta. Opcionalmente, pode-se rotular esse plano de
explicao na tabela PLAN_TABLE atravs da clusula set statement_ID.
A tabela de plano deve estar disponvel para o usurio que deseja
executar este comando. Durante a instalao, o Oracle cria o script necessrio
para a criao da tabela o arquivo o utlxplan.sql.
A consulta tabela PLAN_TABLE deve ser realizada atravs do
procedimento DBMS_XPLAN.
66
4.2
67
(todos
os
caches
adicionados).
Os
outros
parmetros
Parmetro
Descrio
SGA_MAX_SIZE
SHARED_POOL_SIZE
DB_BLOCK_SIZE
DB_CACHE_SIZE
DB_nK_BLOCK_SIZE
69
100
999
c1
c2
c3
c4
c5
c6
c7
heading
heading
heading
heading
heading
heading
heading
'Pool |Size(M)'
'Size|Factor'
'Est|LC(M) '
'Est LC|Mem. Obj.'
'Est|Time|Saved|(sec)'
'Est|Parse|Saved|Factor'
'Est|Object Hits'
format 999,999,999
SELECT
shared_pool_size_for_estimate
shared_pool_size_factor
estd_lc_size
estd_lc_memory_objects
estd_lc_time_saved
estd_lc_time_saved_factor
estd_lc_memory_object_hits
FROM
v$shared_pool_advice;
Pool
Size
Size(M)
Factor
---------- ---------48
.5
64
.6667
80
.8333
96
1
112
1.1667
128
1.3333
144
1.5
160
1.6667
176
1.8333
192
2
c1,
c2,
c3,
c4,
c5,
c6,
c7
Est
Est LC
Saved
Saved
Est
LC(M)
Mem. Obj.
(sec)
Factor Object Hits
---------- ---------- ---------- ---------- ----------48
63
78
93
100
100
100
100
100
100
20839
28140
35447
43028
46755
46755
46755
46755
46755
46755
1459645
1459645
1459645
1459645
1459646
1459646
1459646
1459646
1459646
1459646
1
1
1
1
1
1
1
1
1
1
135,756,032
135,756,101
135,756,149
135,756,253
135,756,842
135,756,842
135,756,842
135,756,842
135,756,842
135,756,842
70
4.3
analyse
CHAINED_ROWS;
table
nome_da_tabela
list
chained
rows
into
71
4.3.2
72
4.4
73
5 Oracle Grid
A idia central da computao em grade (grid computing) pensar a
computao como uma utilidade, em outras palavras, para um usurio,
consumidor de dados de uma aplicao, no deve interessar onde esses dados
esto ou de que forma eles so recuperados ou processados, o que importa
realmente que ele possa requisit-los quantas vezes for necessrio.
Do ponto de vista computacional, o conceito de grid envolve alocao de
recursos, compartilhamento de informaes e alta disponibilidade. A alocao
de recursos se refere disponibilidade de recursos. Ela garante, por exemplo,
que todas as requisies dos usurios esto conseguindo obter recursos
necessrios para o processamento. O conceito de compartilhamento de
informaes est relacionado com a distribuio da informao. Este
compartilhamento garante que as informaes que os usurios precisam estaro
disponveis quando e onde for preciso. Por fim, a alta disponibilidade garante
que todo esse poder computacional est sempre disponvel para requisies.
O Oracle 10g oferece um conjunto de ferramentas que do suporte a grid
computing. So elas: Oracle Application Server 10g OAS [OAS], Oracle
Database 10g, Oracle Collaboration Sute 10g [OCS] e o Oracle Enterprise
Manager.
A infra-estrutura que d suporte a grid computing construda baseada
em dois conceitos:
Implementao de um a partir de muitos Construo de uma
entidade lgica a partir de um cluster de mquinas. O objetivo dessa
arquitetura a distribuio do trabalho entre as mquinas do cluster,
proporcionando ao grid uma maior disponibilidade, escalabilidade e
desempenho. Nesse contexto fazem parte as ferramentas Oracle
Application Server 10g e o Oracle Database 10g.
74
softwares
nesses
servidores
uma
atividade
75
User Provisioning
O Application Server oferece uma ferramenta de gerenciamento
de usurios (Security Management Console), utilizada na criao
de usurios, papis e privilgios, e de certificados (Certification
Authority), utilizada para certificar usurios. O controle dos
usurios nas aplicaes realizado atravs de um login nico
(Single Sign On).
Gerenciamento da carga de trabalho
O Application Server possui o Workload Management vem
integrado ao e isso possibilita ao DBA o gerenciamento da carga
de trabalho fornecendo uma maior escalabilidade e disponibilidade.
76
NAME
---------------shared_pool_size
VALUE
----------65614720
77
Descrio
INSTANCE_NUMBER
INSTANCE_NAME
CLUSTER_DATABASE
CLUSTER_DATABASE_INSTANCES
ACTIVE_INSTANCE_COUNT
MAX_COMMIT_PROPAGATION_DELAY
78
80
81
82
A aba alvos mostra todos os alvos monitorados pelo Grid Control. A partir
dessa tela o DBA pode tomar aes sobre cada alvo especfico.
83
84
85
6 Concluso
Este trabalho realizou um estudo sobre os principais tpicos relacionados
a administrao do SGBD Oracle Database 10g. Inicialmente foram discutidos
os principais conceitos relacionados arquitetura Oracle, que serviu de base
terica durante o restante do trabalho.
Foram vistas tcnicas de armazenamento e de monitoramento do uso de
espao que impactam diretamente na estabilidade e desempenho do SGBD.
Para exemplificar tarefas relacionadas ao gerenciamento do SGBD foi utilizada a
ferramenta de gerenciamento Enterprise Manager. Foram discutidas tambm
algumas das principais solues de ajuste do Oracle 10g de modo a maximizar a
performance do mesmo.
Por fim, foi estudado o Oracle Grid, sua arquitetura e ferramentas de
gerenciamento. Foram vistos tpicos como Real Application Clusters, estratgia
que assegura a alta disponibilidade e eficincia do sistema.
Como trabalho futuro, a sugesto a realizao de testes de performance
de modo demonstrar o ganho de desempenho com as tcnicas apresentadas
nesse trabalho e tambm
Oracle Grid.
86
7 Referncias
[ASMM] Automatic Shared Memory Management. Endereo:
http://www.oracle.com/technology/obe/obe10gdb/manage/memmgmt/memmgmt.
htm
[BTREE] B*Tree. Endereo:
http://www.orafaq.com/glossary/faqglosb.htm
[DAWES05] DAWES, Chip. BRYLA, Bob. OCA: Oracle 10g Administration Study
Guide, 2005.
[GARTNER] Gartner Dataquest. Endereo:
http://www.gartner.com/it/products/research/dataquest.jsp
[GPO] Grupo de Profissionais Oracle. Endereo:
http://www.profissionaloracle.com.br/
[LONEY05] LONEY, Kevin. Oracle 10g. O manual do DBA, 2005.
[OADF] Oracle Application Development Framework. Endereo:
http://www.oracle.com/technology/products/adf/index.html
[OAS] Oracle Application Server. Endereo:
http://www.oracle.com/appserver/index.html
[OASWC] Oracle Application Server Web Cache 10g. Endereo:
http://www.oracle.com/technology/products/ias/web_cache/index.html
[OCS] Oracle Collaboration Suite. Endereo:
http://download-east.oracle.com/docs/cd/B19306_01/em.102/b16241/
Collaboration_Suite_Management.htm
[OC4J] Oracle Application Server Containers for J2EE (OC4J). Endereo:
http://download-east.oracle.com/docs/cd/B10467_16/tour/j2ee_oc4j.htm
[OEMDBC] Oracle Enterprise Manager Database Control Endereo:
http://www.oracle.com/enterprise_manager/index.html
[OEMGC] Oracle Enterprise Manager 10g Grid Control. Endereo:
http://www.oracle.com/technology/products/oem/index.html
[OEMSG] Oracle Enterprise Manager 10g Grid Control. Student Guide, 2005.
87
88