domingo, 23 de fevereiro de 2014

Espelhamentos em Banco de Dados

Bom vamos falar hoje sobre o Espelhamentos em Banco de Dados ou MirrorDB.

O que é um espelhamentos?
O espelhamento de banco de dados é uma estratégia simples que oferece muitos benefícios. Segue alguns tópicos.
  • Aumenta a disponibilidade de um banco de dados.
  • No caso de desastre, no modo de segurança alta com failover automático, o failover coloca rapidamente online a cópia do banco de dados em espera (sem perda de dados). Nos outros modos de operação, o administrador do banco de dados tem a possibilidade de forçar o serviço (com possível perda de dados) para a cópia do banco de dados em espera. 
     
  • Aumenta a proteção dos dados como o espelhamento de banco fornece completa ou quase completa redundância de dados, dependendo se o modo operacional é de alta segurança ou de alto desempenho.
     
  • Aumenta a disponibilidade do banco de dados de produção durante as atualizações.
    Para minimizar o tempo de inatividade de um banco de dados espelho, atualize de forma sequencial as instâncias que estão hospedando os parceiros de failover. Isso ocasionará o tempo de inatividade de um único failover. Essa forma de atualização é conhecida como atualização sem interrupção
Como funciona espelhamentos?
Bom o funcionamento você pode ter uma ideia verificando as vantagens e as desvantagem.

Vantagens:
  • Aumento na disponibilidade e distribuição dos dados;
  • Aumento na segurança dos dados;
  • Diminuição na possibilidade de perda de dados;
  • Facilidade no uso;
  • Possibilidade de realizar espelhamentos locais ou remotos;
  • Maior aumento do Nível de Segurança dos Dados;
  • Não requer um conhecimento avançado ou específico para este de funcionalidade; e
  • Não requer a utilização de ferramentas de terceiros ou produtos específicos.
Desvantagens:
  • Aumento no espaço ocupado em disco, devido à duplicidade de dados;
  • Aumento na necessidade de gerenciamento e controle dos dados;
  • Aumento no tempo de execução e encerramento do procedimento de Backup;
  • Força o uso da opção Format em conjunto com a opção Mirror para realização do Backup;
  • Funcionalidade presente somente nas edições Enterprise do Microsoft SQL Server 2005, 2008 ou R2; e
  • Possibilidade de Espelhamento de Backup em fita removida em versões futuras.
A grande funcionalidade do espelhamento, nada mais é que seu banco Mirror seja de contingência atualizado momentâneo.

Bom é isso ai, vou postar mais tópicos referente a backups de espelhamentos e clones de bancos.

quarta-feira, 19 de fevereiro de 2014

Big Data


Bom vamos falar do Big Data, que vem sendo cada vez mais um grande mistério para a humanidade.

Para você ter uma simples definição existe uma ideia de como funciona a grande lenda das tecnologias da informação, o Big Data se trata de um conceito, no qual o foco é o grande armazenamento de dados e maior velocidade. Podemos dizer que o Big Data se baseia em 5V’s velocidade, volume, variedade, veracidade e valor.

Você deve estar curioso pensando como assim 5V's e como funciona.

Nada mais o Big Data é o conjunto de soluções tecnológicas capaz de lidar com dados digitais em volume, variedade e velocidade inéditos até hoje. Na prática, a tecnologia permite analisar qualquer tipo de informação digital em tempo real, sendo fundamental para a tomada de decisões.

Um dos grande motivo da criação do Big Data, foi vários estudos onde pode ser uma arma contra os problemas socioeconômicos.

Com a globalização e o modelo “just in time” a expansão virtual se tornou necessária. Assim se tornou a ultima década de 2000, onde houve uma crescente de dados exponencial que já preocupam os especialistas pela falta de espaço.

Segundo a IBM em 2008 foram produzidos cerca de 2,5 quintilhões de bytes todos os dias e surpreendentemente 90% dos dados no mundo foram criados nos últimos dois anos, decorrente a adesão das grandes empresas à internet, como exemplo as redes sociais, dados dos GPS, dispositivos embutidos e móveis.

A grande novidade das soluções de Big Data é lidar também com os chamados dados não-estruturados, que até então só podiam ser compreendidos por pessoas.

Exemplos: Tweets, posts em blogs, facebook, Vídeos e etc.

Esses dados não-estruturados representam uma grande fatia em nosso mundo entre as nossas tecnologia como 85% das informações com as quais as empresas lidam hoje.

O mercado de Big Data vem crescendo ao ano quase cerca de 40%.

A quantidade global de dados digitais deve crescer juntamente com o Big Data cerca de 1,8 Zettabyte.

Obs.: Compare.

1 Zettabyte é igual
1.000.000.000.000.000.000.000 bytes

1 Gigabyte é igual
1.000.000.000 bytes

Alguns exemplos onde foi aplicado a tecnologia do Big Data e surgiu muito sucesso.

A companhia Skybox tira fotos de satélite e vende a seus clientes informações em tempo real sobre a disponibilidade de vagas de estacionamento livres numa cidade em determinada hora ou quantos navios estão ancorados no mundo neste momento.

Em busca dos melhores lugares para instalar turbinas eólicas, a dinamarquesa Vestas Wind analisou petabytes de dados climáticos, de nível das marés, mapas de desmatamento etc. O que costumava levar semanas durou algumas horas.

A Sprint Nextel saltou da última para a primeira posição no ranking de satisfação dos usuário de celular nos EUA ao integrar os dados de todos os seus canais de relacionamento. De quebra, cortou pela metade os gastos com call center.

Bom esses são alguns pequenos exemplos da mostra da utilização do Big Data.

Acho que é isso pessoal, o Big Data é um assunto bem abrangente, logo irei realizar mais posts referente ao mesmo com mais informações da grande lenda Big Data. Espero que tenha os ajudado.

terça-feira, 18 de fevereiro de 2014

Locks em Banco de Dados

Primeiramente o que é um Lock?

A palavra já fala é travar.

Bom vamos falar um pouco mais o que envolve esse travamento em um banco de dados.

Em vários DataBases quando executamos alguma operação DML (update, insert, delete) nós estamos lockando os dados para a edição, isto impede que as aplicações e/ou até mesmo usuários não realizarem alteração na mesma tabela/linha que você. Lembramos que existe o lock de tabela e o lock de linha.

O lock pode causar travamento da aplicação por qualquer usuário client que estiver realizando algum processo de DML sendo normal, porém se outro dado foi relacionado juntamente a mesma tabela e a mesma linha onde foi disponibilizado um lock ele pode gerar uma parada sem resposta do update, insert, delete e etc levando o travamento da aplicação e prejudicando todo o ambiente da execução.

Vários bancos tem como critério em utilizar alguns mecanismo para bloquear a alteração de um mesmo dado, originada por diversas conexões. Quando é criada uma requisição de acesso a um determinado dado em um database, o banco deve garantir à essa requisição o acesso irrestrito (lock) ao dado, evitando a possibilidade de corrupção do dado ou um erro do sistema. Somente termina o evento locado em após realizar (Commit) ou um (Rollback).

Dentro de um lock existem 2 situações como: 

Shared Lock: Shared Locks são criados quando uma requisição de leitura é enviada a um objeto. Múltiplos Shareds Locks podem ser emitidos a um mesmo objeto, permitindo que mais de um processo possa ler o dado.

Exclusive Lock: irá “Lockar” o objeto, para que ele possa ser modificado, e irá bloquear todas as demais requisições ao mesmo objeto, seja de leitura ou modificação.

Lembrando novamente que um lock é normal onde sempre existirá para garantir o dado coerente no banco, os locks de travamento são relacionando a lentidão em banco ou até mesmo aplicação que esteja gerando o lock devido uma falha de gerenciamento do banco simultâneo sem sucesso.

Locks podem ocorrer a nível de linhas, páginas de dados e tabelas.

Também existem outros meio de travamento como Blocks e Deadlocks, onde mais para frente irei postar algo relacionado a fundo nesse critério.

sábado, 5 de outubro de 2013

O que é RAID?


RAID? Pode utilizar banco de daods, bom vamos lá.

Bom vamos falar de Raid e explicar um pouco de armazenagem focando banco de dados. Vamos entender um pouco sobre o que é
RAID 0 - RAID 1 - RAID 5 e Spannin.

Redundant Array of Independent Drives, também denominado Redundant Array of Inexpensive Drives, mais conhecido como simplesmente RAID ou ainda em português: Conjunto Redundante de Discos Independentes ou também Conjunto Redundante de Discos Econômicos ou ainda Arranjo Redundante de Discos Independentes, é um meio de se criar um sub-sistema de armazenamento composto por vários discos individuais, com a finalidade de ganhar segurança e desempenho.

Popularmente, RAID seriam dois ou mais discos (por exemplo, HD ou disco rígido) trabalhando simultaneamente para um mesmo fim, por exemplo, citando o exemplo de RAID-1 logo abaixo, serviria como um espelhamento simples, rápido e confiável entre dois discos, para fazer o backup de um disco em outro. Apesar do RAID oferecer segurança e confiabilidade na adição de redundância e evitar falhas dos discos, o RAID não protege contra falhas de energia ou erros de operação. Falhas de energia, código errado de núcleo ou erros operacionais podem danificar os dados de forma irrecuperável.

Surgindo em 1988, RAID foi proposto por David A. Patterson, Garth A. Gibson e Randy H. Katz na publicação "Um Caso para Conjuntos de Discos Redundantes Econômicos (RAID)". Publicado na Conferência SIGMOD de 1988: pp. 109–16.

Bom Raid possui vários níveis e são as várias maneiras de combinar discos para um fim. Vamos lá.



RAID 0 - RAID 1 - RAID 5 e Spanning


RAID 0


RAID 0 - Segmentação (stripping) é um método de mapeamento de dados sobre o meio físico de um arranjo, que serve para criar um grande dispositivo de armazenamento. Os dados são subdivididos em segmentos consecutivos ou stripes que são escritos seqüencialmente através de cada um dos discos de um arranjo. Cada segmento tem um tamanho definido em blocos.

Um arranjo desse tipo pode oferecer uma melhor performance, quando comparada a um disco individual, se o tamanho de cada segmento for ajustado de acordo com a aplicação que utilizará o arranjo:

Em um ambiente com uso intensivo de E/S ou em um ambiente de banco de dados onde múltiplas requisições concorrentes são feitas para pequenos registros de dados, um segmento de tamanho grande é preferencial. Se o tamanho de segmento para um disco é grande o suficiente para conter um registro inteiro, os discos do arranjo podem responder independentemente para as requisições simultâneas de dados.

Em um ambiente onde grandes registros de dados são armazenados, segmentos de pequeno tamanho são mais apropriados. Se um determinado registro de dados extende-se através de vários discos do arranjo, o conteúdo do registro pode ser lido em paralelo, aumentando o desempenho total do sistema.


RAID-1


RAID-1 - A forma mais simples de arranjo tolerante a falhas é o RAID-1. Baseado no conceito de espelhamento (mirroring), este arranjo consiste de vários grupos de dados armazenados em 2 ou mais dispositivos. Apesar de muitas implementações de RAID-1 envolverem dois grupos de dados (daí o termo espelho - mirror), três ou mais grupos podem ser criados se a alta confiabilidade for desejada.

Se ocorre uma falha em um disco de um arranjo RAID-1, leituras e gravações subseqüentes são direcionadas para o(s) disco(s) ainda em operação. Os dados então são reconstruídos em um disco de reposição (spare disk) usando dados do(s) disco(s) sobreviventes. O processo de reconstrução do espelho tem algum impacto sobre a performance de E/S do arranjo, pois todos os dados terão de ser lidos e copiados do(s) disco(s) intacto(s) para o disco de reposição (spare disk).

RAID-1 oferece alta disponibilidade de dados, porque no mínimo 2 grupos completos são armazenados. Conectando os discos primários e os discos espelhados em controladoras separadas, pode aumentar a tolerância a falhas pela eliminação da controladora como ponto único de falha.
Dentre os não híbridos, este nível tem o maior custo de armazenamento por requerer capacidade suficiente para armazenar no mínimo 2 grupos de dados. Este é melhor adaptado para servir pequenas base de dados ou sistemas de pequena escala que necessitem confiabilidade.


RAID-5


RAID-5 - Este tipo de RAID largamente usado funciona similarmente ao RAID 4, mas supera alguns dos problemas mais comuns sofridos por esse tipo. As informações sobre paridade para os dados do arranjo são distribuídas ao longo de todos os discos do arranjo, ao invés de serem armazenadas em um disco dedicado.

Essa idéia de paridade distribuída reduz o gargalo de escrita (write bottleneck) que era o único disco de um RAID-4, porque agora as escritas concorrentes nem sempre requerem acesso às informações sobre paridade em um disco dedicado. Contudo, a performance de escrita geral ainda sofre por causa do processamento adicional causado pela leitura, recálculo e atualização da informação sobre paridade.

Para aumentar a performance de leitura de um arranjo RAID-5, o tamanho de cada segmento em que os dados são divididos pode ser otimizado para a aplicação que estiver usando o arranjo. A performance geral de um arranjo RAID-5 é equivalente ao de um RAID-4, exceto no caso de leituras seqüenciais, que reduzem a eficiência dos algoritmos de leitura por causa da distribuição das informações sobre paridade.

Como em outros arranjos baseados em paridade, a recuperação de dados em um arranjo RAID-5 é feita calculando a função XOR das informações dos discos restantes do arranjo. Pelo fato de que a informação sobre paridade é distribuída ao longo de todos os discos, a perda de qualquer disco reduz a disponibilidade de ambos os dados e informação sobre paridade, até a recuperação do disco que falhou. Isto pode causar degradação da performance de leitura e de escrita.


Sobre o Spanning (Linear)


Spanning, que não é um modo RAID, combina todas as unidades do sistema em um grande volume, de modo que elas atuem como uma unidade gigante. As unidades são preenchidas uma a uma. A vantagem de usar este modo é que você pode adicionar mais unidades sem precisar reformatar o sistema.




Bom pessoal acho que consegui passar um pouco sobre RAID's.

A grande ideia é o armazenamento de banco de dados porém alguns ambientes não tem um desempenho bom devido arquitetura, Mas segue a dica e espero que ajude.

História Apache Cassandra - NoSQL

Banco de dados  Apache Cassandra

Banco de dados  Apache Cassandra

O banco de dados Cassandra “Apache” é a escolha certa quando você precisar de escalabilidade e alta disponibilidade, sem comprometer o desempenho.
Escalabilidade linear e comprovada tolerância a falhas em hardware e infraestrutura em geral. A nuvem tornam a plataforma perfeita para dados de missão crítica como um grande exemplo de um sistema que utiliza o Cassandra é o Facebook e atualmente é mantido pela Apache. O banco de dados Cassandra tem um grande privilégio para replicar em vários servidores, proporcionando tudo isso uma pequena latência para seus usuários, também saiba mais que você pode sobreviver a quedas regionais sem comprometer o ambiente todo. 

O Cassandra é um projeto de sistema de banco de dados distribuído altamente escalável de segunda geração, que reúne a arquitetura do Dynamo, da Amazon e modelo de dados baseado no BigTable, do Google.

O Cassandra inicialmente foi criado pelo Facebook, que abriu seu código-fonte para a comunidade em 2008. Agora é mantido por desenvolvedores da fundação Apache e colaboradores de muitas empresas.

Modelo de dados do Cassandra oferece a conveniência de índices de coluna com o desempenho de atualizações de log-estruturadas, um forte apoio para a desnormalização e visões materializadas e poderoso built-in cache.

Performace: 

Cassandra supera consistentemente alternativas NoSQL populares benchmarks e aplicações reais, principalmente por causa das escolhas arquitetônicas fundamentais.
A ideia desse modelo é estar dando prioridade há uma alta disponibilidade e escalabilidade além de um alto grau de performance.

Também possui um alto nível de armazenamento, com o objetivo da disponibilidade boa parte desse modelo usam memória principal e durante um período de tempo são jogados no disco rígido, alguns modelos trabalham 100% com memória principal.  

Ao descentralizado o Cassandra em instâncias regionais ele não há pontos únicos de falha. Não há pontos de estrangulamento da rede. Cada nó no cluster é idêntica.

Cassandra possui um modelo de persistência com a uma necessidade de se ganhar mais performance principalmente no trabalho com grandes blocos de dados foi criado os bancos que usam este princípio de dados como BASE.

Comprovado a ótima performance do banco de dados NoSQL Cassandra.

Cassandra está em uso em Netflix, eBay, Twitter, Urban Airship, Constant Contact, Reddit, Cisco, OpenX, Digg, Cloudkick, Ooyala, e mais empresas que possuem grandes conjuntos de dados ativos. O maior cluster Cassandra conhecido tem mais de 300 TB de dados em mais de 400 máquinas.

Tolerâncias a falhas:

Os dados são automaticamente replicados para vários nós para tolerância a falhas. Replicação em vários centros de dados é suportado. Nós com falha pode ser substituído sem tempo de inatividade. Mesmo ocorrendo falhas não irá afetar o ambiente de utilização.
Cassandra possui uma grande durabilidade sendo adequado para aplicações que não podem dar ao luxo de perder dados, mesmo quando alguma instância fique fora levando alguns dados para baixo ele não perde o ambiente todo.

Controle:

Cassandra tem vários meios de controle, como.
Replicação síncrona ou assíncrona para cada atualização.
Operações assíncronas altamente disponíveis são otimizados com recursos como Handoff.

Bom é isso ai, eu recomendo para quem tem uma aplicação com alto nível de complexidade na nuvem. Banco de dados ótimo.

 Copyright © 2008-2010 All Right Reserved - Todos os Direitos Reservados Elder Stroparo