Noções básicas de System Global Area no Oracle 12c

o Sistema Global Area

(SGA) é um grupo de estruturas de memória compartilhada do Oracle 12c. Ele contém coisas como dados e SQL. Ele é compartilhado entre a Oracle processos em segundo plano e processos do servidor.

O SGA é composto de várias partes chamado componentes do SGA:

  • piscina colectiva

  • cache de buffer do banco de dados

  • Redo log buffer

  • Grande piscina

  • piscina Java

  • streams piscina

As áreas de memória são alteradas com parâmetros de inicialização.

  • Você pode modificar individualmente cada parâmetro para o ajuste ideal (apenas para os especialistas).

  • Você pode dizer a Oracle quanto de memória você deseja que o SGA de usar (para todos os outros).

Digamos que você queira Oracle para usar 1GB de memória. O banco de dados realmente leva que 1GB, analisa a forma como tudo está funcionando, e ajusta cada componente para o dimensionamento ideal. Ele ainda diz-lhe quando ele anseia por mais.

Redo log buffer no Oracle 12c

o redo log buffer é outro componente de memória que protege você contra você mesmo, má sorte, ea Mãe Natureza. Este buffer registra cada instrução SQL que altera os dados. A declaração em si e qualquer informação necessária para reconstruir é chamado de refazer entrada. Refazer entradas conviver aqui temporariamente antes de serem gravadas no disco. Esse tampão protege contra a perda de blocos sujos.

blocos de sujos não são gravados em disco constantemente.

Imagine que você tem um cache de buffer de 1.000 blocos, e 100 deles estão sujas. Então, imagine uma fonte de alimentação vai de barriga para cima no seu servidor, e todo o sistema desmorona sem buffers sujos sendo escrito. Que os dados tudo está perdido, certo? Não tão rápido. . . .

O buffer de redo log é liberado quando ocorrem estas coisas:

  • Toda vez que há uma submissão aos dados no banco de dados

  • A cada três segundos

  • Quando o buffer de redo é 1/3 cheio

  • Pouco antes de cada bloco de sujo é gravada no disco

Por que a Oracle se preocupar manter toda esta redo tampão coisinha quando em vez disso, ele poderia apenas escrever os buffers sujos no disco para cada cometer? Parece redundante.

  • O arquivo que registra essas informações é sequencial. A Oracle sempre escreve para o fim do ficheiro. Ele não tem que olhar para cima onde colocar os dados. Ele apenas registra a entrada refazer. Um bloco existe em algum lugar em um arquivo. A Oracle tem de descobrir onde, ir para aquele local, e gravá-lo. Refazer gravações de buffer são muito rápidos em termos de I / O.

  • Uma instrução SQL pequena poderia modificar milhares ou mais blocos de banco de dados. É muito mais rápido para gravar essa declaração de esperar para o I / O de milhares de blocos. A entrada refazer leva uma fração de segundo para escrever, o que reduz a janela de oportunidade para o fracasso.

  • Ele também retorna sua submissão somente se a gravação for bem sucedida. Você sabe imediatamente que as alterações são seguros. Em caso de falha, a entrada de redo pode ter que ser executados novamente durante a recuperação, mas, pelo menos, não está perdida.

Grande piscina no Oracle 12c

Nós não estamos referindo-se ao tamanho da piscina do seu vizinho. Nem todo mundo usa o opcional grande piscina componente. A grande piscina alivia a piscina comum de requisitos de memória às vezes transitórios.

Esses recursos usam a grande piscina:

  • Oracle Recovery Manager

  • A Oracle Servidor Compartilhado

  • Processamento paralelo

  • I / processos do servidor O-relacionados

Porque muitas dessas atividades não são constantes e alocar a memória somente quando eles estão funcionando, é mais eficiente para deixá-los executar no seu próprio espaço.

Sem uma grande piscina configurado, estes processos roubar a memória da área SQL do pool compartilhado. Isso pode resultar em mau processamento SQL e redimensionamento constante da área de SQL do pool compartilhado. Nota: A grande piscina não tem LRU. Uma vez que enche-se (se você tamanho pequeno demais) os processos reverter para seu antigo comportamento de roubar a memória do pool compartilhado.

piscina Java no Oracle 12c

A piscina Java não é uma piscina cheia com café (Ok, nós estamos cortando as referências para a piscina.) O piscina Java é um componente de memória opcional.

A partir de Oracle 8i, os navios de banco de dados com o seu próprio Java Virtual Machine (JVM), que pode executar código Java fora do SGA. Em nossa experiência, essa configuração é relativamente rara. Na verdade, você verá esta onde as ferramentas do Oracle específicos-são instalados.

No entanto, não deixe que isso desanimá-lo de desenvolver seus próprios aplicativos Oracle baseados em Java. O fato é que, mesmo que a Oracle tem seu próprio recipiente Java, muitas outras alternativas concorrentes de valor estão lá fora.

Streams Piscina no Oracle 12c

A piscina córregos é usado somente se você estiver usando a funcionalidade do Oracle Streams. Oracle Streams é uma tecnologia de replicação de dados opcional onde você replicar (reproduzir) as mesmas operações, alterações de dados ou eventos de um banco para outro (por vezes remoto) do banco de dados. Você faria isso, se você queria os mesmos dados de existir em duas bases de dados diferentes.

As lojas fluxos piscina tamponada mensagens de fila e fornece a memória usada para capturar e aplicar processos. Por padrão, o valor desta piscina é zero e aumenta dinamicamente se Oracle Streams está em uso.

menu