FACULDADE DE ADMINISTRAÇÃO E NEGÓCIOS DE SERGIPE - FANESE NÚCLEO DE PÓS-GRADUAÇÃO E EXTENSÃO NPGE



Documentos relacionados
A instância Oracle é composta de :

ORACLE ARQUITETURA FÍSICA

Capítulo 11: Implementação de Sistemas de Arquivos. Operating System Concepts 8th Edition

Administração de Banco de Dados

Sistemas de Arquivos

Banco de Dados Oracle. Faculdade Pernambucana - FAPE

Backup e Restauração Banco de Dados. Evandro Deliberal

Bauru SP Brasil. (FATEC) Bauru SP Brasil.

Oracle Database 10g: Workshop de Administração II Release 2: Nova Versão

Oracle Database 11g: Workshop de Administração II Novo

SQL Introdução ao Oracle

Sistemas de Arquivos. (Aula 23)

Módulo 5. Arquitetura do SQL Server. Estruturas de Armazenamento. Armazenamento físico e lógico. Páginas

Capítulo 11 Sistemas de Arquivos

Administração de Banco de Dados

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Caracterização de Sistemas Distribuídos

Banco de Dados II. Administração do SGBD Oracle. Tablespaces, usuários, privilégios, papéis e perfis. Gustavo Dibbern Piva

Sistemas de Gerência de Bancos de Dados. Módulo 1 - Armazenamento

Planejamento Parte Visão Geral do Ajuste de Desempenho do Banco de Dados 02 - Arquivos de Alert e Trace do Oracle

BANCO DE DADOS 2 TRANSAÇÃO

Administração de Banco de Dados

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ACESSO, ATRIBUTOS E OPERAÇÕES COM ARQUIVOS PROFESSOR CARLOS MUNIZ

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Administração de Banco de Dados

slide Pearson Prentice Hall. Todos os direitos reservados.

01 - Visão Geral do Ajuste de Desempenho do Banco de Dados 02 - Arquivos de Alert e Trace do Oracle

Sistemas Operacionais. BC Sistemas Operacionais

Cada instância exibe uma instalação separada, por exemplo, produção rodando sql server 2008 e testes rodando sql server 2012.

*O RDBMS Oracle é um sistema de gerenciamento de banco de dados relacional.

Oracle Database 12c R2: Administração - Workshop Ed 3

Sistemas Operacionais. Sistema de Arquivos. Edeyson Andrade Gomes.

ORACLE IN-MEMORY 12c. Vantagens e Cenários de Utilização do Oracle In-Memory 12c. Willian Frasson

Spectrum Miner. Versão 8.0. Guia de administração para a integração do Portrait Dialogue

Conceitos de Sistemas de Banco de Dados INE 5323

Ambiente de tempo de Execução Cap. 7

Reindexação Automática em SGBDs Relacionais

Em nosso exemplo, o banco de dados XE está trabalhando no modo NOARCHIVELOG, e para verificar isso, basta executar as seguintes tarefas:

NoSQL Apache Cassandra para DBAs. Conceitos básicos que todo DBA deve conhecer sobre Apache Cassandra.

Banco de Dados II. Transações (Oracle) Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.

Oracle oferece ferramentas para consultas ocasional, geração de relátorios e analise de dados, incluindo o OLAP. O Oracle Application Server

Oracle Database 12c: Workshop de Administração

consistent gets é o número de vezes que uma leitura consistente foi requisitada para um bloco do buffer cache.

Introdução a B anco de Dados. INE5206 Introdução à Informática INE/CTC/UFSC Prof. Roberto Willrich

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

INTRODUÇÃO A SISTEMAS DE ARQUIVO E GERENCIA DE MEMÓRIA

Diretórios do Sistema. Treinamento OTRS Help Desk

Banco de Dados. SGBDs. Professor: Charles Leite

Administração de Banco de Dados

Backup e Restauração Banco de Dados. Evandro Deliberal

SSC0640 Sistemas Operacionais I

Capítulo 8: Memória Principal. Operating System Concepts 8 th Edition

ANEXO TÉCNICO REQUERIMENTOS DE INFRAESTRUTURA BEMATECH GEMCO MATRIZ

Armazenamento Secundário. Endereços no disco. Organização da informação no disco. Organização da informação no disco

Aula 03. Evandro Deliberal

Organização de Arquivos

Gerência de memória III

Gerência de memória II

ARMAZENAMENTO SECUNDÁRIO, PARTE 1 Professora Rosane Minghim

ADMINISTRAÇÃO DE BANCOS DE DADOS DO MICROSOFT SQL SERVER

Estruturas de Sistemas Operacionais

Fundamentos de Sistemas Operacionais de Arquitetura Aberta. CST em Redes de Computadores

Sistemas Operacionais II

Gerenciamento de Memória

Sistemas Operacionais

Tabelas. Banco de Dados I MySQL

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Aula 2 Arquitetura Oracle

Notas sobre a Versão do Controlador de arquivos para HP 3PAR StoreServ

Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos

Estados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos

Aula 16. Tópicos Especiais II Banco de Dados. Prof. Dr. Dilermando Piva Jr.

SSC0640 Sistemas Operacionais I

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

Professor Leonardo Larback

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

slide Pearson Prentice Hall. Todos os direitos reservados.

Servidor de Armazenamento em Nuvem

Gerência do Sistema de Arquivos. Adão de Melo Neto

SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS - SGBD

Apresentação. Objetivos. Dados Principais

Gerência do Sistema de Arquivos. Adão de Melo Neto

Sistemas Operacionais II. Linux 2: Threads, Escalonamento, Gerenciamento de Memória e Sistemas de Arquivos

Segmentação com paginação Intel 386. Esquema de tradução de endereço Intel 386

Fundamentos da Informática Aula 03 - Sistemas operacionais: Software em segundo plano Exercícios Professor: Danilo Giacobo

Sistemas da Informação. Banco de Dados I. Edson Thizon

Sistemas de Computação. Gerenciamento de memória

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Sumário. Capítulo 2 Conceitos Importantes Tópicos Relevantes Instance Base de Dados Conclusão... 37

ACH2024. Aula 22 Hashing Externo - Hashing estático e dinâmico (extensível) Prof Helton Hideraldo Bíscaro

Programação de Sistemas

Gerenciador de ambientes para testes manuais

Unidade II FUNDAMENTOS DE SISTEMAS OPERACIONAIS. Prof. Victor Halla

- Campus Salto. Disciplina: Sistemas de Arquivos Docente: Fernando Santorsula

Executa em qualquer plataforma que possua o Java (JDK) da Oracle

Implementação de Diretórios (1)

Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade

Transcrição:

1 FACULDADE DE ADMINISTRAÇÃO E NEGÓCIOS DE SERGIPE - FANESE NÚCLEO DE PÓS-GRADUAÇÃO E EXTENSÃO NPGE CURSO DE PÓS-GRADUAÇÃO LATO SENSU ESPECIALIZAÇÃO EM BANCO DE DADOS ESTRUTURA DE MEMÓRIA E DE ARMAZENAMENTO DO ORACLE 11g LUCIELMO DE AQUINO SANTOS ARACAJU SE 2013

2 LUCIELMO DE AQUINO SANTOS ESTRUTURA DE MEMÓRIA E DE ARMAZENAMENTO DO ORACLE 11g Trabalho de Conclusão da disciplina de Preparação para Certificação (OCA), do curso de Especialização em Bancos de Dados FANESE, submetido como avaliação de conclusão do referido módulo. Orientação: Fábio Soares ARACAJU SE 2013

3 ESTRUTURA DE MEMÓRIA E DE ARMAZENAMENTO DO ORACLE 11g Lucielmo de Aquino Santos 1 Orientação: Fábio Soares² RESUMO O tema a ser abordado nesse artigo é a Estrutura de Memória e Armazenamento, o banco de dados a ser mencionado é o Oracle e a versão é a 11g. As informações sobre algumas estruturas e suas divisões, bem como alguns exemplos. PALAVRAS-CHAVE: Estrutura de memória; SGA, PGA, Armazenamento. ABSTRACT The topic to be addressed in this article is the Structure of Memory and Storage, the database is to be mentioned and the Oracle version is 11g. Information on some structures and its divisions, as well as some examples. KEYWORDS: Memory structure, SGA, PGA, Storage. 1.INTRODUÇÃO O Oracle aloca uma área de memória e executa os processos em segundo plano, sempre que uma instância é iniciada, dentre as informações que são armazenadas temos o código do programa, informações sobre cada sessão, mesmo que não esteja ativa no momento, informações sobre a execução do programa, por exemplo, o status de uma query, bloqueio de dados compartilhados entre processos, dados em cache, blocos de dados e registro de redo existentes no disco. As Estruturas de memórias no Oracle incluem SGA, PGA, UGA e área de software de código. Dentre as novidades de armazenamento, a Oracle vem incluindo diversas funcionalidades, em relação a segurança, desempenho, alta disponibilidade e baixa de custos. ¹ Pós-Graduando em Banco de Dados FANESE. E-mail: lucielmo@gmail.com ² Mestre em Informática. E-mail: fabsoasilva@gmail.com

4 2.SGA (SYSTEM AREA GLOBAL) A SGA é compartilhada por todos os servidores e processos, nela contem informações e dados de controle de uma instância de banco de dados Oracle. Ao iniciar uma instância no Oracle, a memória para uma SGA é alocada automaticamente e quando a instância é parada a memória é recuperada pelo sistema operacional, a SGA é específica para cada instância. Todos os processos de banco de dados que estejam rodando em segundo plano podem ler informações contidas na SGA da instância. A SGA possui informações gerais sobre o status do banco e da instância, bem como armazena dados do usuário e comunicações entre processos. Os grupos de memória utilizados para satisfazer uma classe de pedidos de atribuição de memória são conhecidos como componentes PIG. Os componentes PIG mais importantes são: 2.1.CACHE DE BUFFER DO BANCO DE DADOS Nesse local contém cópias dos blocos de dados lidos a partir de arquivos de dados. 2.2.REDO LOG BUFFER No redo contém informações sobre as alterações feitas no banco, dados necessários para reconstruir, ou refazer operações como insert, update, delete, create, alter ou drop. Redo Log são usadas para a recuperação de dados quando necessário. Os processos do banco de dados copiam as entradas para o buffer de redo log dentro da SGA, ocupando um espaço contínuo, sequencial. Logicamente, o processo escreve o redo log buffer para um arquivo. 2.3.SHARED POOL Na shared pool contém o cache de biblioteca (áreas comuns de SQL, áreas privadas, PL/SQL, procedimentos e estruturas de controle), cache de dicionário (coleção de tabelas e pontos de vista que contêm informações de referência sobre o banco, estruturas e usuários), cache de resultados (guarda os resultados de consultas SQL e PL/SQL), buffers de mensagens de execução paralela e estruturas de controle. 2.4.LARGE POOL Proporcionam grandes alocações de memória para memória de sessão para o servidor compartilhado e o Oracle XA interface (utilizado quando as transações interagem com mais de um banco de dados), processo de I / O (entrada e saída) do servidor, operações de backup e restore do banco de dados. É interessante observar que para evitar a sobrecarga de desempenho causada pela redução do cache compartilhado, o banco de dados Oracle pode utilizar a shared pool. Além disso, a memória para os processos do servidor de E / S, backup e restore e são alocados em buffers pequenos. 2.5.JAVA POOL

5 Usado para toda a sessão específica de código Java e dados dentro da JVM (Java Virtual Machine). Utilizada em diferentes formas, dependendo do modo em que a base de dados estiver executando. Java Pool Advisor provê informações sobre a memória cache da biblioteca que é usado para o Java, bem como prevê as mudanças que o tamanho do Java Pool pode afetar a taxa de análise. 2.6.STREAMS POOL Streams pool é exclusivamente utilizada pela Oracle Streams, essa área armazena uma fila de mensagens em buffer, disponibiliza memória para os processos de Stream. O valor inicial padrão é zero, e vai crescendo dinamicamente de acordo com o que o Oracle Streams necessita, porém pode ser configurado manualmente pelo administrador. 3.VISÃO GERAL DA PGA Program Global Area é um local da memória não compartilhada que contêm dados e informações de controle exclusivamente para uso por um processo de Oracle, é alocado quando um processo Oracle é iniciado. Para cada processo existe um PGA, contudo forma-se uma coleção que é conhecida como total PGA da instância, portanto quando o banco é inicializado o tamanho da instância é definido, não é definido nas PGAs individuais. A memória da PGA é dividida nas seguintes áreas: 3.1.USER GLOBAL AREA (UGA) A UGA controla os comandos SQL que a sessão está executando e processando e faz parte da SGA, quando em um ambiente compartilhado a UGA é movida para dentro da SGA e compartilhada para todos os processos, pois a infraestrutura da SGA permite que o Shared Pool, Large Pool, Streams Pool, Java Pool e o DB buffer Cache sejam alterados sem a necessidade de baixar a instância. A criação e gerencia de estruturas de memória são feitas através de parâmetros de inicialização, assim ocorre no banco de dados Oracle, para realizar tal gerenciamento é mais apropriado que o Oracle ajuste-os automaticamente, porém isso pode ser configurado manualmente utilizando os parâmetros MEMORY_TARGET (tamanho inicial de memória), MEMORY_MAX_TARGET (tamanho máximo que pode alcançar). 3.2.MEMÓRIA SESSÃO Essa memória armazena as variáveis da sessão, como informações do logon, entre outras informações relacionadas à sessão que foi criada. A memória de sessão é compartilhada para um servidor compartilhado.

6 3.3.PRIVATE SQL AREA No private SQL Area, estão contidas algumas informações do estado da execução de consultas, entre outras. Cada sessão que emite uma determinada instrução SQL terá sua private. Entretanto, se o usuário enviar a mesma instrução SQL ele provavelmente terá sua própria private que utiliza uma área de shared sql. A localização de um Private SQL Area depende do tipo de ligação estabelecida para a sessão, caso a sessão esteja conectada em um servidor dedicado fica em PGA, caso esteja conectado por meio de um servidor comum é mantido na PIG. Private SQL Area subdivide-se nos seguintes tópicos: 3.3.1.CURSORES E SQL AREAS Cursores são alças para específicas áreas privadas e são utilizados como um recurso chamado durante toda a execução do programa, os também conhecidos como cursores recursivos que são utilizados para algumas instruções SQL utilizam também o mesmo recurso que os cursores. A gestão de Private SQL Area é de responsabilidade do processo do usuário. O processo de alocar e desalocar irão depender da ferramenta e aplicação que estiver executando. É importante salientar que existe uma limitação quanto ao número que um processo de usuário pode alocar de Private SQL Area, existe um parâmetro de inicialização OPEN_CURSORES que por default vem setado com o valor 50. 3.3.2.COMPONENTES PRIVATE AREA SQL A private área sql de um cursor é dividida em duas áreas, onde os ciclos são diferentes: The persistent area: contem valores ligados a variáveis, somente libera quando o cursor está fechado. The runtime área: tempo de execução ainda contem as seguintes estruturas: o Informações sobre o status de execução de consulta; o Work Area SQL: são alocadas conforme necessário para uso intensivo de memórias em operações como ordenação. DML: onde a área de tempo de execução é liberada quando a instrução termina a execução, em consultas a liberação somente ocorre quando todas as linhas forem lidas ou a consulta for cancelada. 3.4.SQL WORK AREAS São alocados para suportar memória intensiva, em operações como os seguintes: Sort-based operators (order by, group-by, rollup, window function) Hash-join Bitmap merge

7 Bitmap create Por exemplo, um order by utiliza uma área de trabalho específica para efetuar o tipo de memória de um determinado conjunto de linhas conhecida por zona de classificação, bem como uma operação de hash-join utiliza outra área que pode ser chamada de área de hash, para construir uma tabela hash de sua entrada. Caso a quantidade de dados a ser processados pelas duas operações não se encaixarem em uma área o dado de entrada é dividido em pequenos pedaços, permitindo assim que alguns dados sejam processados na memória, e o restante seja derramado para o armazenamento temporário em disco. O tamanho de um Work Area pode ser controlado e ajustado, o banco de dados ajusta automaticamente quando o gerenciamento de memória PGA está ativado. 4.ARMAZENAMENTO NO ORACLE (ESTRUTURA LÓGICA E FÍSICA) O Oracle aloca logicamente em data blocks, extents, segments e tablespaces. Fisicamente o Oracle tem os data files. 4.1.DATA BLOCK Data block, conhecido também por Logical blocks, Oracle blocks ou Pages. Cada data block corresponde a um número específico de bytes fisicamente no disco, portanto eles são o maior nível de granularidade quando se fala em estrutura de armazenamento Oracle. O data block é composto por: Header (cabeçalho) No header estão às informações gerais de um data block, como tipo de segmento (dados ou índice) e endereço do bloco. Table directory (diretório de tabela) Guarda informações sobre a tabela, tendo linhas no bloco. Row directory (diretório de linha) As informações sobre as rows do block ficam aqui. É importante salientar que o Oracle trabalha da seguinte forma quanto ao espaço alocado pela row, este espaço não é recuperado quando a linha for excluída, exemplo, caso um bloco esteja vazio, mas tinha até 30 linhas, ele continuará alocando os bytes necessário no header para o row directory e esse espaço somente será reutilizado pelo Oracle quando novas linhas são inseridas no block. Overhead O header, table directory e row directory coletivamente são chamados de sobrecarga. Sobrecarga é fixado em tamanho e o overhead é variável.

8 Row data Contendo informações sobre dados de tabela ou índice. Free espace Usado para inclusão de linhas novas e atualização que necessitam de espaço, pode ser gerenciado automaticamente ou manualmente, é normal se utilizar do gerenciamento automático por seus benefícios oferecidos, tais como a facilidade de uso, a melhor utilização do espaço devido a variação de tamanhos e agilidade na execução a variações de acesso simultâneo. Para habilitar o gerenciamento automático basta especificar quando for criar uma tablespace, sendo assim, todos os segmentos criados posteriormente herdarão essa configuração. 4.2.EXTENTS O conjunto de blocos de dados gera uma extent, uma extent inicial de um segment é criada e alocada assim que uma tabela for criada no banco de dados, a extent é criada com um determinado número de blocos de dados, caso tais blocos sejam todos utilizados, o Oracle automaticamente aloca uma extent incremental para o segment. As extents poderão ser allocated ou deallocated, vejamos como isso acontece: o Allocated: dependerá da configuração da tablespace, por exemplo, caso seja gerenciada localmente, o Oracle fará a busca de espaço livre e atribui uma nova extent e em seguida procura o arquivo de dados que tenha um número necessário de blocos livres. o Deallocated: é recomendado utilizar o Segment Advisor que ajudará a perceber que um objeto tem espaço livre para recuperação com base no nível de fragmentação do espaço. Quando as extents são liberadas o Oracle modifica o bitmap no arquivo de dados (quando tablespace é gerenciado manualmente) ou atualiza o dicionário de dados, assim as extents recuperam o espaço disponível. 4.3.SEGMENTS Segments é um conjunto de extents contendo todos os dados para estrutura de armazenamento lógico especifico dentro de um tablespace, por exemplo, cada tabela aloca uma ou mais extents que formam um segment table e para cada índice é atribuído uma ou mais extents formando assim um segment index. Como o Oracle trabalha com alocação de extents, quando a mesma está cheia, automaticamente o banco aloca outra extent para o segment. 4.4.TABLESPACE AND DATA FILES Logicamente os dados são armazenados em tablespace e fisicamente em data files que são associados a uma tabela. Tablespace e data file têm uma relação muito grande, porém diferenciam com suas particularidades e funcionalidades: Em um banco de dados contem no mínimo duas tablespace (unidade de armazenamento lógica), que armazenam todos os dados do banco, essas duas tablespace default são chamadas de SYSTEM e SYSAUX, porém existe outra

9 opcional que é denominada TEMP. Para cada tablespace é referenciado um ou mais data file (armazenamento físico), no entanto os data files armazenam os dados que constituem cada tablespace do banco, ou seja, uma tablespace pode referenciar um ou vários data file, porém um data file somente poderá referenciar uma determinada tablespace. 5.CONSIDERAÇÕES FINAIS A estrutura de memória e armazenamento no Oracle, basicamente subdivide em SGA e PGA, ambas são áreas globais as quais existem suas características. Dento de cada uma dessas duas, existem as subdivisões, aqui foi descrita cada uma dessas. A Oracle disponibiliza na versão 11g, diversas vantagens quando se trata de armazenamento, pensando sempre no cliente, focando em segurança, desempenho e alta disponibilidade. 6.LISTA DE ABREVIAÇÕES 1. PGA: Program Global Area. 2. SGA: System Global Area. 3. UGA: User Global Area. 4. JVM: Java Virtual Machine. 5. JSR: Java Specification Requests. 6. SLA: Service Level Accord

10 7. FIGURAS Fonte: http://docs.oracle.com/cd/e14072_01/server.112/e10713/memory.htm Esta imagem mostra um retângulo arredondado canto grande representando o PIG. Dentro do SGA, dispostos em duas linhas de quatro, são arredondados canto-caixas de Java pool, the buffer cache, the redo buffer, the result cache, the shared pool, the Streams pool, e the large pool. A última caixa tem o nome de outros componentes. Fora do SGA, com setas indo e voltando para o SGA, são caixas que representam processos de servidor e de processos de fundo. Cada processo também mostra uma seta que vai para trás e para uma caixa que representa a sua própria PGA. Cada caixa de PGA é para o lado da sua caixa do processo. Fonte: http://docs.oracle.com/cd/e14072_01/server.112/e10713/img_text/cncpt217.htm

11 A imagem acima mostra a Estrutura de Memória do Oracle Database. REFERÊNCIAS BIBLIOGRÁFICAS ABNT. NBR 6034: informação e documentação: Índice: apresentação. Rio de Janeiro, 2004. 4 p. ABNT. NBR 6023: informação e documentação: elaboração: referências. Rio de Janeiro, 2002. 24 p. Oracle Database 11g DBA Handbook ISBN 978-0-071-496636, Bob Bryla e Kevin Loney, Techbooks.

12 http://dicasdeumdba.wordpress.com/2011/04/19/arquitetura-oracle-database-11g-resumoestruturas-de-memoria/. Acessado em 24/01/2013 http://docs.oracle.com/cd/e14072_01/server.112/e10713/memory.htm. Acessado em 04/01/2013 http://docs.oracle.com/cd/e14072_01/server.112/e10713/img_text/cncpt217.htm. Acessado em 24/01/2013 http://docs.oracle.com/cd/e14072_01/server.112/e10713/memory.htm. Acessado em 24/01/2013 http://imasters.com.br/artigo/6612/oracle/o-novo-oracle-11g/. Acessado em 28/02/1988 http://docs.oracle.com/cd/b28359_01/server.111/b28318/physical.htm#g21431. Acessado em 01/04/2013