quinta-feira, 29 de agosto de 2013

O que é Instâncias de Banco de Dados?



O que é Instâncias de Banco de Dados?

Instância nada mais é onde existem os principais componentes de um típico servidor, onde pode ser uma ou mais CPU’s alocando espaço em discos e memória.

Existe alguns casos uma instância sem um banco de dados. Você pode criar uma instância sem problema algum porém, ela não irá realizar acesso a qualquer arquivo de banco de dados, pois ela não está associada com um banco. Ela pode existir sem problema algum mas sem um banco de dados ela seria totalmente inútil.

A importância de uma Instância em um banco de dados serve para poder acessar o banco sem restrições alguma. Você cria sua instância, onde o objetivo é montar ela especificamente para um banco de dados para melhor desempenho.

Você pode configurar múltiplas Instâncias para acessar o mesmo grupo de arquivos ou
banco de dados. Muitas instâncias em vários servidores acessando um banco de dados central permitem escalabilidade e alta disponibilidade de desempenho.

Bom nada mais do que é, ou seja uma instância como falei e volto a falar ela serve para realizar uma combinação da memória e dos processos que são parte de uma instalação em funcionamento e ou a instância é usada para a gerência e acesso ao banco de dados.

Somente informando quando uma instância é iniciada, o banco aloca uma área de memória chamada de SGA (Área do Sistema Global) e inicia um ou mais processos em background. SGA é uma área de memória usada para armazenar informações do banco, que são compartilhadas pelos processos do banco.

Bom é isso ai espero que a explicação seja útil a todos pois sei que poucos entendem uma instância por mais complexa que seja.

terça-feira, 27 de agosto de 2013

Dump

O que é um Dump?

Dump é um programa para sistemas operacionais Unix usado para fazer backups de arquivos de sistema. Este é um dos programas do gênero mais antigos, sendo considerado um dos melhores.

Melhor explicando um Dump nada mais é que um backup.

Vamos entender aprofundadamente utilizando um dump em banco de dados.

Em MySQL você pode usar o seguinte comando (dentro do terminal mysql).

ficaria assim:

Database: meubanco
Host: localhost
Username: nomeusuario
Password: senha

$mysql -h localhost -u nomeusuario -senha meubanco < backup_meubanco.sql

Em Oracle você pode usar o seguinte comando (dentro do terminal Oracle).

ficaria assim: 

Username: user1
Password: senha_do_user1

exp user1/senha_do_user1 file=arquivo_dump.dmp log=log_dump.log

Outro exemplo um pouco diferente mas também é a realização de um Dump.

Vamos pegar um exemplo o SQL Server 2000.

Requisito: É necessário possuir o SQL Server 2000, com a ferramente Enterprise Manager, instalado no ambiente onde o procedimento será executado.

- Configurar a conexão com a sua base de dados na Plug In no seu Enterprise Manager, em ambiente de desenvolvimento por exemplo;

- Clicando com o botão direito do mouse sobre a sua base já configurada clicar em Tasks > Generate SQL Script para copiar todos os Create Tables da sua base remota;

- Utilizar os Create Tables em seu servidor SQL Server local, ambiente de desenvolvimento, para clonar a base de dados remota;

- Clicando novamente com o botão direito do mouse sobre a base clonada selecionar em Tasks > Import Data, e informar os dados de origem da base remota;

- Clicando novamente com o botão direito do mouse sobre a base clonada selecionar Tasks > Backup.  

Bom pessoal acho que é isso uma breve visão como realizar um dump.

Citei somente em MySQL, Oracle e SQL Server 2000.

Outro post irei fazer especificando mais a cada versão de banco de dados.

domingo, 14 de julho de 2013

Arquiteturas dos Bancos de Dados NoSQL

Bom a Arquiteturas dos Bancos de Dados NoSQL é constituida de várias maneiras.


Para explicar melhor a arquitetura dos bancos nosql será comparado com os bancos relacionais, é importante salientar a diferença entre os bancos e o seu uso, uma má escolha no padrão de persistência pode acarretar em  mais horas do que a planejada, além no não atendimento do seu requisito. As aplicações em quase sua maioria é atendida pelo banco relacional seria semelhante a um carro utilitário, que serve para várias  pistas, quando se tem a necessidade de uma maior velocidade e desempenho uma boa opção seria os bancos nosql que seria comparado a um carro de corrida, no entanto eles atendem a casos específicos será  improdutivo colocar um carro de formula 1  em uma pista de rally. 
SQL

Modelo de persistência: Os atuais bancos de dados  tentam explorar ao máximo o modelo A.C.I.D. cujos os princípios são: 

Atomicidade: Trata o trabalho como parte indivisível, ou seja ou tudo feito ou nada feito
Consistência: o  processo deve deixar o banco integro ou não será executado
Isolamento: tratar cada operação como individual
Durabilidade: os processos em caso de sucesso serão permanente 

Armazenamento:   Em função disso ganham certa limitação  nas transações com gigantescos volumes de dados, cargas de trabalhos normais de operações modernas. Essas informações em sua grande maioria  se concentram no disco rígido, gastando alto poder computacional de I/O. 

Acesso da informação: Os bancos relacionais possuem estruturas bem semelhantes e possuem alguns comandos em comuns que é o SQL ANSI, para se conectar e acessar as informações do banco de dados usa-se um driver, Em java, por exemplo, trocar de banco de dados na maioria dos casos resultam em impactos zero para a aplicação, já que basta apenas modificar o driver de conexão de um banco de dados para outro. Nesse tipo de bancos as informações podem ser recuperada de N maneiras a mineração de dados com esses tipos de bancos é bastante fácil. 

Escalabilidade:  Esse modelo trabalha melhor com a escalabilidade vertical que consiste em adicionar mais poder de processamento, memória ou disco em uma máquina,
NOSQL 

Modelo de persistência:  Com a necessidade de se ganhar mais performance principalmente no trabalho com grandes blocos de dados foi criado os bancos que usam o princípio do BASE. A ideia desse modelo é estar dando prioridade há uma alta disponibilidade e escalabilidade além de um alto grau de performance.

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. 

Acesso da informação: No nosql, não existe semelhança nenhum entre os bancos de dados, atualmente pode-se dividir os grupos de bancos de dados em quatro que são: grande tabela, chave-valor, grafos, documentos ( serão explicados melhor no decorrer do artigo) cada um com características específicas e objetivos específicos. Para se conectar ou acessar um desses bancos de dados é usado uma API, então mudanças de bancos de dados causará bastante impacto para a aplicação, mesmo que os bancos de dados sejam do mesmo tipo, por exemplo,de Big Table da Google para cassandra apesar de ambos possuírem o mesmo modelo de banco de dados que é o de grande tabela a mudança de código mesmo que apenas em uma camada (DAO) será relativamente alta, mas a tendência é que daqui a alguns anos cada um dos tipos de banco de dados existem uma implementação de referência semelhante ao JPA. Outra informação importante é que você boa parte dos bancos você recupera a informação apenas a partir de uma chave. 

Escalabilidade: Existem modelos que trabalham tanto na forma vertical tanto na forma horizontal que  é a capacidade de adicionar novas máquinas para, de forma distribuída, aumentar os recursos de processamento, memória e disco.

História do NoSQL

Bom vamos falar sobre a história do NoSQL.


NoSQL nada mais é do que um termo genérico para uma classe definida de banco de dados não-relacionais que rompe uma longa história de banco de dados relacionais com propriedades ACID. Outros termos equivalentes para esta categoria de bancos é NF², N1NF (non first normal form), nested relational, dimensional, multivalue, free-form, schemaless, document database e MRNN (Modelo Relacional Não Normalizado).

Como todos sabem que os bancos de dados que estão sob estes rótulos não podem exigir esquemas de tabela fixa e, geralmente, não suportam instruções e operações de junção SQL.

Onde existem as tendências em arquiteturas de computadores, como a computação na nuvem e a necessidade crescente de prover serviços escaláveis, estão pressionando bancos de dados numa direção onde eles necessitam oferecer escalabilidade horizontal. Bancos de dados NoSQL armazenam os dados com técnicas que visam atender a esse requisito.

Há alguns exemplos proeminentes de softwares de código fechado que atendem estes requisitos, sendo alguns deles Google's BigTable e Amazon's DynamoDB. E alguns exemplos de sofware open-source como Apache Cassandra (originalmente desenvolvido para o Facebook), Apache HBase, LinkedIn's e vários outros.

A História da criação do termo NoSQL foi primeiramente utilizado em 1998 como o nome de um banco de dados relacional de código aberto SQL. Seu autor, Carlo Strozzi, alega que o movimento NoSQL "é completamente distinto do modelo relacional e portanto deveria ser mais apropriadamente chamado "NoREL" ou algo que produzisse o mesmo efeito"
que não possuía uma interface.

O termo NoSQL foi re-introduzido no início de 2009 por um funcionário do Rackspace, Eric Evans, quando Johan Oskarsson da Last.fm queria organizar um evento para discutir bancos de dados open source distribuídos. O nome — uma tentativa de descrever o surgimento de um número crescente de banco de dados não relacionais, que não tinham a preocupação de fornecer garantias ACID — faz referência ao esquema de atribuição de nomes dos bancos de dados relacionais mais populares do mercado: MySQL, MS SQL, PostgreSQL etc.
 
Os Banco de Dados NOSQL  foram criados, principalmente, para resolver problemas com aplicações web que precisam operar com gigantescas cargas de dados além de poder escalar com grande facilidade.

É importante entender que o intuito não é eliminar bancos de dados relacionais, mas oferecer uma alternativa. Pois, durante muito tempo o modelo relacional foi usado como "bala de prata" para todos os problemas de persistência.

domingo, 17 de março de 2013

Tablespaces


Tablespaces é um termo em língua inglesa que designa uma sub-divisão lógica de um banco de dados utilizado para agrupar estruturas lógicas relacionadas. As tablespaces apenas especificam a localização de armazenamento do banco de dados e são armazenadas fisicamente em datafiles, que alocam imediatamente o espaço especificado na sua criação. A primeira tablespace criada pelo Oracle é a System.

Um banco de dados é dividido em unidades lógicas de armazenamento chamadas de tablespaces. Estas unidades agrupam estruturas lógicas relacionadas, por exemplo: Tablespaces comumente agrupam objetos da aplicação simplificando algumas operações administrativas.  

Cada banco de dados é divido em uma ou mais tablespaces.


  • Um ou mais datafiles são criados para armazenar fisicamente os dados de todas as estruturas lógicas de um tablespace.

  • O tamanho total dos datafiles de um tablespace é a capacidade do armazenamento do table space.

  • A capacidade combinada dos tablespaces de um database é a capacidade do database.
Os tablespaces podem estar on-line ou off-line. Um tablespace precisa estar on-line para que os usuários possam acessar suas informações. Os tablespaces podem ficar off-line para manutenção do database.

Bom é isso ai.. somente o conceito real de Tablespaces!

segunda-feira, 11 de março de 2013

Banco de Dados na Nuvem

Base de Dados na Nuvem
Alguem já houve falar em em sistemas da sua empresa está hospedado na web e seu banco de dados está totalmente online, operações como backups,restores, pesquisas , inserções e deleções, tudo realizado através do seu browser.

Pelo fato ainda não houviram falar desta cituação.

Então vamos falar um pouco mais sobre

"Cloud"

Difícil de acreditar? Com conexões de internet mais rápidas e de maior facilidade de acesso, banco de dados na nuvem torna-se cada vez mais atraente além do que esse conceito já está amadurecendo a algum tempo, mais do que você possa imaginar.

Uma breve definição para ficar mais obvio e claro para vocês.

“A computação na nuvem pode ser definida como um modelo para permitir acesso conveniente, sob demanda da rede para um conjunto compartilhado de recursos de computação configurável (por exemplo, redes, servidores, armazenamento, aplicações e serviços) que podem ser rapidamente provisionados e lançados com o mínimo de gestão, esforço ou a interação do prestador de serviços.

Cinco características essenciais:

• Vários tipos de serviço de acordo com a demanda;
• Pool que representa os recursos físicos de um servidor;
• Rápida elasticidade;
• Medições do serviço;
• Acesso via rede de banda larga;

Três modelos de serviços:

• SaaS – Software como serviço;
• PaaS – Plataforma como serviço;
• IaaS – Infrestrutura como serviço;

Quatro modelos de implantação:

• Nuvem publica;
• Nuvem privada;
• Nuvem comunitária;
• Nuvem hibrida;

Em uma tentativa de minimizar o tempo que os profissionais de dados gastam no modo reativo - respondendo a solicitações de usuários com tarefas sem parada de “banco de dados, clone, banco de dados, clone” - algumas organizações estão tomando emprestado conceitos de autoatendimento do domínio de computação em nuvem e indo em direção a um modelo de banco de dados como serviço ou DBaaS, em que usuários podem simplesmente “acessar uma nuvem” e capturar um banco de dados conforme necessário. 

É uma ideia provocante — principalmente para usuários finais. Desenvolvedores de sistemas e de software adoram o controle que eles obtêm com recursos de autoatendimento de DBaaS. Quando eles estão na toada, em vez de esperando que o departamento de TI volte uma semana mais tarde com um banco de dados de desenvolvimento/teste, eles podem solicitar e provisionar recursos imediatamente — mantendo seu ímpeto ativo e suas ideias frescas. 

Para tornar essa visão uma realidade, no entanto, os profissionais de dados nos bastidores devem realizar uma quantia considerável de trabalho no backend. Desenvolver uma nuvem de dados privada e lançar com sucesso DBaaS para usuários finais requer que DBAs considerem diversos fatores, entre eles a infraestrutura de hardware subjacente da nuvem, as “boas práticas” de dados abrangentes a serem implementadas e replicadas pela nuvem e, por fim, a interface de serviços que trará todos esses itens de forma transparente aos usuários finais.

Acessando as nuven

Computação em nuvem refere-se a uma categoria de soluções de tecnologia que permite que usuários acessem recursos de computação (neste caso, recursos de dados) on demand, conforme necessário, sejam os recursos físicos ou virtuais, dedicados ou compartilhados e independentemente de como são acessados (por meio de uma conexão direta, rede local [LAN], rede de longa distância [WAN] ou a Internet). 

Para oferecer DBaaS na nuvem, os departamentos de TI corporativos devem construir e gerenciar uma nuvem de dados corporativa privada — uma plataforma que consiste em hardware de armazenamento, imagens virtuais, esquemas de banco de dados e mais — e disponibilizar essa nuvem a usuários por meio de uma interface de serviços. 

Quando esta infraestrutura estiver instaurada, à medida que necessidades de banco de dados surgem, os usuários podem simplesmente ir para a nuvem, solicitar os recursos que requerem e obter acesso instantâneo a seu próprio banco de dados pessoal on demand. Quando eles não precisarem mais dos ativos de dados, os ativos são reciclados de volta na nuvem para redesignação, em vez de serem deixados desperdiçados e inativos.

sábado, 28 de janeiro de 2012

Servidor de Banco de Dados


Servidor de Banco de Dados

Bom para quem não tem um bom conhecimento de Servidor de Banco de Dados vou explicar um pouco sobre isto.

  • O que é Servidor?
Um Servidor é um sistema de computação que fornece serviços a uma rede de computadores. Esses serviços podem ser de natureza diversa, como por exemplo, arquivos e correio eletrônico. Os computadores que acessam os serviços de um servidor são chamados clientes. As redes que utilizam servidores são do tipo cliente-servidor, utilizadas em redes de médio e grande porte (com muitas máquinas) e em redes onde; a questão da segurança desempenha um papel de grande importância. O termo servidor é largamente aplicado a computadores completos, embora um servidor possa equivaler a um software ou a partes de um sistema computacional, ou até mesmo a uma máquina que não seja necessariamente um computador. A história dos servidores tem, obviamente, a ver com as redes de computadores. Redes permitiam a comunicação entre diversos computadores, e, com o crescimento destas, surgiu a idéia de dedicar alguns computadores para prestar algum serviço à rede, enquanto outros se utilizariam destes serviços. Os servidores ficariam responsáveis pela primeira função. Com o advento das redes, foi crescendo a necessidade das redes terem servidores e minicomputadores, o que acabou contribuindo para a diminuição do uso dos mainframes. O crescimento das empresas de redes e o crescimento do uso da Internet entre profissionais e usuários comuns foi o grande impulso para o desenvolvimento e aperfeiçoamento de tecnologias para servidores.

  • O que é Banco de Dados?

Bancos de dados, ou bases de dados, são coleções de informações que se relacionam de forma que crie um sentido. São de vital importância para empresas, e há duas décadas se tornaram a principal peça dos sistemas de informação. Normalmente existem por vários anos sem alterações em sua estrutura. São operados pelos Sistemas Gerenciadores de Bancos de Dados (SGBD), que surgiram na década de 70. Antes destes, as aplicações usavam sistemas de arquivos do sistema operacional para armazenar suas informações. Na década de 80 a tecnologia de SGBD relacional passou a dominar o mercado, e atualmente utiliza-se praticamente apenas ele. Outro tipo notável é o SGBD Orientado a Objetos, para quando sua estrutura ou as aplicações que o utilizam mudam constantemente.

Explicando melhor..

Com a junção de um Servidor e uma base de Banco você terá um Servidor de Banco de Dados, assim você poderá manipular informações contidas em uma base de banco de dados. Por menor que sejam, possuem quantidades cada vez maiores de armazenagem de dados e informações. Conseguindo manipulação destas informações que se tornam impossível de ser realizada manualmente (via papéis, principalmente), pois sua utilização além de demorada (devido a catalogação dos dados) é passível de erros principalmente ocasionados pelo desgaste do operador em conseguir resgatar informações requisitadas. Nesse sentido, torna-se mais fácil encontrar a informação numa base de dados que recorre a uma das tecnologias de informação de maior sucesso e confiança. Ou seja, as bases de dados estendem a função do papel ao guardar a informação em computadores.

Muitas empresas adotaram o NT/2000 não como uma plataforma de rede, mas como um servidor de banco de dados para alojar servidores SQL Server ou Oracle. Atualmente, muito do trabalho em banco de dados está sendo feito em plataformas NT/2000.

Mas o uso destes servidores de banco de dados com Linux vem crescendo bastante, Para tanto, utilizam-se servidores MySQL ou o PostGresSQL; este último clone de um antigo sistema Unix chamado Ingres.

Num passado recente, muitos administradores de rede não queriam confiar seus preciosos dados a um programa gratuito como o MySQL, mas isto mudou. Atualmente há muitos sites de comércio eletrônico e de grandes Intranets rodando em plataforma Linux, e o MySQL provou ser rápido, estável e confiável, tudo isto com uma grande (enorme) vantagem, é gratuito!


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