PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 25 → Sobre como e onde armazenar um database Ms SQL server e PostgreSQL
Sobre como e onde armazenar um database Ms SQL server e PostgreSQL
Débuté par Boller, 24 mai 2025 18:01 - Aucune réponse
Membre enregistré
4 520 messages
Posté le 24 mai 2025 - 18:01
Bom dia

Esse é um artigo técnico aprofundado no comparativo sobre estratégias de alocação dos arquivos MDF, LDF e BKP no SQL Server, com base em 3 propostas A, B e C. O foco é em performance, segurança, tolerância a falhas e custo-benefício. Ao final, vou emitir um parecer técnico como recomendação.

As Estratégias de Armazenamento para Banco de Dados SQL Server: Comparativo entre Soluções A, B e C, estão usando as melhores práticas:

Introdução

Ao criar um novo banco de dados no SQL Server, é crucial definir corretamente onde serão armazenados os arquivos:
• MDF (dados),
• LDF (log de transações),
• BKP (backups regulares).

A escolha de onde alocar esses arquivos influencia diretamente na performance, segurança, integridade e escalabilidade do banco de dados. Vamos analisar três cenários distintos com prós, contras e exemplos de scripts.



Cenário A — Tudo em um único servidor
• MDF: HD principal do servidor.
• LDF: Mesmo HD do MDF.
• BKP: Backup no mesmo servidor, posteriormente copiado para um terceiro PC.

Script de Criação

CREATE DATABASE [ERP_CENARIO_A]
ON PRIMARY (
NAME = N'ERP_CENARIO_A_DATA',
FILENAME = N'C:\SQLDATA\ERP_CENARIO_A.MDF',
SIZE = 512MB, FILEGROWTH = 128MB
)
LOG ON (
NAME = N'ERP_CENARIO_A_LOG',
FILENAME = N'C:\SQLDATA\ERP_CENARIO_A.LDF',
SIZE = 256MB, FILEGROWTH = 64MB
);

Backup e cópia manual

BACKUP DATABASE [ERP_CENARIO_A]
TO DISK = N'C:\SQLBACKUP\ERP_CENARIO_A.BAK'
WITH FORMAT, INIT, NAME = 'Full Backup - Cenário A';

-- Cópia para outro PC (ex: via robocopy ou script de rede)
-- robocopy C:\SQLBACKUP \\OUTROPC\BACKUPS\ERP_CENARIO_A\

Vantagens
• Fácil implementação e manutenção.
• Menor custo (um único servidor).

Desvantagens
• Risco alto: falha no HD compromete tudo (dados + log).
• Performance limitada em alto volume de I/O.
• Backup precisa ser copiado externamente manualmente.



Cenário B — MDF e LDF em HDs distintos do mesmo servidor
• MDF: HD1 do servidor.
• LDF: HD2 do mesmo servidor.
• BKP: Backup salvo diretamente em outro PC via rede.

Script de Criação

CREATE DATABASE [ERP_CENARIO_B]
ON PRIMARY (
NAME = N'ERP_CENARIO_B_DATA',
FILENAME = N'D:\SQLDATA\ERP_CENARIO_B.MDF',
SIZE = 512MB, FILEGROWTH = 128MB
)
LOG ON (
NAME = N'ERP_CENARIO_B_LOG',
FILENAME = N'E:\SQLLOG\ERP_CENARIO_B.LDF',
SIZE = 256MB, FILEGROWTH = 64MB
);

Backup direto em rede

BACKUP DATABASE [ERP_CENARIO_B]
TO DISK = N'\\OUTROPC\BACKUPS\ERP_CENARIO_B.BAK'
WITH FORMAT, INIT, NAME = 'Full Backup - Cenário B';

Vantagens
• Melhora de performance com separação de I/O.
• Mais segurança contra corrupção do log.
• Backup já em local externo.

Desvantagens
• Custo intermediário (dois HDs).
• Risco de falha no servidor ainda existe (não é tolerância total a falhas).



Cenário C — Distribuído por Storages externos
• MDF: Storage A (iSCSI ou SAN).
• LDF: Storage B.
• BKP: Storage C (remoto, seguro).

Script de Criação

CREATE DATABASE [ERP_CENARIO_C]
ON PRIMARY (
NAME = N'ERP_CENARIO_C_DATA',
FILENAME = N'Z:\SQLDATA\ERP_CENARIO_C.MDF', -- Storage A
SIZE = 512MB, FILEGROWTH = 128MB
)
LOG ON (
NAME = N'ERP_CENARIO_C_LOG',
FILENAME = N'Y:\SQLLOG\ERP_CENARIO_C.LDF' -- Storage B
);

Backup seguro e isolado

BACKUP DATABASE [ERP_CENARIO_C]
TO DISK = N'\\StorageC\Backups\ERP_CENARIO_C.BAK'
WITH FORMAT, INIT, NAME = 'Full Backup - Cenário C';

Vantagens
• Alta performance e escalabilidade.
• Máxima segurança e tolerância a falhas.
• Ideal para empresas com políticas de segurança rígidas.

Desvantagens
• Alto custo (3 storages dedicados).
• Requer configuração e administração avançada.



Conclusão Técnica
• Para pequenas empresas ou ambientes de testes, o Cenário A pode ser suficiente.
• Para empresas médias com necessidade de segurança e performance moderada, o Cenário B oferece o melhor custo-benefício.
• Para grandes corporações com missão crítica, Cenário C é o mais recomendado, por garantir alta disponibilidade, segurança, escalabilidade e performance, ainda que exija investimento mais alto.

O que é Storage?

Storage, em TI, é uma solução de armazenamento de dados externa ou dedicada, usada para guardar arquivos, bancos de dados, backups e informações críticas de forma segura, centralizada e com alta performance.

É como um “HD gigante e inteligente”, normalmente conectado a servidores por rede, que oferece:
• Alta capacidade
• Alta velocidade
• Alta confiabilidade
• Redundância (RAID, snapshots, espelhamento)
• Gerenciamento centralizado



Principais tipos de Storage
1. DAS (Direct Attached Storage)
• Conectado diretamente ao servidor.
• Ex: HDs ou SSDs internos.
• Uso: local e barato, mas limitado em escalabilidade.
2. NAS (Network Attached Storage)
• Conectado à rede via IP (como se fosse uma pasta compartilhada).
• Uso: ideal para compartilhamento de arquivos, backups e arquivos de mídia.
3. SAN (Storage Area Network)
• Rede dedicada de armazenamento, geralmente via iSCSI ou Fibre Channel.
• Uso: ambientes corporativos, bancos de dados, virtualização.
• Altíssimo desempenho, tolerância a falhas e escalabilidade.

Espero que essas dicas sejam levadas em conta quando forem criar um banco de dados Ms SQL Server

Não tem lógica numa empresa capaz de ter um Storange ter um banco no exemplo A é correr riscos à toa sendo que o exemplo C garante a performance do banco, das restaurações snapshots e dos bkps!

Poucos sabem que o MDF pode ficar num HD e o LDF em outro e isso muda a performance drasticamente pois a controladora de discos dividirá as tarefas e isso dará um resultado incrível em suas aplicações.

E isso também é possível fazer com o PostgreSQL !!!

Os tablespaces podem ser direcionados para outras unidades de disco.

E inclusive isso é altamente recomendado em ambientes profissionais ou críticos!

Assim como no SQL Server, você pode:



1. Separar arquivos de dados, logs e backups em diferentes storages

PostgreSQL armazena tudo no diretório data/, mas com configuração avançada, você pode:
• Montar datafiles (dados) em um Storage A.
• Redirecionar WAL logs (Write-Ahead Log) para um Storage B.
• Armazenar backups com pg_dump ou base backups em um Storage C (inclusive na nuvem).



2. Exemplos práticos de como fazer isso

Separar dados e WAL logs

Você pode usar um symlink ou montagem separada:

# Suponha que o log vá para /mnt/storageB/pg_wal

mv /var/lib/postgresql/15/main/pg_wal /mnt/storageB/pg_wal

ln -s /mnt/storageB/pg_wal /var/lib/postgresql/15/main/pg_wal

Fazer backups com pg_basebackup para Storage C

pg_basebackup -D /mnt/storageC/backups/pg15 -Ft -z -P -U replicador



3. Benefícios ao usar Storage com PostgreSQL

Recurso Benefício com Storage

Performance Aumento por separar I/O de dados e logs

Segurança Backup em storage externo garante integridade

Redundância RAID + snapshots automáticos

Escalabilidade Pode crescer sem downtime adicionando mais volumes

Alta disponibilidade Facilitada via replicação + storage rápido



4. Tecnologias que combinam com PostgreSQL
• ZFS ou BTRFS para snapshots nativos.
• pgBackRest para backups em storages externos com compressão.
• PostgreSQL + SAN com discos dedicados para IOPS intensivos.
• Ceph + PostgreSQL em clusters escaláveis.



Conclusão

Sim, PostgreSQL também pode e DEVE usar arquitetura com múltiplos storages, especialmente quando:
• O volume de dados é grande,
• O ambiente exige alta disponibilidade,
• A empresa quer minimizar riscos e otimizar performance.

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/