Venant du monde Oracle, je suis en train d'étudier le SGBD SQL Server,
et me voilà confronté à un petit soucis en terme de sauvegarde.
Je vous explique le scenario mis en place, le problème ensuite :
à t0 : je créé une table test avec 3 enregistrements
à t1 : je fais un backup de la database et du fichier de transaction
BACKUP DATABASE testLL TO diskDevice
BACKUP LOG testLL TO diskDevice
à t2 : je fais l'insertion de 3 nouveaux enregistrements dans la table test
à t3 : je flingue le MDF de ma base (simulation de perte d'un disque)
mon but étant de retrouver un état avec mes 6 enregistrements !! bien sur :)
Voici donc ce que je réalise :
à t4 : je fais un backup du journal de transactions
BACKUP LOG testLL TO diskDevice
à t5 : je restaure la base en mode NORECOVERY
RESTORE DATABASE testLL FROM diskDevice WITH NORECOVERY
à t6 : je restaure le dernier log sauvé et je fais le RECOVER
RESTORE LOG testLL FROM diskDevice WITH RECOVERY
Et là, ohhh surprise : la table que j'avais créé avant le Backup
n'existe même pas !!!
Alors où est l'erreur ... je ne pige pas ! les ordres RESTORE DATABASE
prennent bien le dernier jeu de sauvegardes ou pas ??
Info qui a également sont importance : les fichiers de log du serveur me
donnent cette info :
Bypassing recovery for database 'testLL' because it is marked IN LOAD.
Voilà, ce n'est certainement pas grand chose, mais je connais plus le
monde Oracle ... dsl !
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
Med Bouchenafa
Il faut restorer tous les journaux sauvegardes et dans l'ordre RESTORE DATABASE MyDB FROM MyDB_Full WITH NORECOVERY GO RESTORE LOG MyDB FROM MyDB_log1 WITH NORECOVERY GO RESTORE LOG MyDB FROM MyDB_log2 WITH NORECOVERY GO RESTORE LOG MyDB FROM MyDB_log3 WITH RECOVERY GO -- Bien cordialementMed Bouchenafa "Laurent Léturgez" wrote in message news:4334187f$0$1659$
Salut à tous,
Venant du monde Oracle, je suis en train d'étudier le SGBD SQL Server, et me voilà confronté à un petit soucis en terme de sauvegarde. Je vous explique le scenario mis en place, le problème ensuite :
à t0 : je créé une table test avec 3 enregistrements à t1 : je fais un backup de la database et du fichier de transaction BACKUP DATABASE testLL TO diskDevice BACKUP LOG testLL TO diskDevice à t2 : je fais l'insertion de 3 nouveaux enregistrements dans la table test à t3 : je flingue le MDF de ma base (simulation de perte d'un disque)
mon but étant de retrouver un état avec mes 6 enregistrements !! bien sur :)
Voici donc ce que je réalise :
à t4 : je fais un backup du journal de transactions BACKUP LOG testLL TO diskDevice à t5 : je restaure la base en mode NORECOVERY RESTORE DATABASE testLL FROM diskDevice WITH NORECOVERY à t6 : je restaure le dernier log sauvé et je fais le RECOVER RESTORE LOG testLL FROM diskDevice WITH RECOVERY
Et là, ohhh surprise : la table que j'avais créé avant le Backup n'existe même pas !!!
Alors où est l'erreur ... je ne pige pas ! les ordres RESTORE DATABASE prennent bien le dernier jeu de sauvegardes ou pas ??
Info qui a également sont importance : les fichiers de log du serveur me donnent cette info : Bypassing recovery for database 'testLL' because it is marked IN LOAD.
Voilà, ce n'est certainement pas grand chose, mais je connais plus le monde Oracle ... dsl !
Merci de votre aide en tout cas !
Laurent
Il faut restorer tous les journaux sauvegardes et dans l'ordre
RESTORE DATABASE MyDB FROM MyDB_Full WITH NORECOVERY
GO
RESTORE LOG MyDB FROM MyDB_log1 WITH NORECOVERY
GO
RESTORE LOG MyDB FROM MyDB_log2 WITH NORECOVERY
GO
RESTORE LOG MyDB FROM MyDB_log3 WITH RECOVERY
GO
-- Bien cordialementMed Bouchenafa
"Laurent Léturgez" <laurent.leturgez_@t_free.fr> wrote in message
news:4334187f$0$1659$626a14ce@news.free.fr...
Salut à tous,
Venant du monde Oracle, je suis en train d'étudier le SGBD SQL Server, et
me voilà confronté à un petit soucis en terme de sauvegarde.
Je vous explique le scenario mis en place, le problème ensuite :
à t0 : je créé une table test avec 3 enregistrements
à t1 : je fais un backup de la database et du fichier de transaction
BACKUP DATABASE testLL TO diskDevice
BACKUP LOG testLL TO diskDevice
à t2 : je fais l'insertion de 3 nouveaux enregistrements dans la table
test
à t3 : je flingue le MDF de ma base (simulation de perte d'un disque)
mon but étant de retrouver un état avec mes 6 enregistrements !! bien sur
:)
Voici donc ce que je réalise :
à t4 : je fais un backup du journal de transactions
BACKUP LOG testLL TO diskDevice
à t5 : je restaure la base en mode NORECOVERY
RESTORE DATABASE testLL FROM diskDevice WITH NORECOVERY
à t6 : je restaure le dernier log sauvé et je fais le RECOVER
RESTORE LOG testLL FROM diskDevice WITH RECOVERY
Et là, ohhh surprise : la table que j'avais créé avant le Backup n'existe
même pas !!!
Alors où est l'erreur ... je ne pige pas ! les ordres RESTORE DATABASE
prennent bien le dernier jeu de sauvegardes ou pas ??
Info qui a également sont importance : les fichiers de log du serveur me
donnent cette info :
Bypassing recovery for database 'testLL' because it is marked IN LOAD.
Voilà, ce n'est certainement pas grand chose, mais je connais plus le
monde Oracle ... dsl !
Il faut restorer tous les journaux sauvegardes et dans l'ordre RESTORE DATABASE MyDB FROM MyDB_Full WITH NORECOVERY GO RESTORE LOG MyDB FROM MyDB_log1 WITH NORECOVERY GO RESTORE LOG MyDB FROM MyDB_log2 WITH NORECOVERY GO RESTORE LOG MyDB FROM MyDB_log3 WITH RECOVERY GO -- Bien cordialementMed Bouchenafa "Laurent Léturgez" wrote in message news:4334187f$0$1659$
Salut à tous,
Venant du monde Oracle, je suis en train d'étudier le SGBD SQL Server, et me voilà confronté à un petit soucis en terme de sauvegarde. Je vous explique le scenario mis en place, le problème ensuite :
à t0 : je créé une table test avec 3 enregistrements à t1 : je fais un backup de la database et du fichier de transaction BACKUP DATABASE testLL TO diskDevice BACKUP LOG testLL TO diskDevice à t2 : je fais l'insertion de 3 nouveaux enregistrements dans la table test à t3 : je flingue le MDF de ma base (simulation de perte d'un disque)
mon but étant de retrouver un état avec mes 6 enregistrements !! bien sur :)
Voici donc ce que je réalise :
à t4 : je fais un backup du journal de transactions BACKUP LOG testLL TO diskDevice à t5 : je restaure la base en mode NORECOVERY RESTORE DATABASE testLL FROM diskDevice WITH NORECOVERY à t6 : je restaure le dernier log sauvé et je fais le RECOVER RESTORE LOG testLL FROM diskDevice WITH RECOVERY
Et là, ohhh surprise : la table que j'avais créé avant le Backup n'existe même pas !!!
Alors où est l'erreur ... je ne pige pas ! les ordres RESTORE DATABASE prennent bien le dernier jeu de sauvegardes ou pas ??
Info qui a également sont importance : les fichiers de log du serveur me donnent cette info : Bypassing recovery for database 'testLL' because it is marked IN LOAD.
Voilà, ce n'est certainement pas grand chose, mais je connais plus le monde Oracle ... dsl !
Merci de votre aide en tout cas !
Laurent
Fred BROUARD
Bonjour,
Voici ce que vous devrier réaliser :
à t4 : je fais un backup du journal de transactions BACKUP LOG testLL TO diskDevice WITH NO_TRUNCATE à t5 : je restaure la base en mode NORECOVERY RESTORE DATABASE testLL FROM diskDevice WITH NORECOVERY à t6 : je restaure le dernier log sauvé et je fais le RECOVER RESTORE LOG testLL FROM diskDevice WITH RECOVERY
faites attention si vous mettez tout dans le même device de bien retrouver les bon fichiers. pour cela analysez d'abord le device avec : RESTORE LABLEONLY ... HEADERONLY ... FILELISTONLY
Pour ma part j'évite d'empiler les sauvegardes dans un même device, car c'est pénible à gérer. Donc je donne un nom composé comme suit : BKP_DateHeure_nomBase_TypeSave.MSSQL Exemples : BKP_20050101220000_DB_PRODUCTION_1Complete.MSSQL BKP_20050101221000_DB_PRODUCTION_2Differentielle.MSSQL BKP_20050101222000_DB_PRODUCTION_3Journal.MSSQL Ainsi même un tri de fichier me les présente dans l'ordre de la restauration !
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Laurent Léturgez a écrit:
Salut à tous,
Venant du monde Oracle, je suis en train d'étudier le SGBD SQL Server, et me voilà confronté à un petit soucis en terme de sauvegarde. Je vous explique le scenario mis en place, le problème ensuite :
à t0 : je créé une table test avec 3 enregistrements à t1 : je fais un backup de la database et du fichier de transaction BACKUP DATABASE testLL TO diskDevice BACKUP LOG testLL TO diskDevice à t2 : je fais l'insertion de 3 nouveaux enregistrements dans la table test à t3 : je flingue le MDF de ma base (simulation de perte d'un disque)
mon but étant de retrouver un état avec mes 6 enregistrements !! bien sur :)
Voici donc ce que je réalise :
à t4 : je fais un backup du journal de transactions BACKUP LOG testLL TO diskDevice à t5 : je restaure la base en mode NORECOVERY RESTORE DATABASE testLL FROM diskDevice WITH NORECOVERY à t6 : je restaure le dernier log sauvé et je fais le RECOVER RESTORE LOG testLL FROM diskDevice WITH RECOVERY
Et là, ohhh surprise : la table que j'avais créé avant le Backup n'existe même pas !!!
Alors où est l'erreur ... je ne pige pas ! les ordres RESTORE DATABASE prennent bien le dernier jeu de sauvegardes ou pas ??
Info qui a également sont importance : les fichiers de log du serveur me donnent cette info : Bypassing recovery for database 'testLL' because it is marked IN LOAD.
Voilà, ce n'est certainement pas grand chose, mais je connais plus le monde Oracle ... dsl !
Merci de votre aide en tout cas !
Laurent
Bonjour,
Voici ce que vous devrier réaliser :
à t4 : je fais un backup du journal de transactions
BACKUP LOG testLL TO diskDevice WITH NO_TRUNCATE
à t5 : je restaure la base en mode NORECOVERY
RESTORE DATABASE testLL FROM diskDevice WITH NORECOVERY
à t6 : je restaure le dernier log sauvé et je fais le RECOVER
RESTORE LOG testLL FROM diskDevice WITH RECOVERY
faites attention si vous mettez tout dans le même device de bien retrouver les
bon fichiers. pour cela analysez d'abord le device avec :
RESTORE LABLEONLY
... HEADERONLY
... FILELISTONLY
Pour ma part j'évite d'empiler les sauvegardes dans un même device, car c'est
pénible à gérer. Donc je donne un nom composé comme suit :
BKP_DateHeure_nomBase_TypeSave.MSSQL
Exemples :
BKP_20050101220000_DB_PRODUCTION_1Complete.MSSQL
BKP_20050101221000_DB_PRODUCTION_2Differentielle.MSSQL
BKP_20050101222000_DB_PRODUCTION_3Journal.MSSQL
Ainsi même un tri de fichier me les présente dans l'ordre de la restauration !
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Laurent Léturgez a écrit:
Salut à tous,
Venant du monde Oracle, je suis en train d'étudier le SGBD SQL Server,
et me voilà confronté à un petit soucis en terme de sauvegarde.
Je vous explique le scenario mis en place, le problème ensuite :
à t0 : je créé une table test avec 3 enregistrements
à t1 : je fais un backup de la database et du fichier de transaction
BACKUP DATABASE testLL TO diskDevice
BACKUP LOG testLL TO diskDevice
à t2 : je fais l'insertion de 3 nouveaux enregistrements dans la
table test
à t3 : je flingue le MDF de ma base (simulation de perte d'un disque)
mon but étant de retrouver un état avec mes 6 enregistrements !! bien
sur :)
Voici donc ce que je réalise :
à t4 : je fais un backup du journal de transactions
BACKUP LOG testLL TO diskDevice
à t5 : je restaure la base en mode NORECOVERY
RESTORE DATABASE testLL FROM diskDevice WITH NORECOVERY
à t6 : je restaure le dernier log sauvé et je fais le RECOVER
RESTORE LOG testLL FROM diskDevice WITH RECOVERY
Et là, ohhh surprise : la table que j'avais créé avant le Backup
n'existe même pas !!!
Alors où est l'erreur ... je ne pige pas ! les ordres RESTORE DATABASE
prennent bien le dernier jeu de sauvegardes ou pas ??
Info qui a également sont importance : les fichiers de log du serveur me
donnent cette info :
Bypassing recovery for database 'testLL' because it is marked IN LOAD.
Voilà, ce n'est certainement pas grand chose, mais je connais plus le
monde Oracle ... dsl !
à t4 : je fais un backup du journal de transactions BACKUP LOG testLL TO diskDevice WITH NO_TRUNCATE à t5 : je restaure la base en mode NORECOVERY RESTORE DATABASE testLL FROM diskDevice WITH NORECOVERY à t6 : je restaure le dernier log sauvé et je fais le RECOVER RESTORE LOG testLL FROM diskDevice WITH RECOVERY
faites attention si vous mettez tout dans le même device de bien retrouver les bon fichiers. pour cela analysez d'abord le device avec : RESTORE LABLEONLY ... HEADERONLY ... FILELISTONLY
Pour ma part j'évite d'empiler les sauvegardes dans un même device, car c'est pénible à gérer. Donc je donne un nom composé comme suit : BKP_DateHeure_nomBase_TypeSave.MSSQL Exemples : BKP_20050101220000_DB_PRODUCTION_1Complete.MSSQL BKP_20050101221000_DB_PRODUCTION_2Differentielle.MSSQL BKP_20050101222000_DB_PRODUCTION_3Journal.MSSQL Ainsi même un tri de fichier me les présente dans l'ordre de la restauration !
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Laurent Léturgez a écrit:
Salut à tous,
Venant du monde Oracle, je suis en train d'étudier le SGBD SQL Server, et me voilà confronté à un petit soucis en terme de sauvegarde. Je vous explique le scenario mis en place, le problème ensuite :
à t0 : je créé une table test avec 3 enregistrements à t1 : je fais un backup de la database et du fichier de transaction BACKUP DATABASE testLL TO diskDevice BACKUP LOG testLL TO diskDevice à t2 : je fais l'insertion de 3 nouveaux enregistrements dans la table test à t3 : je flingue le MDF de ma base (simulation de perte d'un disque)
mon but étant de retrouver un état avec mes 6 enregistrements !! bien sur :)
Voici donc ce que je réalise :
à t4 : je fais un backup du journal de transactions BACKUP LOG testLL TO diskDevice à t5 : je restaure la base en mode NORECOVERY RESTORE DATABASE testLL FROM diskDevice WITH NORECOVERY à t6 : je restaure le dernier log sauvé et je fais le RECOVER RESTORE LOG testLL FROM diskDevice WITH RECOVERY
Et là, ohhh surprise : la table que j'avais créé avant le Backup n'existe même pas !!!
Alors où est l'erreur ... je ne pige pas ! les ordres RESTORE DATABASE prennent bien le dernier jeu de sauvegardes ou pas ??
Info qui a également sont importance : les fichiers de log du serveur me donnent cette info : Bypassing recovery for database 'testLL' because it is marked IN LOAD.
Voilà, ce n'est certainement pas grand chose, mais je connais plus le monde Oracle ... dsl !
Merci de votre aide en tout cas !
Laurent
Bouarroudj Mohamed
> Pour ma part j'évite d'empiler les sauvegardes dans un même device, car c'est pénible à gérer. Donc je donne un nom composé comme suit :
Fred comment vous faite pour restorer tous ces logs ?
avec un meme device on est capable au moins de jouer sur le No de File
while (@i < x-1) -- x est le nombre de log dans le device begin RESTORE LOG .. FROM DISK = ... WITH NORECOVERY... FILE = @i
SET @i= @i + 1 end
RESTORE LOG .. FROM DISK = ... WITH RECOVERY... FILE = @i
> Pour ma part j'évite d'empiler les sauvegardes dans un même device, car
c'est pénible à gérer. Donc je donne un nom composé comme suit :
Fred comment vous faite pour restorer tous ces logs ?
avec un meme device on est capable au moins de jouer sur le No de File
while (@i < x-1) -- x est le nombre de log dans le device
begin
RESTORE LOG ..
FROM DISK = ...
WITH NORECOVERY...
FILE = @i
SET @i= @i + 1
end
RESTORE LOG ..
FROM DISK = ...
WITH RECOVERY...
FILE = @i
> Pour ma part j'évite d'empiler les sauvegardes dans un même device, car c'est pénible à gérer. Donc je donne un nom composé comme suit :
Fred comment vous faite pour restorer tous ces logs ?
avec un meme device on est capable au moins de jouer sur le No de File
while (@i < x-1) -- x est le nombre de log dans le device begin RESTORE LOG .. FROM DISK = ... WITH NORECOVERY... FILE = @i
SET @i= @i + 1 end
RESTORE LOG .. FROM DISK = ... WITH RECOVERY... FILE = @i
Fred BROUARD
Bouarroudj Mohamed a écrit:
Pour ma part j'évite d'empiler les sauvegardes dans un même device, car c'est pénible à gérer. Donc je donne un nom composé comme suit :
Fred comment vous faite pour restorer tous ces logs ?
Une petite routine sous forme de PS.
A +
avec un meme device on est capable au moins de jouer sur le No de File
while (@i < x-1) -- x est le nombre de log dans le device begin RESTORE LOG .. FROM DISK = ... WITH NORECOVERY... FILE = @i
SET @i= @i + 1 end
RESTORE LOG .. FROM DISK = ... WITH RECOVERY... FILE = @i
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Bouarroudj Mohamed a écrit:
Pour ma part j'évite d'empiler les sauvegardes dans un même device, car
c'est pénible à gérer. Donc je donne un nom composé comme suit :
Fred comment vous faite pour restorer tous ces logs ?
Une petite routine sous forme de PS.
A +
avec un meme device on est capable au moins de jouer sur le No de File
while (@i < x-1) -- x est le nombre de log dans le device
begin
RESTORE LOG ..
FROM DISK = ...
WITH NORECOVERY...
FILE = @i
SET @i= @i + 1
end
RESTORE LOG ..
FROM DISK = ...
WITH RECOVERY...
FILE = @i
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Pour ma part j'évite d'empiler les sauvegardes dans un même device, car c'est pénible à gérer. Donc je donne un nom composé comme suit :
Fred comment vous faite pour restorer tous ces logs ?
Une petite routine sous forme de PS.
A +
avec un meme device on est capable au moins de jouer sur le No de File
while (@i < x-1) -- x est le nombre de log dans le device begin RESTORE LOG .. FROM DISK = ... WITH NORECOVERY... FILE = @i
SET @i= @i + 1 end
RESTORE LOG .. FROM DISK = ... WITH RECOVERY... FILE = @i
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************