NESTE CASO , EU PERCO MEUS DADOS NO SQL SERVER?

MARCOS 18/08/2010 16:30:34
#350603
Colegas,

1.) Eu li num artigo , que se você faz um Recover no MS Sql Server (2005), dando ao nome do Recover o mesmo nome do
Banco De Dados de produção, o Sql Server substitui o Banco De produção, pelo Backup. Digamos que na empresa, o
Backup seja feito somente uma vez ao dia, de madrugada.Isto significa, que se eu for obrigado as 17:00 Hs fazer um
restore, tudo que a empresa fez durante o dia estará perdido???? ( Ja que o Backup é feito uma vez ao dia, de madrugada)


2.) Se numa determinada aplicação os dados forem criticos, como eu poderia no MS Sql Server, ter um Backup a cada intervalo
de por exemplo, 1 hora???
MARCOS 18/08/2010 17:38:59
#350618
Interessante,
fazendo o Backup diferencial, de hora em hora exige menos tempo para ser feito.
Mas, como eu configuro o MS Sql Server, para fazer um Backup diferencial de
hora em hora? Eu não vi na tela de Backup, nenhum parâmetro que me possibilite
configurar o SQL Server 2005 para fazer o Backup, a intervalos assim. Comoi
é possível?

MARCIO.ROGERIO 19/08/2010 10:09:43
#350672
Resposta escolhida
Olá,

o ideal é que você use como opção do banco de dados o modelo de recuperação cheio (full), e faça o backup do log sem inicializálo, no intervalo que você acha que a perca de dados não afete o desempenho da empresa, claro fazendo este backup do log através de um job do Server Agent.

BACKUP LOG [BancoDeDados] TO DISK = N[ô]H:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\\LogBancoDeDados.bak[ô] WITH NOINIT , NOUNLOAD , NAME = N[ô]Back-up Log do BancoDeDados[ô], NOSKIP , STATS = 10, NOFORMAT

Eu faço desta maneira a cada 30 minutos para os bancos que não são críticos, para o ERP faço a cada 15 minutos, pois, caso haja um failover a empresa perde no máximo 14m59s.

E para descarregar os arquivos de backup dos log, para que não fiquem grandes, uma vez por semana, coloco todos em fita, tanto o arquivo do backup completo e também do log, e após isso, faço um backup completo do banco, e outro log com com inicialização.

BACKUP DATABASE [BancoDedados] TO DISK = N[ô]H:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\BancodeDados.bak[ô] WITH INIT , NOUNLOAD , NAME = N[ô]Backup BancoDeDados - Completo[ô], NOSKIP , STATS = 10, DESCRIPTION = N[ô]Backup BancoDeDados - Completo[ô], NOFORMAT
go
BACKUP LOG [BancoDeDados] TO DISK = N[ô]H:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\LogBancoDeDados.bak[ô] WITH INIT , NOUNLOAD , NAME = N[ô]Backup Log BancoDeDados - Limpa Log[ô], NOSKIP , STATS = 10, DESCRIPTION = N[ô]Backup Log BancoDeDados - Limpa Log[ô], NOFORMAT
go

Até,

Rogério.
MARCOS 19/08/2010 13:32:27
#350693
Pessoal,
Desculpe minha ignorância em SGBD.
Mas, pensei que a função do Log fosse somente armazenar as atividades realizadas no BD, quem fez,quando fez,etc...
Por isso, não entendo porque a sugestão do Marcio acima, consegue garantir que eu não perca os dados,fazendo o
Backup a cada 30min do Log.

Por acaso, o Backup do Log, é o suficiente para eu restaurar os dados perdidos???? ( Eu pensei que o único modo seria, fazendo o backup da BD principal)
MARCIO.ROGERIO 19/08/2010 15:53:25
#350720
Olá,

A função do LOG do banco de dados (LDF) é para registrar as transações que irão para o banco físico (MDF) que se referem ao dado propriamente dito, e não para registrar o que um determinado usuário fez/quando/maquina/etc, as movimentação de usuários (inclusão/alteração/deleção), estas movimentações de usuários é normalmente feita através do aplicativo que vai criar um registro em uma tabela ou texto dos movimentos do usuário. E as transações que ficam ou passam pelo log, depende de como é sua opção de recuperação síncrona ou assíncrona, de maneira que o método simples (com checkpoint) a transação passa pelo log e vai para o banco físico não podendo ser revertida com restore, pois após esta passagem, a transação é eliminada do log.
No método cheio (full) a transação se efetiva no banco físico (MDF), mas, ficou também no log (LDF), podendo assim ser revertida na data onde se fez o backup do log.
O log de transações registra todas as alterações realizadas no banco de dados e armazena informações suficientes para permitir que qualquer mudança feita, seja desfeita ou refeita no caso de falha de sistema. Fisicamente, o log de transações é um conjunto de arquivos associados a um banco de dados no momento em que este é criado ou alterado. Os módulos que realizam atualizações de banco de dados gravam entradas de log que descrevem exatamente as alterações feitas. Cada entrada de log é rotulada com um LSN, o qual é garantido ser único. Todas as entradas de log que fazem parte da mesma transação são vinculadas para que todas as partes de uma transação possam ser facilmente localizadas pelas atividades destinadas a desfazer algo e pelas atividades destinadas a refazer algo.

Até,

Rogério.
MARCOS 19/08/2010 16:16:20
#350723
Muito obrigado, Marcio !
Mas vejamos se entendi....

1.) Se eu fizer por exemplo, Backup do Log , a cada intervalo de 1 hora. Se houver qualquer problema com o BD, poderei fazer um Restore e recuperar
o que foi perdido.

Se não for incomodo, fico ainda com duas dúvidas:

a) Como eu faço no SQL Server (2005) para abrir e visualizar um arquivo de Log?

b) Na tela de configuração do do Restore Database do MS Sql Server 2005 existe
Uma opção chamada “Restrict Access To The restored database”. Ou seja, pode-se
Optar por restringir o acesso a base de Dados durante o Restore.Minha dúvida é:

Eu pensava que o Restore, só poderia ser feito com os usuários desconectados. Pode-se fazer um Restore de uma Base De Dados, com os usuários conectados e
manipulando o BD???
MARCIO.ROGERIO 19/08/2010 16:36:44
#350725
Olá,

1) você fazendo os backup[ô]s de log conforme descrevi, você pode voltar o backup até o último ponto de falha ou outro qualquer anterior.

2) Não, o LOG não é legível por nenhum tipo de editor, somente o SGBD pode lê-lo, pois, sua composição é por páginas e extensões, nada pode editá-lo.

3) Quando se restaura um banco é exigido acesso exclusivo, se houver alguma conexão com o banco o restore falha.

Uma breve descrição sobre página de dados, que compõem o MDF e o LDF :

as páginas de dados são estruturas que contêm todos os dados de uma tabela que não sejam texto ou imagem. Assi como acontece com os outros tipos de páginas do SQL, as páginas de dados têm um tamanho fixo de 8 kb (8192 bytes). São compostas de três componentes : o cabeçalho (96 bytes), fileira de dados (o dado propriamente dito) e array de deslocamento de fileira.

Até,

Rogério.
Tópico encerrado , respostas não são mais permitidas