Assunto
Produto: | Banco de Dados |
Versões: | Qualquer Versão |
Ocorrência: | Parametrizações básicas da base de dados e servidor |
Ambiente: | RM - Oracle |
Passo a passo: | Todos os procedimentos informados abaixo devem ser efetuados pelo DBA responsável da empresa. Este documento contém algumas dicas para DBA’s manterem suas instâncias Oracle em perfeito estado de funcionamento. As primeiras dicas referem-se a parâmetros encontrados no arquivo init.ora, encontrado no diretório de instalação da instância Oracle na máquina em questão. Para alterar alguns deles (quando possível), basta editar o arquivo em questão, salvá-lo e restartar a instância. 1. TAMANHO DO BLOCO ORACLE Observação: Note que o tamanho do bloco deve ser informado em nº de bytes. Caso a instância já esteja criada, pode-se verificar a configuração deste parâmetro, editando-se o arquivo de parâmetros (init.ora) do Oracle e verificando o valor da variável DB_BLOCK_SIZE. Uma alternativa para visualizar o valor do parâmetro seria a utilização da ferramenta Instance Manager. Aqui, o parâmetro pode ser visualizado através de: - Initialization Parameters / Instance Specific (A alteração deste parâmetro só pode ser feita caso a instância seja recriada). 2. DISTRIBUIÇÃO DA MEMÓRIA DISPONÍVEL PARA O ORACLE Depois de determinada a quantidade de memória que estará disponível para o Sistema Operacional e a quantidade que ficará disponível para o Oracle, deve-se fazer a distribuição da memória disponível para o Oracle.
Deve-se configurar este parâmetro com grande cautela, uma vez que ele reflete a quantidade de memória que cada conexão de usuário irá ter disponível para operações de SORT. 10 * (1,7+1) = 27 MB. Observação:Note que o valor do SORT_AREA_SIZE deve ser informado em número de bytes. O valor a ser configurado para este parâmetro deve ser definido levando-se em consideração o número de conexões simultâneas no Oracle e a quantidade de memória disponível para mesmo.
Este parâmetro irá refletir a quantidade de memória destinada ao Oracle que será utilizada para Cache de dados. Sugerido: 60% da memória restante destinada ao Oracle destinada ao Cache de dados. Como calcular o valor do parâmetro: DB_BLOCK_BUFFER = (M * 1048576) / B Onde: M = É a quantidade de memória (em Mega bytes) que deve ser destinada ao Buffer de Dados.
Este parâmetro irá refletir a quantidade de memória destinada ao Oracle que será utilizada para o SHARED POOL. Sugerido: Restante da memória destinada ao Oracle (40%), destinada ao SHARED POOL. O valor deste parâmetro deve ser determinado de Bytes. SHARED_POOL_SIZE = M, Onde: M = Memória destinada ao SHARED POOL em bytes. 3. TABLESPACE Deve-se criar pelo menos uma tablespace distinta para cada finalidade: System, Dados, Indices, Temp, Rollback, Redo. É desejável também que os datafiles destas tablespace sejam distribuídos em discos diferentes, de forma a minimizar a concorrência de acesso. Isto deve ser feito conforme a disponibilidade de discos. Exemplo:
Um disco: System, Dados, Indices, Temp, Rollback, Redo no mesmo disco, mas em tablespace diferentes.
Dois discos: 1º disco: Dados + Temp + Rollback 2º disco: System + Indices + Redo
Deve-se verificar constantemente a taxa de utilização da CPU, a mesma não deve estar com taxa de utilização muito alta durante a maior parte do período (90% de utilização). 5. COALESCE Deve-se verificar periodicamente (mensalmente) a fragmentação do espaço livre alocado para cada tablespace: SELECT TABLESPACE_NAME, TOTAL_EXTENTS, PERCENT_EXTENTS_COALESCED FROM DBA_FREE_SPACE_COALESCED WHERE PERCENT_EXTENTS_COALESCED <> 100 Desfragmentação - necessário indicar o Tablespace: ALTER TABLESPACE tablespace COALESCE 6. LINGUAGEM E COLLATION No padrão CorporeRM o Character Set deverá ser definido com WE8ISO8859P15, a linguagem como AMERICAN_AMERICA.WE8ISO8859P15 e o Date_Format como DD/MM/YYYY. Oracle - Alterando a Linguagem do Client 7. ATUALIZAÇÃO DE ESTATÍSTICAS: A rotina de atualização de estatísticas deve ser agendada para execução diária. Link complementar: BD0003_Manutenção_Oracle_BR Sugere-se o utilizar o Package DB MS_UTILITY para fazer a atualização de estatísticas: Para agendar a execução diária de estatísticas em um servidor que esteja utilizando o Windows NT ou Windows 2000: 1º) Crie um arquivo TXT com o seguinte conteúdo: 2º) Utilize o command prompt para agendar a tarefa: O comando acima agenda a atualização de estatísticas para ocorrer todos os dias às 22:00 horas. Considera-se que o arquivo TXT criado no primeiro item é o d:\temp\script.txt 8.ÍNDICES: Os índices devem ser reconstruídos periodicamente (mensalmente), ou após período de grande "deleção" dos mesmos. Para a verificação do percentual de linhas deletadas em um determinado índice utilize: Link complementar: BD0003_Manutenção_Oracle_BR 1º) Analyze: ANALYZE INDEX indice VALIDATE STRUCTURE 2º) Verificando o percentual de deleção: SELECT LF_ROWS , DEL_LF_ROWS FROM INDEX _STATS Observação: Caso 30% das linhas em folhas (LF_ROWS) tenha sido deletado (DEL_LF_ROWS), o índice deve ser reconstruido. 3º) Reconstrução do índice: ALTER INDEX indice REBUILD tablespace Para reconstruir o índice, durante o REBUILD deve haver espaço disponível para a coexistência dos dois índices (antigo e novo). O comando abaixo gera um script para a reconstrução de todos os índices da base de dados: SELECT 'ALTER INDEX ' || INDEX_NAME || ' REBUILD TABLESPACE RM_INDICES; ' FROM USER_INDEXES Este script deve ser executado em um momento em que não haja acesso à base de dados.
Por padrão o cálculo para os valores de processes, sessions e transactions baseia-se na seguinte forma: 10. EXPORT/IMPORT (Oracle 10g ou inferior): O Export e Import da base de dados devem ser feito periodicamente com finalidade de reorganizar os dados dentro da base de dados, desfragmentar e resolver casos de linhas Migradas. Sugere-se fazer a Exportação / Importação da base de dados de 2 em 2 meses. Passos para a execução do Export / Import:
Observação: Semanalmente sugere-se verificar o número de linhas MIGRADAS na base de dados. Caso o número esteja muito alto, deve-se fazer o Export / Import da base. Para verificar o número de linhas MIGRADAS utilize: SELECT TABLE_NAME, CHAIN_CNT FROM USER_TABLES ORDER BY CHAIN_CNT DESC Observação: A coluna CHAIN_CNT, reflete não apenas o número de linhas migradas, mas o processo de Export / Import irá atacar apenas este problema. 9. ALERT: O ALERT dever ser verificado diariamente. Deve-se verificar se existem mensagens de erro do tipo ORA-00600 e /ou ORA- 01578, que indicam erros internos do Oracle ou blocos corrompidos. Caso a mensagem esteja acontecendo, o problema deve ser analisado e solucionado antes que se torne mais grave. |
Observações: |