{"id":47,"date":"2008-12-12T16:00:47","date_gmt":"2008-12-12T15:00:47","guid":{"rendered":"https:\/\/www.alldb.fr\/blogs\/?p=47"},"modified":"2023-04-20T07:03:40","modified_gmt":"2023-04-20T06:03:40","slug":"sql-server-principes-dune-sauvegarde-a-chaud","status":"publish","type":"post","link":"https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/","title":{"rendered":"Principes d&#8217;une sauvegarde \u00e0 chaud"},"content":{"rendered":"<a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F47&#038;text=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/twitter.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F47&#038;title=Principes%20d%E2%80%99une%20sauvegarde%20%C3%A0%20chaud\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/linkedin.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=Principes%20d%E2%80%99une%20sauvegarde%20%C3%A0%20chaud&#038;body=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20:%20https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F47\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/mail.png\" \/><\/a><p><span>Rien de plus simple de que faire une sauvegarde sur SQL Server:<\/span><\/p>\n<pre><span lang=\"EN-GB\">BACKUP DATABASE maBase to disk='D:\\MSSQL.1\\MSSQL\\Backup\\maBase.bak' with init, stats<\/span><\/pre>\n<pre><span lang=\"EN-GB\">10 percent processed.<\/span><\/pre>\n<pre><span lang=\"EN-GB\">21 percent processed.<\/span><\/pre>\n<pre><span lang=\"EN-GB\">32 percent processed.<\/span><\/pre>\n<pre><span lang=\"EN-GB\">43 percent processed.<\/span><\/pre>\n<pre><span lang=\"EN-GB\">54 percent processed.<\/span><\/pre>\n<pre><span lang=\"EN-GB\">60 percent processed.<\/span><\/pre>\n<pre><span lang=\"EN-GB\">71 percent processed.<\/span><\/pre>\n<pre><span lang=\"EN-GB\">82 percent processed.<\/span><\/pre>\n<pre><span lang=\"EN-GB\">93 percent processed.<\/span><\/pre>\n<pre><span lang=\"EN-GB\">Processed 144 pages for database 'maBase', file 'maBase' on file 1.<\/span><\/pre>\n<pre><span lang=\"EN-GB\">100 percent processed.<\/span><\/pre>\n<pre><span lang=\"EN-GB\">Processed 2 pages for database 'maBase', file 'maBase_log' on file 1.<\/span><\/pre>\n<pre><span lang=\"EN-GB\">BACKUP DATABASE successfully processed 146 pages in 0.816 seconds (1.463 MB\/sec).<\/span><\/pre>\n<p><span>Et voil\u00e0. L&#8217;avantage d&#8217;une telle sauvegarde est que je peux la lancer sans stopper mon service, sous entendu avec de l&#8217;activit\u00e9: connexions utilisateurs, transactions en cours, etc&#8230; Et tout \u00e7a en me garantissant de restaurer une base transactionnellement coh\u00e9rente. Pour y parvenir, elle commence par sauvegarder les donn\u00e9es puis les transactions pr\u00e9sentes dans le journal.<\/span><\/p>\n<p><span>Avant de parler de ce que fait le BACKUP DATABASE, il faut parler un peu des r\u00f4les respectifs du <strong>CHECKPOINT <\/strong>et du <strong>COMMIT <\/strong>dans le processus de RECOVERY.<\/span><\/p>\n<p class=\"MsoNormal\"><!--[if !supportLists]--><span><span>i)<\/span><\/span><!--[endif]--><span dir=\"ltr\"><span>Lorsqu\u2019un utilisateur initie une transaction, ses modifications sont d\u2019abord journalis\u00e9es en m\u00e9moire dans une zone qui est r\u00e9serv\u00e9e pour sa session. Puis les pages de donn\u00e9es et d\u2019index concern\u00e9es sont modifi\u00e9es dans le cache de donn\u00e9es. <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><!--[if !supportLists]--><span><span>ii)<\/span><\/span><!--[endif]--><span dir=\"ltr\"><span>Lorsqu\u2019il valide sa transaction de mani\u00e8re implicite ou explicite (avec COMMIT TRANSACTION), le contenu de son journal de session est enregistr\u00e9 physiquement dans le fichier LDF. Il est imp\u00e9ratif de s\u2019assurer que le COMMIT ne peut rendre la main \u00e0 la commande appelante que lorsque la transaction a \u00e9t\u00e9 v\u00e9ritablement \u00e9crite sur disque (le \u2018write-ahead logging\u2019 en d\u2019autres termes). Ce m\u00e9canisme permet de pouvoir r\u00e9cup\u00e9rer la transaction valid\u00e9e lorsqu\u2019un probl\u00e8me survient avant que les pages de donn\u00e9es n\u2019aient pu \u00eatre \u00e9crites.<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><!--[if !supportLists]--><span><span>iii)<\/span><\/span><!--[endif]--><span dir=\"ltr\"><span>De mani\u00e8re compl\u00e8tement ind\u00e9pendante et asynchrone, le processus d\u2019arri\u00e8re plan CHECKPOINT \u00e9crit les pages de donn\u00e9es et d\u2019index modifi\u00e9es (dirty pages) sur le disque, sans se pr\u00e9occuper de savoir si elles appartiennent \u00e0 une transaction valid\u00e9e ou non. <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span>A partir de l\u00e0, deux situations peuvent se produire au point de crash: <\/span><\/p>\n<p class=\"MsoNormal\"><!--[if !supportLists]--><span> <span>1)<\/span><\/span><!--[endif]--><span dir=\"ltr\"><span>Une transaction peut \u00eatre valid\u00e9e (committ\u00e9e) par l\u2019utilisateur mais le CHECKPOINT n\u2019a pas eu le temps d\u2019\u00e9crire les pages de donn\u00e9es \/ d\u2019index sur disque. Il va falloir r\u00e9\u00e9crire ces pages dans le fichier de donn\u00e9es au red\u00e9marrage de l\u2019instance (<strong>REDO <\/strong>ou ROLL-FORWARD). <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><!--[if !supportLists]--><span><span>2)<\/span><\/span><!--[endif]--><span dir=\"ltr\"><span>Le CHECKPOINT qui n\u2019a pas de vision sur l\u2019\u00e9tat de la transaction peut avoir \u00e9crit ses pages sur disque avant qu\u2019elle n\u2019ait \u00e9t\u00e9 valid\u00e9e par l\u2019utilisateur. Auquel cas il faudra d\u00e9faire les pages \u00e9crites car au point de crash car la transaction ne peut \u00eatre consid\u00e9r\u00e9e comme valide. (<strong>UNDO <\/strong>ou ROLLBACK). <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span>C\u2019est la combinaison de ces deux actions que l\u2019on appelle le <strong>RECOVERY<\/strong>. Ce processus intervient dans de nombreux changements d\u2019\u00e9tat de la base, et notamment pour ce qui nous int\u00e9resse, lors de la phase de restauration d\u2019une sauvegarde.<\/span><\/p>\n<p class=\"MsoNormal\"><span>Lorsque le BACKUP DATABASE est ex\u00e9cut\u00e9, il commence par forcer l\u2019ex\u00e9cution d\u2019un CHECKPOINT dans la base concern\u00e9e. Ce CHECKPOINT aura pour effet d\u2019ent\u00e9riner des transactions valid\u00e9es depuis ma derni\u00e8re sauvegarde de journal : Les pages de donn\u00e9es \/ d\u2019index sont \u00e9crites sur disque, la sauvegarde n\u2019a donc plus besoin de s\u2019en pr\u00e9occuper. Bien s\u00fbr il peut aussi \u00e9crire les pages de donn\u00e9es \/ d\u2019index d\u2019une transaction qui n\u2019est pas encore valid\u00e9e. Imm\u00e9diatement ensuite, il va relever un num\u00e9ro de transaction (LSN pour Log Sequence Number)dans le journal pour s\u2019en servir comme borne de d\u00e9part pour le RECOVERY. Appelons-le <strong>LSN1<\/strong>. <\/span><\/p>\n<p class=\"MsoNormal\"><span> Puis il va lire et \u00e9crire les pages de donn\u00e9es depuis le fichier MDF ou les diff\u00e9rents filegroups, et les \u00e9crire dans le fichier de sauvegarde. Une fois termin\u00e9es ces \u00e9critures, il renote le LSN courant (qui entre temps peut avoir\u00e9volu\u00e9), et s\u2019en sert comme borne de fin (<strong>LSN2<\/strong>). Puis il va sauvegarder tout ce qui se trouve entre (<strong>LSN2 \u2013 LSN1<\/strong>). Certaines transactions seront valid\u00e9es, certaines ne seront peut \u00eatre pas termin\u00e9es, mais peut importe, car au moment de la restauration, le processus de RECOVERY fera son \u0153uvre pour ramener la base \u00e0 un \u00e9tat transactionnel consistant. <\/span><\/p>\n<p class=\"MsoNormal\"><span>Si le LSN2 lui ne change pas car c\u2019est toujours le dernier num\u00e9ro g\u00e9n\u00e9r\u00e9 dans le journal qui sera utilis\u00e9, le probl\u00e8me vient plus du calcul du LSN de d\u00e9part car il va d\u00e9pendre de la situation dans laquelle se trouve le BACKUP DATABASE au d\u00e9part. <strong>Globalement, je peux me trouver dans deux cas :<\/strong><\/span><\/p>\n<p class=\"MsoNormal\"><!--[if !supportLists]--><span>&#8211;<\/span><!--[endif]--><span dir=\"ltr\"><strong><span>Soit il n\u2019y a aucune transaction en cours au moment o\u00f9 commence la sauvegarde <\/span><\/strong><\/span><span>: auquel cas LSN1 sera \u00e9gale \u00e0 la valeur du LSN g\u00e9n\u00e9r\u00e9 par le CHECKPOINT (lanc\u00e9 par le BACKUP):<\/span><\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2008\/12\/hotbackup1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"257\" class=\"size-medium wp-image-51 aligncenter\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2008\/12\/hotbackup1-300x257.png\" alt=\"hotbackup1\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2008\/12\/hotbackup1-300x257.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2008\/12\/hotbackup1.png 535w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p class=\"MsoNormal\"><span>L\u2019effet du CHECKPOINT ici est de flusher les pages de donn\u00e9es modifi\u00e9es par T1, T2 et T3, pour ne pas \u00e0 avoir \u00e0 les prendre dans la sauvegarde du journal. Ces pages se retrouvent sur disque, et seront captur\u00e9es lors de la copie de donn\u00e9es. <\/span><\/p>\n<p class=\"MsoNormal\"><span> LSN2 est toujours le LSN courant capt\u00e9 d\u00e8s la fin de la copie de donn\u00e9es. Dans ce cas, T4 est termin\u00e9e mais on est en plein milieu de T5, donc on prend quand m\u00eame ce \u2018fragment\u2019 de T5. Lors de la restauration, T4 sera r\u00e9appliqu\u00e9e et T5 sera rollback\u00e9e:<\/span><\/p>\n<p class=\"MsoNormal\" style=\"text-align: center;\"><a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2008\/12\/hotbackup5.png\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"117\" class=\"aligncenter size-medium wp-image-52\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2008\/12\/hotbackup5-300x117.png\" alt=\"\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2008\/12\/hotbackup5-300x117.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2008\/12\/hotbackup5.png 448w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p class=\"MsoNormal\"><strong><span>Soit il yaura au moins une transaction en cours <\/span><\/strong><span>: auquel cas, SQL Server va aller rechercher le LSN de d\u00e9part de la transaction active la plus ancienne. Dans l&#8217;exemple ci-dessous, il s&#8217;agit de T2:<br \/>\n<\/span><\/p>\n<p class=\"MsoNormal\" style=\"text-align: center;\"><a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2008\/12\/hotbackup2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"244\" class=\"aligncenter size-medium wp-image-54\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2008\/12\/hotbackup2-300x244.png\" alt=\"\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2008\/12\/hotbackup2-300x244.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2008\/12\/hotbackup2.png 561w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/> <\/a><\/p>\n<p class=\"MsoNormal\"><span>Dans ce cas, T2 et T4 qui sont termin\u00e9es avant la fin de la copie de donn\u00e9es seront r\u00e9appliqu\u00e9es et T5 et T3 rollback\u00e9es:<\/span><\/p>\n<p class=\"MsoNormal\" style=\"text-align: center;\"><a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2008\/12\/hotbackup4.png\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"73\" class=\"size-medium wp-image-56 aligncenter\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2008\/12\/hotbackup4-300x73.png\" alt=\"\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2008\/12\/hotbackup4-300x73.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2008\/12\/hotbackup4.png 675w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p class=\"MsoNormal\">La table msdb.dbo.backupset qui stocke des donn\u00e9es pour chaque sauvegarde effectu\u00e9e permet de v\u00e9rifier dans quel \u00e9tat se trouvait la base au moment de la sauvegarde. Pour le d\u00e9terminer, il faut comparer les valeurs de checkpoint_lsn et first_lsn:<\/p>\n<p class=\"MsoNormal\"><strong>&#8211; checkpoint_lsn = first_lsn:<\/strong> alors il n&#8217;y avait pas de transaction en cours au moment du BACKUP DATABASE.<\/p>\n<div>\n<div class=\"O2\">\n<pre><span>select first_lsn, checkpoint_lsn, last_lsn from msdb.dbo.backupset where database_name= \u2018CAPDATA\u2019 <\/span><\/pre>\n<\/div>\n<div class=\"O2\">\n<pre><span>first_lsn checkpoint_lsn last_lsn <\/span><\/pre>\n<\/div>\n<div class=\"O2\">\n<pre><span><em>-------------------- -------------------- -------------------- <\/em><\/span><\/pre>\n<\/div>\n<div class=\"O2\">\n<pre><span><em><strong>1341<\/strong> 0000000<strong>302<\/strong> 000<strong>51<\/strong><strong>1341<\/strong> 0000000<strong>302<\/strong> 000<strong>51<\/strong>1341 0000000323 00001<\/em><strong><em> <\/em><\/strong><\/span><\/pre>\n<\/div>\n<\/div>\n<p class=\"MsoNormal\"><strong>&#8211; first_lsn &lt; checkpoint_lsn:<\/strong> alors il y avait au moins une transaction en cours.<\/p>\n<div class=\"O1\">\n<div>\n<pre><span>select first_lsn, checkpoint_lsn, last_lsn from msdb.dbo.backupset where database_name= \u2018CAPDATA\u2019 <\/span><span> first_lsncheckpoint_lsnlast_lsn <\/span><\/pre>\n<\/div>\n<div>\n<pre><span><em>-------------------- --------------- -------------------- <\/em><\/span><\/pre>\n<\/div>\n<div>\n<pre><strong><span><em>1341<\/em><\/span><\/strong><span><em> 0000000<\/em><\/span><strong><span><em>510<\/em><\/span><\/strong><span><em> 000<\/em><\/span><strong><span><em>2<\/em><\/span><\/strong><span><em><strong>1341 <\/strong>0000000<strong>523<\/strong> 000<strong>98<\/strong>1341 0000000563 00001<\/em><\/span><\/pre>\n<\/div>\n<\/div>\n<div class=\"O1\">[ David B.]<\/div>\n<a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F47&#038;text=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/twitter.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F47&#038;title=Principes%20d%E2%80%99une%20sauvegarde%20%C3%A0%20chaud\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/linkedin.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=Principes%20d%E2%80%99une%20sauvegarde%20%C3%A0%20chaud&#038;body=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20:%20https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F47\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/mail.png\" \/><\/a>","protected":false},"excerpt":{"rendered":"<p>Rien de plus simple de que faire une sauvegarde sur SQL Server: BACKUP DATABASE maBase to disk=&#8217;D:\\MSSQL.1\\MSSQL\\Backup\\maBase.bak&#8217; with init, stats 10 percent processed. 21 percent processed. 32 percent processed. 43 percent processed. 54 percent processed. 60 percent processed. 71 percent&hellip; <a href=\"https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/\" class=\"more-link\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":7991,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,450],"tags":[99,100],"class_list":["post-47","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sqlserver","category-vintage","tag-backup-database","tag-checkpoint"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Principes d&#039;une sauvegarde \u00e0 chaud - Capdata TECH BLOG<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Principes d&#039;une sauvegarde \u00e0 chaud - Capdata TECH BLOG\" \/>\n<meta property=\"og:description\" content=\"Rien de plus simple de que faire une sauvegarde sur SQL Server: BACKUP DATABASE maBase to disk=&#039;D:MSSQL.1MSSQLBackupmaBase.bak&#039; with init, stats 10 percent processed. 21 percent processed. 32 percent processed. 43 percent processed. 54 percent processed. 60 percent processed. 71 percent&hellip; Continuer la lecture &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/\" \/>\n<meta property=\"og:site_name\" content=\"Capdata TECH BLOG\" \/>\n<meta property=\"article:published_time\" content=\"2008-12-12T15:00:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-04-20T06:03:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2008\/12\/depositphotos_96530818-stock-photo-businessman-pressing-printers-button.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"450\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"David Baffaleuf\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"David Baffaleuf\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/\"},\"author\":{\"name\":\"David Baffaleuf\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/person\/136297da9f61d6e4878abe0f48bc5fbf\"},\"headline\":\"Principes d&#8217;une sauvegarde \u00e0 chaud\",\"datePublished\":\"2008-12-12T15:00:47+00:00\",\"dateModified\":\"2023-04-20T06:03:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/\"},\"wordCount\":1035,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/blog.capdata.fr\/#organization\"},\"keywords\":[\"backup database\",\"checkpoint\"],\"articleSection\":[\"SQL Server\",\"Vintage\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/\",\"url\":\"https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/\",\"name\":\"Principes d'une sauvegarde \u00e0 chaud - Capdata TECH BLOG\",\"isPartOf\":{\"@id\":\"https:\/\/blog.capdata.fr\/#website\"},\"datePublished\":\"2008-12-12T15:00:47+00:00\",\"dateModified\":\"2023-04-20T06:03:40+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/blog.capdata.fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Principes d&#8217;une sauvegarde \u00e0 chaud\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.capdata.fr\/#website\",\"url\":\"https:\/\/blog.capdata.fr\/\",\"name\":\"Capdata TECH BLOG\",\"description\":\"Le blog technique sur les bases de donn\u00e9es de CAP DATA Consulting\",\"publisher\":{\"@id\":\"https:\/\/blog.capdata.fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.capdata.fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/blog.capdata.fr\/#organization\",\"name\":\"Capdata TECH BLOG\",\"url\":\"https:\/\/blog.capdata.fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp\",\"contentUrl\":\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp\",\"width\":800,\"height\":254,\"caption\":\"Capdata TECH BLOG\"},\"image\":{\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/company\/cap-data-consulting\/mycompany\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/person\/136297da9f61d6e4878abe0f48bc5fbf\",\"name\":\"David Baffaleuf\",\"sameAs\":[\"http:\/\/www.capdata.fr\"],\"url\":\"https:\/\/blog.capdata.fr\/index.php\/author\/dbaffaleuf\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Principes d'une sauvegarde \u00e0 chaud - Capdata TECH BLOG","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/","og_locale":"fr_FR","og_type":"article","og_title":"Principes d'une sauvegarde \u00e0 chaud - Capdata TECH BLOG","og_description":"Rien de plus simple de que faire une sauvegarde sur SQL Server: BACKUP DATABASE maBase to disk='D:MSSQL.1MSSQLBackupmaBase.bak' with init, stats 10 percent processed. 21 percent processed. 32 percent processed. 43 percent processed. 54 percent processed. 60 percent processed. 71 percent&hellip; Continuer la lecture &rarr;","og_url":"https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/","og_site_name":"Capdata TECH BLOG","article_published_time":"2008-12-12T15:00:47+00:00","article_modified_time":"2023-04-20T06:03:40+00:00","og_image":[{"width":450,"height":300,"url":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2008\/12\/depositphotos_96530818-stock-photo-businessman-pressing-printers-button.jpg","type":"image\/jpeg"}],"author":"David Baffaleuf","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"David Baffaleuf","Dur\u00e9e de lecture estim\u00e9e":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/#article","isPartOf":{"@id":"https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/"},"author":{"name":"David Baffaleuf","@id":"https:\/\/blog.capdata.fr\/#\/schema\/person\/136297da9f61d6e4878abe0f48bc5fbf"},"headline":"Principes d&#8217;une sauvegarde \u00e0 chaud","datePublished":"2008-12-12T15:00:47+00:00","dateModified":"2023-04-20T06:03:40+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/"},"wordCount":1035,"commentCount":1,"publisher":{"@id":"https:\/\/blog.capdata.fr\/#organization"},"keywords":["backup database","checkpoint"],"articleSection":["SQL Server","Vintage"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/","url":"https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/","name":"Principes d'une sauvegarde \u00e0 chaud - Capdata TECH BLOG","isPartOf":{"@id":"https:\/\/blog.capdata.fr\/#website"},"datePublished":"2008-12-12T15:00:47+00:00","dateModified":"2023-04-20T06:03:40+00:00","breadcrumb":{"@id":"https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.capdata.fr\/index.php\/sql-server-principes-dune-sauvegarde-a-chaud\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/blog.capdata.fr\/"},{"@type":"ListItem","position":2,"name":"Principes d&#8217;une sauvegarde \u00e0 chaud"}]},{"@type":"WebSite","@id":"https:\/\/blog.capdata.fr\/#website","url":"https:\/\/blog.capdata.fr\/","name":"Capdata TECH BLOG","description":"Le blog technique sur les bases de donn\u00e9es de CAP DATA Consulting","publisher":{"@id":"https:\/\/blog.capdata.fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.capdata.fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/blog.capdata.fr\/#organization","name":"Capdata TECH BLOG","url":"https:\/\/blog.capdata.fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/","url":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp","contentUrl":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp","width":800,"height":254,"caption":"Capdata TECH BLOG"},"image":{"@id":"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/cap-data-consulting\/mycompany\/"]},{"@type":"Person","@id":"https:\/\/blog.capdata.fr\/#\/schema\/person\/136297da9f61d6e4878abe0f48bc5fbf","name":"David Baffaleuf","sameAs":["http:\/\/www.capdata.fr"],"url":"https:\/\/blog.capdata.fr\/index.php\/author\/dbaffaleuf\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/47","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/comments?post=47"}],"version-history":[{"count":27,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/47\/revisions"}],"predecessor-version":[{"id":9534,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/47\/revisions\/9534"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/media\/7991"}],"wp:attachment":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/media?parent=47"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/categories?post=47"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/tags?post=47"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}