Arquitetura do banco de dados e ASM

Descrição do ASM.

  • O ASM é uma solução de multiplexação que automatiza o layout dos arquivos de dados, arquivos de controle e arquivos de redo log, distribuindo-os em todos os discos disponíveis.
  • O ASM reequilibra automaticamente a distribuição dos arquivos com mínima intervenção.

Arquitetura do ASM.

  • O ASM divide os arquivos de dados e outras estruturas do banco de dados em extensões, e divide as extensões entre todos os discos contidos no grupo de discos para otimizar o desempenho e a confiabilidade.
  • O rebalanceamento automático é outro recurso importante do ASM. Quando é necessário aumentar o espaço em disco, dispositivos adicionais de disco podem ser incluídos no grupo de disco, e o ASM move um número proporcional de arquivos de um ou mais discos já existentes para os novos discos, para manter o equilíbrio geral de I/O em todos os discos. Isso acontece em segundo plano, enquanto os objetos do banco de dados contidos nos arquivos do disco ainda se encontram online e disponíveis para os usuários.
  • O uso do ASM não impede que você combine com a técnica de gerenciamento manual.

Noções básicas sobre arquitetura do banco de dados e o ASM.

  • As estruturas lógicas do banco de dados Oracle abrangem tablespaces, segmentos, extensões e blocos, em ordem de granularidade crescente.
  • Um banco de dados deve possuir, no mínimo, um tablespace SYSTEM e um SYSAUX;
  • As estruturas físicas do banco de dados Oracle abrangem datafiles, redo log files, controlfiles, archive log files, parameter files, alert/trace files e backup files;
  • As estruturas de memória do Oracle incluem a SGA (System Global Area), a PGA (Program Global Area) e a Software Code Area;
  • Os principais processos background do Oracle são: SMON, PMON, DBWn, LGWR, ARCn, CKPT e RECO;
  • Os processos background que suportam instâncias ASM são RBAL e ARBn;
  • Os bancos de dados que utilizam discos ASM tem os processos ASMB e RBAL.
  • 20 é o número máximo de processos DBWn, eles vão de DBW0 a DBW9 e se necessário for DBWa a DBWj na maioria das plataforma de sistemas operacionais.

Descrição do ASM

  • O ASM exige uma instância dedicada para o gerenciamento dos discos compartilhados, chamada de instância ASM;
  • O rebalanceamento automático de discos em um grupo de discos ASM acontece em segundo plano quando os discos são adicionados ou removidos de um grupo de disco ASM;
  • O processo RBAL(rebalancer) em uma instância ASM coordena a atividade de discos grupos de discos, fazendo um rebalanceamento quando um disco é adicionado ou removido.
  • Os processos ARBn executam a movimentação de extensões entre os discos e grupo de discos.
  • O processo ASMB em uma instância do RDBMS se encarrega da comunicação entre o banco de dados e a instância do ASM;
  • O processo RBAL abre e fecha os discos no grupo de disco da instância RDBMS;
  • Uma instância ASM possui um arquivo de parâmetros de inicialização e um arquivo de senhas, mas como não existem datafiles nessa instância, não há também um dicionário de dados; 
  • O ASM executa o espelhamento no nível de objetos de banco de dados.
  • Todas as conexões com uma instância ASM usam autenticação do sistema operacional;
  • O novo privilégio SYSASM em uma instância do ASM facilita a separação da administração do banco de dados e do armazenamento nessa instância.
  • Comandos de grupo de discos como CREATE DISKGROUP, ALTER DISKGROUP e DROP DISKGROUP são válidos somente em uma instância ASM.
  • Uma instância do ASM encontra-se em um estado MOUNT ou NOMOUNT ela nunca estará em modo OPEN.
  • A partir do oracle 11G surge o novo privilégio de sistema denominado SYSASM para separar a administração do armazenamento do SYSDBA.
  • Comando para se conectar ao ASM:
    export ORACLE_SID=+ASM
    sqlplus / as sysasm
  • Conceder um privilégio SYSASM a um usuário do banco de dados equivale a conceder o privilério SYSDBA ou SYSOPER. Exemplo:

    create user adriano identified by neres;
    grant sysasm to adriano;
    connect adriano as sysasm;
    • Considerando que uma instância ASM não possui dicionário de dados, somente o arquivo de senha da instância do ASM é atualizado com o novo usuário e com o privilégio SYSASM. É possível emitir o comando REVOKE para o usuário.
  • Quais usuários tem o privilégio SYSDBA, SYSASM ou SYSOPER?

    select * from v$pwfile_users;

Configurar arquivos de parâmetros para instância do ASM e do RDBMS.

  • Você não pode desligar uma instância do ASM que esteja gerenciando discos em uma instância ativa do RDBMS(você deve desligar os RDBMSs primeiro).
  • O acesso a instância é restrito aos usuários que podem se autenticar junto ao sistema operacional, em outras palavras, conectando-se como SYSDBA, SYSASM ou SYSOPER por meio de um usuário do sistema operacional do grupo DBA.
  • Os usuário SYSOPER tem recursos limitados, o que eles poder fazer é basicamente o que está listando abaixo:
    • Iniciar e desligar uma instância do ASM.
    • Montar ou desmontar um grupo de disco.
    • Altera o status do disco de um grupo de disco, de ONLINE para OFFLINE ou vice-versa.
    • Rebalancear um grupo de disco.
    • Fazer uma verificação de integridade de uma grupo de discos.
    • Acessar as visões dinâmicas de desempenho V$ASM_*. 
  • É altamente recomendado um SPFILE para ASM, pois existem mudanças dinâmicas de valores de parâmetros como por exemplo: ASM_DISKGROUPS é automaticamente configurado quando um disco é adicionado.
  • Para uma instância do ASM, o parâmetro INSTANCE_TYPE é ASM; para uma instância do RDBMS o valor é RDBMS;
  • O paramâtro INSTANCE_TYPE é o único necessário(obrigatório) para uma instância ASM. 
  • O DB_UNIQUE_NAME é +ASM para uma instância do ASM;
  • O ASM_POWER_LIMIT controla a velocidade das operações de rebalanceamento, para garantir que as operações não interfiram nas demandas de I/O dos usuários. Varia de 1 a 11, o valor padrão é 1 baixa sobrecarga de I/O.
  • O ASM_PREFERRED_READ_FAILURE_GROUPS contém uma lista dos grupos de falha preferidos para uma instância do RDBMS quando você utiliza instâncias do ASM em cluster. Cada instância pode especificar um grupo de falha, posicionando o mais próximo possível do nó da instância, para aumentar o desempenho, exemplo: um grupo de disco de falha no local do servidor.
  • ASM_DISKSTRING: Especifica um ou mais strings dependentes do sistema operacional para limitar os dispositivos de disco que podem ser utilizados para criar grupos de discos. Se esse valor for  NULL, todos os discos visíveis para uma instância são candidatos em potencial para a criação de grupos de discos, a query a seguir mostra o valor deste parâmetro.

    select name, type, value from v$parameter where name = 'asm_diskstring';
  • ASM_DISKGROUPS: Especifica uma lista contendo os nomes dos grupos de dsico a serem automáticamente montados pela instância do ASM durante o processo de inicailização, ou pelo camando ALTER DISKGROUP ALL MOUNT. Mesmo que a lista esteja vazia na inicialização da instância, qualquer grupo de discos existente poderá ser montado de forma manual.
  • ASM_POOL_SIZE: É útil para as instâncias normais e do ASM, esse poo é utilIziado de modo diferente para uma instância do ASM. Todos os pacotes internos do ASM são executados a partir desse pool, deve ser definido com no mínimo 12MB para instância individual, e 16 MB para RAC.
  • Todas as visões dinâmicas de desempenho relacionadas ao ASM estão disponíveis em instâncias do ASM e do RDBMS quando você utiliza instâncias do ASM em cluster;
  • Todas as visões dinâmicas de desempenho relacionadas ao ASM estão disponíveis em instancias do ASM e RDBMS, exceto a visão V$ASM_FILE, V$ASM_OPERATION e V$ASM_ALIAS.
  • Algumas Views dinâmicas comuns de desempenho relacionadas ao ASM.
    • V$ASM_DISK;
    • V$ASM_DISKGROUP;
    • V$ASM_FILE;
    • V$ASM_OPERATION;
    • V$ASM_CLIENTE;
    • V$ASM_ALIAS; 
  • Os nomes de arquivos ASM totalmente qualificados são utilizados somente ao fazer a uma referencia a um arquivo existente.
  • Um nome de arquivo totalmente qualificado do ASM tem o formato +group/dbname/file type/tag.file.incarnation. Onde group é o nome do grupo de discos (v$asm_diskgroup), dbname é o banco de dados ao qual o arquivo pertence,file type é o tipo de arquivo do Oracle, tag é a informação especifica do tipo de arquivo, e o par file. incarnation garante a exclusividade se você decidir criar outro arquivo de dados ASM. 
  • Os nomes de arquivo numéricos do ASM são válidos somente para os arquivos existentes do ASM Exemplo são compostos por GRUPO + par file/incarnation: +DATA.259.627432977.
  • Nomes incompletos são adequados em operação de arquivo individual e de criação de vários arquivos. Por exemplo: Você pode criar um tablespace e especificar apenas o nome do grupo de disco; a instância do ASM usa o OMF para qualificar totalmente o nome interno do tablespace dentro do grupo de disco.
  • Alias:
  • Alias com nomes de modelos: Modelos ASM são uma forma rápida de especificar tipos de redundância e striping em um grupo de disocs ASM;
  • Os tipos de redundância de um grupo de discos ASM são: externa, normal e alta;
  • O striping de diskgroups ASM pode ser no modo fine ou coarse.
  • Nomes incompletos com modelo
  • Tipos de arquivos e modelos do ASM.

Inicializar e desligar instâncias do ASM 

  • Uma instância do ASM se encontra no estado MOUNT quando você utiliza o comando STARTUP e os grupos de discos são montados.
  • Uma instância do ASM não pode estar no estado OPEN, como é possível em uma instância do RDBMS;
  • Usar STARTUP RESTRICT em uma instância do ASM impede que as instâncias do banco de dados acessem os grupos de discos controlados por essa instância do ASM;
  • Executar uma operação de SHUTDOWN ABORT sobre uma instância do ASM aplica essa mesma operação a todas as instâncias do RDBMS conectadas.
  • Na maioria das instâncias do ASM que compartilham grupos de discos, como em um ambiente RAC, a falha de uma instância do ASM não ocasiona a falha das instâncias do banco de dados. Em vez isso, outra instância do ASM executa uma operação de recuperação da instância com falha. As falhas de instâncias do RDBMS conectadas não afetam a instância do ASM.

Administrar grupo de discos ASM

  • O striping no modo coarse distribui os arquivos em unidades de 1 MB por todos os discos;
  • O striping no modo fine distribui os arquivos em unidades de 128 KB;
  • O striping no modo coarse é adequado para ambientes com alto nível de pequenas solicitações de I/O, como em um ambiente OLTP.
  • O striping no modo fine é adequado para ambientes tradicionais de data warehouse  ou sistemas OLTP com baixa simultaneidade isso maximiza o tempo de resposta para as solicitações individuais de I/O;
  • Um grupo de falha é um ou mais discos em um diskgroup que compartilham um recurso comum, como uma controladora de disco;
  • A redundância externa é adequada para os diskgroups não críticos ou para discos gerenciados externamente por uma controladora RAID;
  • A redundância normal oferece o espelhamento bidirecional e exige dois grupos de falha dentro de um diskgroup;
  • A redundância alta oferece o espelhamento tridirecional com, no mínimo, três grupos de falha em um grupo de discos;
  • O espelhamento é gerenciado em um nível muito baixo. As extensões são espelhadas, e não os discos;
  • Cada disco em cada grupo de disco tem uma combinação de extensões primárias e espelhadas;
  • O rebalanceamento dinâmico ocorre automaticamente em um grupo de disco para realocar proporcionalmente os dados de outros membros do grupo de disco para o novo membro do grupo;
  • Você pode utilizar o comando ALTER DISKGROUP ADD ALIAS para adicionar um alias mais legíveis ara um objeto existente.
  • Você pode usar um alias para fazer referencia a um objeto existente.
  • Você pode usar um alias para cirar um novo objeto.
  • Quando um arquivo ASM é criado sem opções, por padrão, todos os objetos do ASM sofrem striping e espelhamento, não é possível desativar o striping, mas é possível desativar o espelhamento usando a cláusula EXTERNAL REDUNDANCY ao criar um grupo de disco.
  • Geralmente os arquivos ASM são OMF (Oracle Managed Files – Arquivos Gerenciados pelo Oracle), mas podem ser gerenciados manualmente;
  • O fast mirror resync, disponível a partir do Oracle Database 11g, agiliza o espelhamento do disco por ocasião de uma falha em um disco, como defeito na controladora.
  • Somente os dados modificados precisam ser ressincronizados quando o disco volta ao modo online;
  • O valor padrão do tempo de reparo de disco é de 3,6 horas, controlado pelo parâmetro de inicialização DISK_RAPAIR_TIME;
  • É possível monitorar as operações de rebalanceamento de disco na view dinâmica de desempenho V$ASM_OPERATION;
  • Você pode usar o utilitário de linha de comando ASMCMD para navegar em e manter objetos dentro de grupos de discos ASM;
  • Os novos comandos ASMCMD do Oracle Database 11g são cp, lsdsk, md_backup, md_restore e remap.




 isso

Nenhum comentário:

Postar um comentário