desactiver temporairement le journal de transaction
2 réponses
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) ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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) ?
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
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 >
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" <Catherine@discussions.microsoft.com> wrote in message
news:122570FE-A71F-4B32-8C49-1D1B1F7EA636@microsoft.com...
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
>
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 >