sexta-feira, 8 de março de 2013

Banco de Dados - SQL Server 2005


SQL Server Replication


 Passo-a-Passo Este artigo é uma explicação passo-a-passo de como implementar uma replicação de dados do tipo Merge Replication utilizando o SQL Server 2005 e como “consumi-la” utilizando uma base de dados SQL Server Compact Edition. Este artigo é uma explicação passo-a-passo de como implementar uma replicação de dados do tipo Merge Replication utilizando o SQL Server 2005 e como “consumi-la” utilizando uma base de dados SQL Server Compact Edition. Criando uma nova Publicação Primeiramente iremos criar uma base de dados chamada MERCADO, e inserir duas tabelas com um relacionamento simples entre elas nesta base de dados: uma tabela de PRODUTOS e uma outra de CATEGORIAS de Produtos, podemos ver suas respectivas estruturas nas figuras 1 e 2.

Figura 1 


Figura 2



O segundo passo é popular estas duas tabelas para que em um primeiro sincronismo com o “Subscriber” além da estrutura ser criada, já haja uma carga de dados inicial, as tabelas foram populadas manualmente conforme as figuras 3 e 4.


Figura 3

Figura 4


Agora sim, estando criada a nossa base de dados, iremos iniciar o processo de publicação desta base. Para isso devemos clicar com o botão direito do mouse em “Local Publications” dentro da pasta “Replication” no Object Explorer, como podemos ver na figura 5.

Figura 5


 Se esta for a primeira vez que fizemos uma publicação no nosso servidor SQL ele irá mostrar as telas representadas nas figuras 6, 7 e 8. Estas telas somente aparecerão na primeira vez que uma publicação for feita em nosso servidor. Na figura 6, iremos decidir se este servidor o qual estamos fazendo a publicação vai ser o seu próprio distribuidor ou se vai utilizar um servidor adicional (já configurado para ser distribuidor) para distribuir suas replicações.

Figura 6 


 Após, teremos que escolher o local onde ficarão os “Snapshots” gerados pela nossa publicação, é necessário que seja em um diretório publicado no IIS para que se possa obter acesso via rede interna ou até mesmo pela internet. (Figura 7)

Figura 7

 A última tela de configuração da distribuição serve para que se possa escolher se o SQL Server Agent inicia automaticamente quando o computador for iniciado ou se você deseja iniciá-lo manualmente, observando que para que o Agent seja iniciado automaticamente, o usuário “SQL Server Service” deve ter permissões de administrador nesta máquina (Figura 8).

Figura 8

Tendo sido feitas as configurações de distribuição para a nossa replicação, apartir de agora iniciaremos o processo de publicação propriamente dito. Primeiramente devemos escolher a base a qual vai ter seus dados replicados, neste caso a base é “MERCADO” (Figura 9).

Figura 9

Na próxima tela (Figura 10) podemos escolher entre todos os tipos de replicação do SQL Server, logo abaixo há uma descrição sucinta sobre o tipo selecionado (para maiores informações recomendo meu outro artigo “Introdução á SQL Server Replication”). Neste caso escolheremos Merge Replication.

Figura 10

 Logo após esta etapa devemos escolher quais tipos de Banco de Dados podem acessar esta publicação (Figura 11).Como o foco do artigo é SQL Server Compact Edition, escolheremos somente este, mas poderíamos escolher juntamente todos os tipos necessários sem problema algum.

Figura 11


Na próxima tela devemos escolher os artigos (articles) que serão publicados, como só temos duas tabelas na nossa base, e elas têm um relacionamento então selecionaremos as duas tabelas (Figura 12).

Figura 12

A próxima tela é uma espécie de aviso, dizendo que serão adicionados aos campos das tabelas existentes uma coluna nova do tipo uniqueidentifier.(Figura 13).

Figura 13


Agora, temos a possibilidade de incluir filtros na publicação, para que sejam publicados apenas os registros que queremos. É possível fazer uma publicação dinâmica, como por exemplo, queremos que determinados produtos vão somente para a base de dados de um determinado vendedor então filtramos pelo HOST_NAME que deve ser único para cada base de dados SQL Server CE, além disso também há a possibilidade de publicar apenas algumas colunas específicas, muito úteis em aplicações Móveis onde o volume de dados deve ser menor, entretanto neste caso não aplicaremos filtros. Depois devemos setar o Snapshot Agent para criar os primeiros Snapshots, neste momento, adicionalmente podemos Schedular horários para que ele gere novos Snapshots(Figura 14).

Figura 14

O último passo para a publicação é a seleção de um nome, neste caso como é a publicação da base MERCADO o nome será PUB_MERCADO. Ao finalizar esta etapa será mostrada uma tela demonstrando o Status da publicação (Figura 15).

Figura 15

Pronto aí está a nossa publicação criada e pronta para receber assinantes(Figura 16).

Figura 16

Assinando uma Publicação Existente Figura 17 Após a criação vamos abrir esta base no Microsoft SQL Server Management Studio, para isso selecionamos SQL Server Compact Edition como Server Type e localizamos o nosso arquivo Mercado_Compact.sdf no diretório em que o criamos(Figura 18).

Figura 18


O próximo passo é criar a Assinatura propriamente dita, para isso clicamos com o botão direito na pasta “Subscriptions” dentro de “Replication” e escolhemos a opção “New Subscription”.Note que temos apenas a opção de Subscription, isso ocorre porque a base de dados SQL Server Compact Edition não possui a opção de Publicação(Figura 19).

Figura 19

Agora selecionamos a publicação que queremos fazer a assinatura, neste caso é a PUB_MERCADO do servidor Solucoes1(Figura 20).

Figura 20

Depois colocamos um nome na assinatura, aqui colocamos “ASS_MERCADO”, note que há um campo para se setar o HOST_NAME, para que haja filtragem, como não estamos filtrando campo nenhum aqui é desnecessário preenche-lo.(Figura 21)

Figura 21

Depois desta etapa, devemos dizer qual é o diretório virtual onde está a publicação, aqui será a URL: http://10.10.100.140/replication que corresponde ao D:\Replication setado anteriormente no momento da configuração da distribuição.Selecionamos também que iremos nos conectar anonimamente ao Web Server(novamente para fins didáticos OK?)(Figura 22).

Figura 22

Agora teremos que setar os dados para conexão com a base remota, aqui usaremos o usuário “sa” e sua respectiva senha (Figura 23).

Figura 23

Após essas pequenas configurações de acesso, e nos mostrado um breve resumo dos dados de acesso a publicação e são demonstrados dois exemplos de código, um em C# e um em VB.NET para que essas configurações sejam feitas programaticamente, em uma aplicação Windows Mobile por exemplo (Figura 24).

Figura 24

Após essas configurações, criação de publicação e de assinatura, basta que sincronize a assinatura, clicando-se com o botão direito sobre ela e “Syncronize”, pronto pode verificar as tabelas que tudo estará lá, dados, estrutura e tudo mais. Agora ao se criar um novo registro nesta base SQL Server CE e mandar que seja feito o sincronismo novamente, como um passe de mágica esse registro estará na base publicada e os novos registros incluídos na base publicada estarão disponíveis na base .sdf. Esta é a Merge Replication, tipo de replicação que mescla dados da publicação e dos assinantes. Espero ter contribuído e abraços,

quarta-feira, 27 de fevereiro de 2013

Virtualização de servidor

O que é virtualização de servidores?
Em uma definição simplificada, a virtualização é um processo que, através do compartilhamento de hardware, permite a execução de inúmeros sistemas operacionais em um único equipamento. Cada máquina virtual criada neste processo é um ambiente operacional completo, seguro e totalmente isolado como se fosse um computador independente. Com a virtualização, um único servidor pode armazenar diversos sistemas operacionais em uso. Isto permite que um data center opere com muito mais agilidade e com um custo mais baixo.
Porque virtualizar servidores?
Quais são os benefícios da virtualização de Servidores? Por que virtualizar?
Na nossa visão, a grande questão é: "Por que não virtualizar?". Veja os inúmeros benefícios desta extraordinária tecnologia:
  • Possibilita a consolidação de servidores físicos, derrubando os custos de operação de um data center. Isto inclui, entre outros, a redução com: upgrades de servidores, gerenciamento, consumo de energia, espaço físico e espaço de armazenamento de dados;
  • Redução no número de equipamentos como PDUs, equipamentos de refrigeração de ar, etc;
  • Redução do número de switches de rede que, aliás, são grandes consumidores de energia;
  • Redução do número de HBAs e switches SAN;
  • Proporciona a real alta-disponibilidade para TODOS os servidores do ambiente, sem a necessidade de qualquer duplicação de hardware ou aquisição das caras licenças de softwares de clusterização;
  • Permite a integração dos ambientes de teste e desenvolvimento com os ambientes de produção, enquanto melhora significativamente o processo de teste/desenvolvimento;
  • Facilita o real "disaster recovery" de TODOS os servidores do ambiente;
  • Elimina a necessidade de janelas para a manutenção de servidores causadas por problemas físicos ou geradas pela necessidade de upgrades;
  • Possibilita o provisionamento de novos servidores em instantes;
  • Aumenta efetivamente o nível de segurança;
  • Pode até mesmo aumentar o desempenho do servidor;
  • Contribui na redução da emissão de CO2 e, portanto, ajuda na redução do aquecimento global.
Quem deveria virtualizar servidores?
A resposta é curta para esta questão: "qualquer empresa com mais de um servidor!"
Existem tecnologias de virtualização para empresas de todos os portes. Inclusive, algumas soluções são "free", permitindo que pequenos escritórios também possam se beneficiar da tecnologia.
As empresas com 10 ou mais servidores possuem bons motivos para pensar em um produto mais robusto, que proporcione soluções de contingência e recuperação de desastres.
Como virtualizar?
Um processo de virtualização ideal, seja ele de servidores, desktops ou aplicações, prevê as seguintes etapas:
Análise e Avaliação
Seja qual for o ambiente que se pretende virtualizar, é importante fazer uma avaliação dos equipamentos e ativos envolvidos no processo. Isto permite o mapeamento granular do ambiente, possibilitando o desenvolvimento do projeto mais adequado para sua empresa.
Planejamento
O sucesso de qualquer projeto depende de um bom planejamento. Isto se aplica, também, à virtualização, seja ela em qual âmbito for. A etapa de avaliação garante que nossa equipe técnica planeje de forma eficaz e eficiente o projeto de virtualização da sua empresa, gerenciando todos os riscos envolvidos e garantindo o sucesso do projeto.
Implementação
Esta experiência reflete diretamente na qualidade dos serviços prestados e evita quaisquer surpresas durante a etapa de implementação, que é cuidadosamente executada e acompanhada pelo gerenciamento de projetos.
Treinamento
Para um gerenciamento seguro do ambiente implantado, o treinamento é parte fundamental deste processo. O treinamento evita problemas e falhas causadas por erros na admi