Replicação assíncrona do SQL 2008 com site pai

1

Eu tenho o SQL 2008 instalado na VM do Win 2008 em um hardware que está na sub-rede de (pai) 192.168.0.0.24 e o segundo site tem hardware semelhante com win2008 + SQL2008 em 10.1.1.0/24 (filho) e terceiro está em 172.16.1.0/24.

Queremos saber como habilitar a replicação do SQL 2008 em nível de bloco de um site para outro e tenho vpn ipsec do link T1.

Meu objetivo é o banco de dados de site filho de 1 dia no site pai e existe alguma maneira de o banco de dados poder ser replicado no nível do bloco, em vez de replicar o banco de dados inteiro. Existem 3 bancos de dados com 15 GB, 12 GB e 1 GB. Eu posso iniciar copiando manualmente e não tenho certeza de como configurar a replicação assíncrona do banco de dados entre filho para site pai.

Por favor, ajude e seja zero no SQL 2008

    
por ganesh 12.11.2012 / 07:24

1 resposta

0

Da sua pergunta, não está totalmente claro para que servem os sites-filhos. Os sites filhos para recuperação de desastres são apenas cópias de leitura dos dados principais ou você precisa atualizar as cópias filhas e fazer as alterações retornarem ao pai?

O SQL Server não fornece diretamente replicação em nível de bloco de qualquer tipo. Todos os recursos de replicação do SQL Server são de nível de dados. Você estaria fazendo pulls completos o tempo todo ou enviando mudanças, dependendo exatamente do que você precisa.

O SQL Server possui outras tecnologias relevantes além dos recursos que chama de "replicação". Essas tecnologias são Espelhamento de banco de dados, Grupos de disponibilidade sempre ativos e Envio de log. Exatamente o que você pode usar depende muito do que você está tentando fazer e da sua familiaridade com o SQL. Se você estiver interessado apenas em recuperação de desastres ou talvez em cópias somente leitura, a coisa mais simples a fazer é provavelmente o envio de logs. O envio de logs tem sido o mais longo, funciona em qualquer versão do sql server e, na verdade, é bem simples, sob os capítulos.

Normalmente, a replicação em nível de bloco é tratada pelo armazenamento do smart SAN de algum tipo (o Vmax e o Symetrix lembram primeiro, mas há muitas outras opções) ou você pode usar algo como o Steeleye do DataKeeper, que é apenas software.

A replicação em nível de bloco é normalmente unidirecional, com um sistema primário e um secundário. Eu nunca vi um sistema com dois secundários, eu não sou um especialista em armazenamento, mas eu sou um cara de SQL. Observe também que nas configurações do SQL Server que usam replicação em nível de nível de bloqueio (via SAN ou tecnologia semelhante), o esquema é realmente o de um cluster de failover passivo ativo e as cópias "filhas" geralmente não estão disponíveis para qualquer uso.

Independentemente do método de replicação, todos os dados deverão ser enviados do pai para o primeiro filho, antes que a replicação possa realmente começar. Depois disso, os sites filhos receberiam apenas alterações nos dados. Você diz que pode copiar manualmente os dados. Normalmente, a primeira cópia dos dados é feita usando algum mosto de ferramenta de gerenciamento que está vinculado a qualquer produto que você esteja usando. Você não pode simplesmente copiar coisas de uma linha de comando usando as ferramentas comuns do Windows.

Uma linha T1 tem uma largura de banda de 1,544 mbit / seg. Se minha matemática estiver correta, isso significa 694,8 MBytes / hora. Serão necessárias aproximadamente 42,27 horas para transferir esses três bancos de dados pela primeira vez. Isso não é muito rápido.

Se os seus dados obtiverem muitas alterações, é muito possível que o 1,544 mbit / seg não seja rápido o suficiente para acompanhar. Se você fizer algo como executar um comando reindex, que poderia alterar muitos dados em um cenário de replicação de blocos (mas não mudaria nada em um cenário de replicação de dados), a replicação quase certamente ficará para trás. Se você estiver executando de forma assíncrona, provavelmente haverá algum tipo de buffer de gravação (uma fila de gravação ou cache de gravação) que aceitará e manterá as alterações no lado pai até que elas possam ser enviadas para o lado filho, mas o tamanho do o buffer pode não ser grande o suficiente para conter todos seus dados. Depois que o buffer ficar cheio, você estará efetivamente executando em sincronia ou seu sistema estará perdendo dados (assim destruindo seus bancos de dados).

    
por 12.11.2012 / 16:15

Tags