Utilizarei a palavra disco como referência a um disco rígido. Então sempre que você encontrar uma referência a disco, entenda como sendo um disco rígido e não um disquete ou outro tipo de mídia.
Antes que seja possível utilizar um novo disco no Windows, temos que realizar algumas operações sobre o disco. Um dos aspectos que temos que definir é o tipo de armazenamento que iremos utilizar neste disco. No Windows podemos optar entre dois tipos de armazenamento: básico ou dinâmico. Abaixo temos detalhes sobre cada um dos tipos de armazenamento.
- Armazenamento básico: É o tipo de armazenamento que vem sendo utilizado desde a época do DOS. É utilizado por sistemas como o Windows 95, Windows 98, Windows NT Server 4.0 e Windows NT Workstation 4.0. É o tipo padrão no Windows 2000 Server, Windows Server 2003 e no Windows XP, isto é, todos os discos são criados com armazenamento básico. Caso seja necessário, o administrador deve transformá-los para armazenamento dinâmico sem perda de dados. Um disco com armazenamento básico é chamado de Disco básico.
É importante salientar que um disco somente pode ser configurado para um tipo de armazenamento. Não podemos, por exemplo, ter uma porcentagem do disco com armazenamento básico e o restante com armazenamento dinâmico.
No armazenamento básico, o disco é dividido em partições. Uma partição é uma parte do disco que se comporta como se fosse uma unidade de armazenamento separada. Por exemplo, em um disco de 4 GB, posso criar duas partições de 2GB, que na prática se comportam como se fossem dois discos de 2 GB independentes. Em um disco com armazenamento básico, podemos ter Partições primárias, Partições estendidas e Drivers lógicos. Vamos ver detalhes sobre estes elementos.
- Partição primária: O Windows 2000 Server pode utilizar uma partição primária para inicializar o computador, sendo que somente partições primárias podem ser marcadas como ativas. Uma partição ativa é onde o computador procura pelos arquivos de inicialização para efetuar o processo de boot. Um disco somente pode ter uma partição marcada como ativa. Um disco básico pode conter no máximo quatro partições primárias. Considere o exemplo da Figura 3.22, onde um disco de 6 GB foi dividido em quatro partições primárias. Duas de 2 GB e duas de 1 GB. Observe que, para cada partição primária é atribuída uma letra de unidade C:, D: e assim por diante.

Figura 3.22 No máximo podemos ter quatro partições primárias.
- Partição estendida: Podemos ter uma única partição estendida em um disco básico. Partições estendidas são criadas a partir do espaço livre em um determinado disco. Espaço livre é o espaço que não está sendo ocupado por nenhuma outra partição. Por isso é aconselhável, quando da criação de uma partição estendida, que todo o espaço livre seja ocupado. Nós dividimos a partição estendida em segmentos, sendo que cada segmento representará um drive lógico. Devemos atribuir uma letra para cada driver lógico e formatá-los com um sistema de arquivos – FAT, FAT32, NTFS ou NTFS 5. Com o uso de uma partição estendida e drivers lógicos, podemos superar o limite de quatro unidades por disco, limite que é imposto quando utilizamos apenas partições primárias. Considere o exemplo da Figura 3.23, onde temos um disco com três partições primárias (C:, D: e E:), e um volume estendido, no qual foram criados dois drivers lógicos (F: e G:).

Figura 3.23 Utilizando partições estendidas.
Para o Windows 2000 Server ou Windows Server 2003 existem duas partições que são muito importantes. A Partição do Sistema – System Partition – é a partição ativa que contém os arquivos necessários para o processo de boot do Windows 2000 Server. Normalmente é a primeira partição ativa do primeiro disco. A Partição de Boot – Boot partition –, é uma partição primária, ou um driver lógico onde os arquivos do Windows 2000 Server estão instalados, normalmente em um diretório chamado Winnt. Muitas vezes estes conceitos causam uma certa confusão, porque podemos dizer que a “Partição do Sistema contém os arquivos de boot e a Partição de Boot contém os arquivos do Sistema Operacional”. Normalmente, a Partição do Sistema e a Partição de Boot estão na mesma partição, tipicamente no drive C:.
Dependendo da maneira com que as partições são criadas ou combinadas, podemos ter diversos tipos de partições, conforme indicado abaixo:
- Partição do Sistema: Contém os arquivos necessários para o boot do Windows 2000 Server ou Windows Server 2003.
- Partição de Boot: Contém os arquivos do Windows 2000 Server ou Windows Server 2003, tipicamente em uma pasta Winnt.
- Volume set: Neste tipo de partição, combinamos o espaço de duas ou mais partições, no mesmo disco ou em discos diferentes, de tal forma que aparecem para o Windows como uma única unidade. Por exemplo, posso combinar uma partição de 1 GB com outra de 4 GB, para formar uma unidade de 5 GB. O Windows preenche todo o espaço da primeira partição, depois o da segunda e assim por diante. Se uma das partições apresentar problemas, todo o Volume set será perdido. Posso juntar partições de tamanhos diferentes. Não pode conter a Partição do Sistema, nem a Partição de Boot. Não é uma boa opção utilizarmos um Volume set para armazenar os Bancos de Dados do SQL Server 2005. O Volume set não oferece melhorias no desempenho nem tolerância a falhas.
- Stripe set: Neste tipo de partição combinamos espaços iguais de dois ou mais discos; não podendo utilizar duas partições do mesmo disco. Podemos utilizar até 32 partições. Os dados são gravados em todas as partições de uma maneira uniforme, isto é, o espaço de cada partição vai sendo preenchido à medida que os dados são gravados. Não apresenta tolerância a falhas, pois se uma das partições apresentar problemas, todo o Stripe set será perdido. A única vantagem do Stripe set é que o desempenho melhora devido às gravações simultâneas em mais de um disco. Não pode conter a Partição do Sistema, nem a Partição de Boot.
- Mirror set – Raid 1: Permite a duplicação de qualquer partição. Com isso à medida que os dados vão sendo gravados, o Windows, automaticamente vai duplicando os dados na partição espelhada. Pode conter a Partição do Sistema e também a Partição de Boot. O maior inconveniente é que existe um comprometimento de 50% do espaço em disco. Por exemplo, para fazer o espelhamento de uma partição de 2 GB, estaremos ocupando 4 GB em disco. Apresenta tolerância a falhas, pois se uma das partições espelhadas falhar, a outra continua funcionando. Podemos substituir o disco defeituoso e restabelecer o espelhamento. Este tipo de partição só está disponível nas versões de servidor do Windows, tais como o Windows NT Server, Windows 2000 Server e Windows Server 2003.
- Stripe set com paridade – Raid 5: Um Stripe set com paridade é um Stripe set com tolerância a falhas. Junto com os dados, o Windows grava informações de paridade (obtidas a partir de cálculos matemáticos) nos vários discos que formam o Stripe set com paridade. Com isso, no evento de falha de um dos discos, toda a informação do disco com problemas, pode ser reconstituída a partir das informações de paridade dos outros discos. O disco defeituoso pode ser substituído, e a informação nele contida recriada a partir das informações de paridade, contidas nos demais discos do RAID-5. Para que possamos construir um volume deste tipo, um mínimo de três discos é necessário. Porém, se dois discos falharem ao mesmo tempo, não será possível recuperar a informação. Também existem implementações de RAID-5 em hardware, que são mais rápidas, porém mais caras. Esta é uma boa opção para armazenamento dos Bancos de Dados do SQL Server 2005. Este tipo de partição só está disponível nas versões de servidor do Windows, tais como o Windows NT Server, Windows 2000 Server e Windows Server 2003.
- Armazenamento dinâmico: No armazenamento dinâmico, que é somente suportado pelo Windows 2000 Server, Windows XP e Windows Server 2003, é criada uma única partição com todo o espaço do disco. Um disco configurado com armazenamento dinâmico é chamado de “Disco dinâmico”. Um disco dinâmico pode ser dividido em volumes. Um volume pode conter uma ou mais partes de um ou mais discos. Também é possível transformar um disco básico em um disco dinâmico, sem perda dos dados. Podemos ter diferentes tipos de volumes. O tipo de volume a ser utilizado é determinado por fatores tais como espaço disponível, performance e tolerância a falhas. A tolerância a falhas, diz respeito à possibilidade do Windows 2000 Server manter as informações, mesmo no evento de comprometimento de um disco ou volume. Temos os seguintes tipos de volume:
- Volume simples: É formado por espaço de um único disco, e além disso não fornece nenhum mecanismo de tolerância a falhas, isto é, se houver algum problema com o disco onde está o volume, toda a informação será perdida.
- Volume expandido: Pode incluir espaço de até 32 diferentes discos. O Windows começa a preencher o espaço do primeiro disco, após este estar esgotado, passa para o espaço disponível no segundo disco e assim por diante. Não fornece nenhum mecanismo de tolerância a falhas. Se um dos discos que formam o volume apresentar problemas, todo o volume estará comprometido. Também não oferece melhoria no desempenho, uma vez que a informação somente é gravada ou lida em um disco ao mesmo tempo. Não é uma boa opção para armazenamento dos Bancos de Dados do SQL Server 2005, principalmente por que não oferece melhorias no desempenho.
- Volume espelhado (Mirrored volume) ou Raid-1: É formado por duas cópias idênticas do mesmo volume, sendo que as cópias são mantidas em discos separados e sincronizadas, em tempo real, pelo Windows. Volumes espelhados oferecem proteção contra falha, uma vez que se um dos discos falhar, a informação do outro disco pode ser utilizada. O espelhamento pode ser desfeito, o disco defeituoso substituído, e o espelhamento pode ser refeito. O único inconveniente é que, devido a duplicidade das informações, o espaço de armazenamento necessário é exatamente o dobro. Se a performance não for um fator determinante é uma opção a ser analisada para o armazenamento dos Bancos de Dados do SQL Server 2005.
- Striped Volume ou Raid-0: Podem ser combinadas áreas de espaço livre de até 32 discos. Não apresenta nenhum mecanismo de tolerância a falhas, pois se um dos discos do Striped Volume falhar, toda a informação estará comprometida. Uma das vantagens é que o desempenho melhora, uma vez que as informações são gravadas nos diversos discos ao mesmo tempo.
- Volume do tipo RAID-5: Um volume do tipo RAID-5 é um Striped volume, porém com tolerância a falhas. Junto com os dados, o Windows grava informações de paridade (obtidas a partir de cálculos matemáticos) nos vários discos que formam o RAID-5. Com isso, no evento de falha de um dos discos, toda a informação do disco com problemas pode ser reconstituída a partir das informações de paridade dos outros discos. O disco defeituoso pode ser substituído e a informação nele contida recriada a partir da informação de paridade nos demais discos do RAID-5. Para que possamos construir um RAID-5, um mínimo de três discos é necessário. Porém se dois discos falharem, ao mesmo tempo, não será possível recuperar a informação.
Para informações sobre como criar e gerenciar os diversos tipos de volumes apresentados neste item, consulte a Unidade VIII, do livro “Microsoft Windows 2000 Server Curso Básico & Rápido”, da editora Axcel Books, já citado anteriormente, disponível para compra no formato de e-book, em: https://juliobattisti.com.br/cursos
Fundamentos em A Estrutura de Armazenamento dos Bancos de Dados no SQL Server 2005:
Pré-Requisitos:
Metodologia:
- Apresentação dos elementos que compõem um Banco de Dados do SQL Server 2005.
Um Banco de Dados do SQL Server 2005 é formado por um conjunto de arquivos. Cada Banco de Dados contém dois tipos de arquivos: arquivos de dados e arquivos de log. Os arquivos de dados são utilizados para armazenar os diversos elementos de um Banco de Dados, como Tabelas, Views, Triggers, Stored Procedures, etc. Os arquivos de log armazenam o chamado Log de transações. O Log de transações é um registro das operações que são efetuadas nos dados do Banco de Dados. Veremos detalhes sobre o log mais adiante. Os arquivos de dados podem ser de dois tipos: arquivos primários e secundários.
Todo Banco de Dados deve possuir pelo menos um arquivo primário e um arquivo de log. O arquivo primário contém as informações necessaries para inicialização do banco de dados e é utilizado para armazenar as chamadas tabelas do sistema, que são tabelas necessárias ao funcionamento do banco de dados. As tabelas criadas pelos usuários podem ser armazenadas também no arquivo primário ou em arquivos secundários. De acordo com a necessidade, podemos adicionar um ou mais arquivos secundários de dados. Um arquivo, quer seja de dados, quer seja de log, somente pode ser utilizado por um Banco de Dados, isto é, não podemos ter arquivos compartilhados por mais do que um Banco de Dados. Quando estamos falando de arquivos de dados (primários ou secundários) e arquivos de log, estamos nos referindo a arquivos do Sistema Operacional como por exemplo: C:\livrosql\contas\principal.mdf. Este seria um exemplo de um arquivo de dados primário, que conforme detalharemos logo em seguida, possui a extensão .mdf.
Por exemplo, o Banco de Dados master é formado, por padrão, por um arquivo primário e um de log com os seguintes nomes:
- Arquivo de dados primário -> master.mdf
- Arquivo de log -> master.ldf
Vamos ver em detalhes os tipos de arquivos que fazem parte de um Banco de Dados:
- Arquivo de dados primário (Primary data file): Todo Banco de Dados deve conter um, e somente um, arquivo de dados primário. Este arquivo possui a extensão .mdf. Neste arquivo ficam informações necessárias à inicialização do Banco de Dados, bem como informações sobre a localização dos outros arquivos que fazem parte do Banco de Dados. Esta informação também é armazenada nas tabelas do banco de dados master, já descrito anteriormente. Se, por algum motivo, o arquivo de dados primário for corrompido, e não puder ser restaurado, perderemos todo o banco de dados, mesmo que os demais arquivos estejam intactos. Perder o arquivo primário é como perder o “mapa para as demais informações do banco de dados”.
- Arquivos de dados secundário (Secondary data files): Em um Banco de Dados podemos ter um ou mais arquivos de dados secundário. Não somos obrigados a criar arquivos de dados secundário. À medida que o Banco de Dados vai crescendo podemos utilizar arquivos de dados secundário para gravar a informação em diferentes volumes. Esta técnica pode ajudar no desempenho do Banco de Dados como um todo. A extensão destes arquivos secundários é .ndf.
- Arquivos do log de transações (Transaction log files): Nestes arquivos fica gravado todo o registro das operações realizadas no Banco de Dados, o qual deve ter pelo menos um arquivo de log. Conforme a necessidade, arquivos de log, adicionais, podem ser criados. A extensão para os arquivos de log é .ldf.
O tamanho máximo para um arquivo de dados (quer seja primário ou secundário) é 32 TB (Tera bytes). Para um arquivo de log, o tamanho máximo é 32 TB também, tanto nas versões de 32 bits quanto de 64 bits do SQL Server 2005. O número máximo de arquivos por banco de dados é de 32767.
Com o SQL Server 2005 não é obrigatória a utilização das extensões .mdf, .ndf e .ldf para arquivos primários, secundários e de log, respectivamente. Esta é apenas uma recomendação para facilitar a identificação do tipo do arquivo.
Arquivos de dados e de log podem ser gravados tanto em partições formatadas com FAT como NTFS, porém a partição (no caso de NTFS) não pode estar compactada. |