4shared

Autor: dartanghan

[Oracle] Refresh Groups

Refresh Group Refresh group (RefGroup) é uma das milhares de funcionalidades que nosso querido Oracle DB possui. O RefGroup serve para agrupar materialized views e atualizá-las de maneira única. O que pode facilitar a vida do DBA mas complicar o entendimento do banco por novos administradores. Alguns problemas decorrentes de RefGroups. no uso de RefGroups é que: – O tempo de refresh da MView passa a ser do grupo na qual ela faz parte; – O Enterprise Manager (versões antigas) não enxerga isto; – A MView não precisa ter uma JOB associada ( o que dificulta encontrar aonde ela é atualizada ); Neste artigo exibirei como criar um RefGroup e como atualizar as views dele, algo bem simples 🙂 Criando um Refresh Group Para criar um RefGroup usaremos a biblioteca DBMS_REFRESH e será necessário termos uma MaterializedView. Criando uma materialized View Como o foco de nosso artigo é Refresh Groups, vou criar uma tabela bem simples com uma Materialized View atualizada de 10 em 10 minutos. Para isto, executei: drop table dartanghan.log; drop materialized view dartanghan.MV_LOG; create table dartanghan.log ( id number primary key, descr varchar2(512) ); create materialized view log on dartanghan.log; create materialized view dartanghan.MV_LOG refresh fast next sysdate+10/24/60 as select id,descr from log; Criando uma materialized view, o Oracle já cria uma Job e um grupo de atualização ( com apenas a MView criada ). Com...

Read More

Melhorando a performance com RapidDisk

Pessoal, neste artigo vou falar rapidamente sobre o aplicativo RapidDisk (rxdsk), criado pelo ilustríssimo Petros Koutoupis. O RapidDisk serve como um sistema de arquivos “na memória”, onde podemos armazenar e acessar arquivos numa velocidade incrívelmente maior do que em discos convencionais. Na realidade já existem outros aplicativos com o mesmo princípio do que o RapidDisk, porém o rxdsk traz a funcionalidade de alocação dinâmica de espaço, ou seja, o aplicativo não reserva imediatamente a quantidade de memória informada. Onde usar o RapidDisk? Meu pequeno e jovem gafanhoto, o uso do rxdsk é vasto, podemos usar para armazenar páginas web, para servidores ftp ou para armazenar arquivos de cache de banco. É válido mencionar que existe uma funcionalidade chamada RapidCache, disponível nas novas versões do rxdsk, onde podemos pegar uma partição num disco e carregá-la diretamente para a memória. O RapidCache mantém o sincronismo entre o disco e a partição em memória ( mas lembre-se que neste caso ocorrerá degradação da performance do rxdsk). Instalando o RapidDisk Infelizmente ( ou felizmente ) o RapidDisk está disponível apenas via git, o link para o GIT do RapidDisk está em: http://rapiddisk.org/index.php?title=Download_and_Installation. A instalação é muito tranquila, apenas serão necessários pacotes para a compilação do aplicativo ( make e gcc ) e os headers do kernel. Observe abaixo como fiz para instalar o rapidDisk em um Debian 6.0.6: apt-get install git make linux-source-2.6.32...

Read More

[Linux] Como combinar interfaces de rede (Teaming)

Buenas pessoal! Neste post vou explicar como fazemos bonding, ou seja, como fazemos várias interfaces de rede ( eths ) trabalharem como apenas uma ou como fazer interfaces de backup. Obs: este post está focado para sistemas operacionais baseados em RedHat 😉 Vamos ao conceito: Bonding vem de encontro a necessidade dos ambientes computacionais de aumentar o throughput da rede e trazer maior disponibilidade dos servidores. Existem 7 modos de trabalho no bonding: Modo 0 (balanceamento) : envia os pacotes ( no modo Round-robin ), de forma sequencial, pelas interfaces de rede configurada. Este modo traz traz tolerância a falhas e balanceamento de carga entre as interfaces. Obs: cuidado ao usar este modo, pois o switch pode se perder ao receber pacotes com um mesmo MAC em diferentes portas! ( passei por um problema assim esses dias ;( ) Modo 1 (backup) : Apenas uma interface fica ativa no bonding por vez. Se a interface cair, o bond seleciona outra interface para trabalhar. Modo 2 (balanceamento xor) : baseando-se no MAC de origem, mantém uma mesma NIC escrava recebendo os pacotes. Este modo traz tolerância a falhas e balanceamento de carga entre as interfaces. Modo 3 (broadcast) [ modo v1d4l0k4 ] : manda os pacotes para todas as NICs associadas. Este modo traz traz tolerância a falhas. Modo 4 (Dynamic link aggregation) : Segue o padrão 802.3ad. Mas o...

Read More

[Oracle] Alterando para horário de verão

Buenas senhoritos e senhoritas. Neste pequeno post, vou mostrar como alterar o horário do servidor (Linux) e refletir isto no Oracle. Tarefa que faz muitos administradores odiarem o horário de verão 🙂 Na realidade, partindo da versão 10g pra frente, o Oracle atualiza automaticamente o horário ao se alterar o servidor. Porém para bases 9i ou anteriores, você deverá reiniciar o banco para pegar as alterações. Alterando o horário do servidor No exemplo abaixo, utilizarei o Oracle 10gr2 num Redhat. Nosso horário: SQL> alter session set NLS_DATE_FORMAT = 'dd/mm/yyyy HH24:mi:ss'; select sysdate from dual; !date Session altered. SQL> SYSDATE ------------------- 19/10/2012 11:17:35 SQL> Sex Out 19 11:17:35 EDT 2012 Observe que o horário está ok tanto no oracle quanto no sistema operacional. Agora, vamos manter a sessão ativa e vamos alterar o horário do servidor. [root@ora1 ~]# date -s 12:10 Sex Out 19 12:10:00 EDT 2012 E agora se formos na nossa sessão que ficou ativa, teremos: SQL> select sysdate from dual; SYSDATE ------------------- 19/10/2012 12:10:27 SQL> Sem segredo, sem problemas. Neste caso. Agora vamos a alguns problemas conhecidos de horário no Oracle. 1-Alterando o /etc/localtime Pois bem, quando mudamos nosso localtime para apontar para uma nova zoneinfo, certamente teremos problemas na mudança de horários do Oracle. Observe o que fiz com meu usuário ROOT: [root@ora1 etc]# ln -s /usr/share/zoneinfo/Singapore /etc/localtime [root@ora1 etc]# date Sáb Out 20 00:20:31 SGT...

Read More

Definindo a Shared Memory no Linux

Pessoal, neste post ( apesar de bem direcionado para Oracle ) vou trazer algumas informações úteis sobre parametrização de memória no Linux. TMPFS Partição virtual que representa a área reservada para memória compartilhada ( shared memory ). Esta partição pode ser encontrada no arquivo /etc/fstab e normalmente tem o tamanho equivalente a metade da memória RAM. * Ao final do artigo temos alguns macetes para alterar o tamanho da TMPFS Shared Memory É uma parte da memória reservada pelo sistema operacional para que processos gravem e leiam informações. Inclusive leiam informações gravadas por outros processos. Alguns processos do Oracle usam shared memory para comunicação, troca de informações ou mesmo compartilhamento de objetos. (SGA, por ex.) Uma SHARED MEMORY sub-dimensionada ou uma SGA mal dimensionada poderão trazer erros como: ORA-04031: unable to allocate XXX bytes of shared memory ORA-27123: unable to attach to shared memory segment Como dimensionar a Shared Memory? É muito complicado dar uma receita de como definir o tamanho da SHARED MEMORY. Normalmente vai depender da finalidade do servidor, da finalidade do banco de dados, etc, etc. Porém vamos explicar as recomendações da ORACLE para este tópico e como uma base convencional trabalha. Como verificar o dimensionamento da minha SHARED MEMORY? No linux existem duas maneiras de verificar como está sua shared memory: – Através do comando sysctl – Através dos arquivos dentro de /proc/sys/kernel Existem, basicamente,...

Read More
  • 1
  • 2
Follow

Get every new post delivered to your Inbox

Join other followers: