OVH Cloud OVH Cloud

desactiver temporairement le journal de transaction

2 réponses
Avatar
anne
Bonjour,

j'ai une récupération de données à faire via un import/export de données
sur 2 bases situées sur un même serveur.

Est-il possible de désactiver le journal de transaction pendant cette
opération car, vu le nombre d'enregistrements, il sature (et il sature
même le disque de la machine) ?

Merci

2 réponses

Avatar
Catherine
Bonjour Anne,
Ton problème vient du fait que chaque opération d'importation est tracée
comme un INSERT dans le journal de transaction de ta base. Pour éviter cela,
2 possibilités :
1. Tu positionnes l'option "BULK_LOGGED" :
ALTER DATABASE nom_de_ta_base
SET RECOVERY BULK_LOGGED
Aucune des insertions ne sera alors tracée dans le journal mais si tu
réalises une importation massive, il se peut que SQL Server ait besoin de
réaliser des allocations d'extensions. Ces transactions-là seront
journalisées... D'où la 2ème solution :
2. Tu positionnes l'option "SIMPLE"
ALTER DATABASE nom_de_ta_base
SET RECOVERY SIMPLE
Dans ce cas, à chaque CHECKPOINT, la partie "inactive" du journal est
supprimée, tu risques moins de le saturer. Par contre, penses à faire une
sauvegarde complète de ta base après import...
"anne" a écrit :

Bonjour,

j'ai une récupération de données à faire via un import/export de données
sur 2 bases situées sur un même serveur.

Est-il possible de désactiver le journal de transaction pendant cette
opération car, vu le nombre d'enregistrements, il sature (et il sature
même le disque de la machine) ?

Merci



Avatar
Med Bouchenafa
Catherine,
L'option BULK_LOGGED n'empêche pas les insertions d'être enregistrées dans
le journal
Ce n'est pas son objectif,
Lorsque l'option BULK_LOGGED est spécifiée, seules les opérations BCP,
SELECT INTO et CREATE INDEX sont concernées par l'enregistrement minimal

Anne,
Il faut non seulement que tu actives cette option mais que tu utilises aussi
un BCP ou un SELECT INTO pour charger tes tables avec un minimum de
journalisation. Sinon l'opération est enregistrée totalement dans le journal
et il n'y a aucun moyen de passer outre

--
Bien cordialement
Med Bouchenafa


"Catherine" wrote in message
news:
Bonjour Anne,
Ton problème vient du fait que chaque opération d'importation est tracée
comme un INSERT dans le journal de transaction de ta base. Pour éviter


cela,
2 possibilités :
1. Tu positionnes l'option "BULK_LOGGED" :
ALTER DATABASE nom_de_ta_base
SET RECOVERY BULK_LOGGED
Aucune des insertions ne sera alors tracée dans le journal mais si tu
réalises une importation massive, il se peut que SQL Server ait besoin de
réaliser des allocations d'extensions. Ces transactions-là seront
journalisées... D'où la 2ème solution :
2. Tu positionnes l'option "SIMPLE"
ALTER DATABASE nom_de_ta_base
SET RECOVERY SIMPLE
Dans ce cas, à chaque CHECKPOINT, la partie "inactive" du journal est
supprimée, tu risques moins de le saturer. Par contre, penses à faire une
sauvegarde complète de ta base après import...
"anne" a écrit :

> Bonjour,
>
> j'ai une récupération de données à faire via un import/export de données
> sur 2 bases situées sur un même serveur.
>
> Est-il possible de désactiver le journal de transaction pendant cette
> opération car, vu le nombre d'enregistrements, il sature (et il sature
> même le disque de la machine) ?
>
> Merci
>