Bonjour,
comment trouver le LSN da ma base de données ?
D'avance merci.Code:
1
2
3
4 select count(*) from sys.dm_cdc_log_scan_sessions Msg 208, Level 16, State 1, Line 1 Invalid object name 'sys.dm_cdc_log_scan_sessions'.
Version imprimable
Bonjour,
comment trouver le LSN da ma base de données ?
D'avance merci.Code:
1
2
3
4 select count(*) from sys.dm_cdc_log_scan_sessions Msg 208, Level 16, State 1, Line 1 Invalid object name 'sys.dm_cdc_log_scan_sessions'.
Hello,
Est-ce que tu utilises change tracking ? Précise un peu plus ton besoin.
Dans ce cas n'est-ce pas plus sys.fn_cdc_map_time_to_lsn que tu dois utiliser ici ?
++
Bonjour,
merci pour ta réponse.
J'ai des fichiers de sauvegardes dont je connais First LSN et Las LSN.
Je veux restaurer ma base avec ceci. Mais avant ça j'aimerai bien connaître le LSN actuel de la base.
Et c'est pareil :
D'avance merci.Code:
1
2
3
4 select count(*) from sys.fn_cdc_map_time_to_lsn Msg 208, Level 16, State 1, Line 8 Invalid object name 'sys.fn_cdc_map_time_to_lsn'.
Je ne suis pas sûr de comprendre ce que tu veux faire mais tu peux identifier le dernier LSN utilisé dans le journal des transactions de la base via la DMF non documentée sys.fn_db_log() comme ceci:
Attention à l'utilisation en production des ces vues, fonctions, procédure non documentées ...Code:
1
2
3
4
5
6 USE <maBase>; GO select * from sys.fn_dblog(null, null); GO
++
merci David.
La requête me renvoie 182 lignes. Autrement dit j'ai 182 Current LSN.
Lequel est vraiment Current ?
Ai-je mal compris le sens de Current LSN ?
Bien à toi.
On va prendre le problème à la base. Est-ce que tu peux juste préciser ton besoin ?
Je devine d'après ce que tu dis une volonté de restaurer une séquence backup en te basant sur les LSN ?
++
David,
merci pour ta réponse.
Au départ je voudrai apprendre à restaurer en appliquant une sauvegarde FULL et les sauvegardes de TRAN LOG pour revenir à une date/heure plus avancée que la sauvegarde FULL. Or j'ai cru comprendre que LSN est un numéro qui indique "l'age" de la base. Donc je souhaite connaître le LSN actuelle de la base à tout moment. Cela n'a rien de direct avec la restauration.
En effet connaissant LSN actuelle de la base et le comparant avec les LSN de chaque sauvegarde de Tran LOG pourra me dire si je peux utiliser sauvegarde de Tran LOG ou pas. Je l'appliquerai si son LSN est supérieure à la LSN de la base restaurée à partir de FULL.
D'avance merci.
Avec une requête de ce type, tu devrais pouvoir trouver ton bonheur le LSN :
Code:
1
2
3
4
5
6
7 select top 100 b.database_name , b.backup_start_date , b.first_lsn , b.last_lsn from backupset b order by b.backup_start_date desc
merci pour cette réponse.
Nous sommes d'accord que cela donnera le LSN qui est dans le fichier de sauvegarde qui peut être loin de LSN dans la base.
Bien à toi.
De manière plus simple vous pouvez lancer la commande non documentée suivante dans le contexte de la base visée :
et noter le maxLSN (et aussi le backupLSN !)Code:DBCC FILEHEADER(0,1);
Cette commande lit la page d'entête du premier fichier de données qui est le fichier primaire.
On peut aussi utiliser un DBCC page pour obtenir cette information :
Vous retrouverez ces même informations en bas des données (onglet message).Code:
1
2 DBCC TRACEON(3604); DBCC PAGE(0,1,0,3);
A +
PS : pour plus de détails, attendez la sortie de mon livre : http://www.amazon.fr/SQL-Server-2014...ou+sql+serveer
merci beaucoup.