Question

J'ai quatre bases de données SQL Server.Conformément aux exigences de charge maximale, chaque fichier de base de données peut avoir une taille comprise entre 1 et 2 To.Le disque dur est un DAS multidisque avec environ 9 To d'espace.Lors d'une mise à niveau d'une base de données, la taille du fichier journal des transactions d'une seule base de données peut atteindre 4 To.(oui, j'ai ajouté une nouvelle colonne à une table de plusieurs milliards de lignes.) Les bases de données sont sur le modèle Simple Recovery.

Je ne trouve aucune recommandation (ou règle empirique) de Microsoft sur la quantité d'espace disque dont j'ai besoin pour une taille de base de données donnée.Je comprends que cela peut varier considérablement.Si j'ai bien compris, c'est la transaction la plus importante que je dois prendre en compte puisque l'espace interne au fichier journal est réutilisé pour différentes transactions.Je pense que la croissance du journal est fixée à 10 %, mais même si elle était réglée par incréments de 1 ou 2 Go, je pense que je la réduirais toujours de près.

Dois-je adopter une stratégie pour éviter des fichiers journaux aussi volumineux ou ai-je simplement besoin de plus d'espace disque pour éviter de manquer d'espace lors d'une mise à niveau ?Si je fais quelque chose de mal, je veux apprendre à le faire correctement.

J'utilise SQL Server 2012.Merci!

Était-ce utile?

La solution

(oui, j'ai ajouté une nouvelle colonne à un tableau de plusieurs milliards de lignes.)

L'ajout d'une colonne à un très grand tableau peut avoir des implications, mais il existe un façon intelligente d'ajouter une colonne également.

Depuis : Ajout de colonnes NOT NULL en tant qu'opération en ligne

À partir de SQL Server 2012 Enterprise Edition, l'ajout d'une colonne NOT NULL avec une valeur par défaut est une opération en ligne lorsque la valeur par défaut est une constante d'exécution.Cela signifie que l'opération est terminée presque instantanément quel que soit le nombre de lignes du tableau.

L'ajout d'une colonne NOT NULL avec une valeur par défaut qui n'est pas une constante d'exécution est toujours effectué hors ligne et un verrou exclusif (SCH-M) est acquis pour la durée de l'opération.

Edition pour entreprise (fonctionne sur l'édition standard 2008 R2 selon le commentaire) a ALTER TABLE source_table SWITCH TO new_destination_table

Les bases de données sont sur le modèle Simple Recovery.

Dans un modèle de récupération simple, seul un CHECKPOINT tronquera le journal.

Si vous enregistrez des mesures de croissance automatique lors de votre mise à niveau typique, une moyenne de ces mesures collectées vous donnerait un bon chiffre de départ. Ce scénario vous aidera à démarrer (vous auriez besoin de la trace par défaut activée et exécutée sur votre serveur).

Je pense que la croissance du journal est fixée à 10 %, mais même si elle était réglée par incréments de 1 ou 2 Go, je pense que je la réduirais toujours de près.

Je vous suggérerais de changement le paramètre de croissance automatique de Pourcentage à Mo fixe.Comme @AaronBertrand dit dans son commentaire :

Le problème est que cela prend de plus en plus de temps, car 10 % d'un fichier en croissance augmente également constamment - c'est comme des intérêts composés, mais vous payez, vous ne recevez pas.

Pour être complet, assurez-vous que l'initialisation instantanée des fichiers est activée, afin que la croissance automatique du fichier de données puisse en profiter.

Autres conseils

Dans le scénario d'ajout d'une colonne à une table de classe VLDB, il peut être utile d'explorer la création d'une nouvelle table avec la nouvelle structure et déplacer des enregistrements de l'ancienne table à la nouvelle table dans de petites gammes.Il conservera la taille de la transaction individuelle petite de sorte que la marque haute d'eau pour le TLog en une simple récupération serait relativement faible.Vous ne pouvez pas éviter les exigences d'acide, mais si vous pouvez lotter votre mise à niveau comme des étapes plus petites au lieu d'une seule transaction, vous pourrez peut-être contourner la contrainte d'espace disque.

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top