Lucas's profileLucas Souza [MCP | MCTS ...PhotosBlogListsMore Tools Help

Blog


    August 19

    SQL Server 2008 R2

     


        Gostaria de indicar á todos que a Microsoft lançou o SQL Server 2008 R2, no entanto vale lembrar que é uma versão preview e está dísponivel apenas para assinantes TechNet e MSDN, lembrando que também o público tem a permisão de efetuar o download e por enquanto só possuí a versão Inglês(English).
        Esta versão nos garante termos mais produtividade e redundância dos dados gerenciados na aplicação, sendo assim SQL Server 2008 R2 facilita com que os usários construa ricas organizações de relatórios garantindo assim excelentes fontes de dados.

    Efetue o download do SQL Server 2008 Aqui:
    Download the CTP

     

    []´s

    Lucas Souza

    June 19

    Trabalhando com Database Snapshot (Parte 02)

    Boa Tarde Pessoal,

    No artigo anterior descrevi á respeito a estrutura interna do Database Snapshot a qual é uma feature que tem seu objetivo de ‘criar um espelhamento do banco de dados’, lembrando que o Database Snapshot está dísponivel em edições 2005 adiante, além disso uma das considerações principais é que só pode ser utiliza em versões Enterprise.  Ao termos entendido rapidamente como funciona á estrutura interna dessa feature é necessário também sabermos como gerenciar-la em nossa aplicação.

    Para criar o Database Snapshot precisamos utilizar a instrução CREATE DATABASE em seguida utilizar a cláusula AS SNAPSHOT OF, conforme foi escrito no artigo interior uma das melhores práticas ao criarmos nosso Database Snapshot é definirmos o nome por um período, seja por horário ou por dias da semana.

    -- Database Snapshot Definido por tempo(horas)
    CREATE
    DATABASE Adv_Snapshot0700 ON

    ( NAME = AdventureWorks2008_Data,

      FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\Adv_Snapshot0700 .ss' )

    AS SNAPSHOT OF AdventureWorks2008;

    GO

    Após termos feito a criação do nosso Database Snapshot se precisarmos por acaso efetuar alguma consulta em uma tabela dentro do banco de dados basta apenas se posicionarmos e executar o que for necessário.

    USE Adv_Snapshot0700

    SELECT TOP 10 ProductID,

                        Name,

                        ProductNumber

                        FROM Production.Product

                        ORDER BY

                        Name
    GO

    Percebam que, me posicionei no banco de dados Snapshot ‘Adv_Snapshot0700’ conforme criei acima, se por acaso você alterar algum registro do banco de dados fonte ‘source’ o Database Snapshot não irá sofrer nenhuma alteração.

    Depois de termos criado o Database SnapShot se precisarmos em breve deletar basta utilizarmos a cláusula DROP DATABASE, lembrando que todos os arquivos associados ao snapshot também irá ser deletado.

    -- Database Snapshot |  Deletado
    DROP
    DATABASE Adv_Snapshot0700

    E se por acaso precisarmos restaurar o Database Snapshot já criado no nosso SGBD basta também utilizarmos a cláusula abaixo:

    RESTORE DATABASE DB_Snapshot0700 from

    DATABASE_SNAPSHOT = 'DB_Snapshot0700'

    GO

    Em muitas situações é bastante útil implementarmos essa feature, um dos cenários mais pensados e utilizados  é aonde envolve um ambiente de teste á qual é utilizado apenas banco de dados e assim sofrem muitas atualizações simultâneas, todavia ao utilizar o Database Snapshot podemos obter agora uma maior confiabilidade em nossos dados, assegurando-se assim que os dados afetados pelo Database Snapshot não irá afetar o banco de dados fonte ’, sendo assim podemos obter agora um ambiente de teste mais confiável e efetuarmos o que for necessário em relação á operações de update,delete,insert.

     []’s
    Lucas Souza

     
    June 17

    Trabalhando com Database Snapshot (Parte 01)

    Boa Noite Pessoal,

    Ultimamente tenho percebido que muitos usuários á não conhecerem o SQL Server acham que é apenas um banco de dados ou algo similar á isso, o que eu tenho á dizer é que: o SQL Server as vezes pode ir mais além do que imaginamos, sendo assim podemos utilizar essa ferramenta tanto para criar/gerenciar nossos banco de dados como também para gerar relatórios, integrar diversas outras fontes de dados, Exportar dados interno do banco para arquivos excel entre outras diversas funções, se no caso fosse descrever do que o SQL Server é capaz eu passaria a noite falando as suas funcionalidades, sendo assim posso dizer que fui igual á esses usuários em relação á não ter uma visão de que o produto oferece e hoje sei que o SQL Server vai muito mais além do que um banco de dados e ainda por sí é uma excelente ferramenta á qual nos oferece muitas features das quais podem ser utilizada dia após dia em nossa aplicação.

    Database Snapshot não é uma feature nova no SQL Server 2008, no entanto foi introduzida no SQL Server 2005 e está dísponivel apenas para versões Enterprise, essa feature tem seu objetivo de utilizar ‘copy-on-write’ á qual faz uma cópia do seu banco de dados e armazena na pasta ‘Database Snapshots’, todavia algumas considerações em relação á essa feature é preciso termos em mente, por exemplo:

    ·         Apenas leitura;

    ·         Visão estática do seu banco de dados;

    ·         Requer nome único;

    ·         Precisa está na mesma instância do banco.

     

     

    Se por acaso depois de efetuarmos um Snapshot do nosso banco de dados original e depois executarmos alguma atualização por exemplo no banco de dados fonte, o banco de dados criado ‘Snapshot’ não irá sofrer á atualização feita pelo banco de dados fonte, todavia quando criamos um snapshot do banco de dados é criado continuamento o  ‘log sequence number’ (LSN) na fonte do banco de dados e assim o SQL Server roda snapshot em modo recovery desde de que a transação não seja comitada.

    Esta figura representa que se nenhuma alteração for efetuada no banco de dados fonte a operação de leitura do banco de Dados Snapshot criado será igual á página original do banco de dados fontes pelo qual fizemos o Snapshot.

     

    Esta figura ilustra que após á página ter sido alterada, a operação de leitura do banco de dados Snapshot ainda irá continuar acessando a página original, a qual foi armazenada no arquivo ‘sparse’, no entanto esta figura representa a operação de leitura do Snapshot acessando a pagina depois de ter sido atualizada no banco de dados fonte.

     

     

    Esta figura ilustra o modelo de dois contrastes atualizados por tamanho pelo banco de dados Snapshot.

     

     

    Uma das melhores considerações ao utilizar essa feature é nomear o Database Snapshot criado com um período de tempo definido por turno ou mesmo por hora, por exemplo:

    Definido por tempo

     * BancoDeDados_Snapshot_0700;
     * BancoDeDados_Snapshot_1500;
     * BancoDeDados_Snapshot_2200.

    Definido por turno

     * BancoDeDados_Snapshot_Manha;
     * BancoDeDados_Snapshot_Tarde;
     * BancoDeDados_Snapshot_Noite.

    Ao definirmos um período de intervalo correto para cada um do nosso cenário se por acaso quisermos busccar por alguma informações bastaria pegar o banco de dados correto para o nosso uso e  se precisarmos buscar por alguma informação relacionada ao Database Snapshot podemos utilizar o cátalog view sys.databases, ou melhor:  USE DatabaseSnapshot; SELECT * FROM sys.databases.

     

    []'s

    Lucas Souza