{"id":92367,"date":"2020-08-26T07:42:09","date_gmt":"2020-08-26T05:42:09","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/putevoditel-po-rezervnomu-kopirovaniyu-baz-dannyh"},"modified":"2020-08-26T07:42:09","modified_gmt":"2020-08-26T05:42:09","slug":"putevoditel-po-rezervnomu-kopirovaniyu-baz-dannyh","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/putevoditel-po-rezervnomu-kopirovaniyu-baz-dannyh","title":{"rendered":"Guide de sauvegarde des bases de donn\u00e9es","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<blockquote><p>\u2013 Ah, aucun abri ne r\u00e9sistera \u00e0 l'impact d'une m\u00e9t\u00e9orite. Mais vous avez, comme tout le monde, un plan de secours, donc vous pouvez \u00eatre tranquille.<\/p>\n<p><i>Stanislas Lem, \u00ab Les Journaux des \u00e9toiles d'Ijon Tich\u00fd \u00bb<\/i><\/p><\/blockquote>\n<p>\nLa sauvegarde consiste \u00e0 conserver une copie des donn\u00e9es quelque part en dehors de leur emplacement principal de stockage.<\/p>\n<p><img decoding=\"async\" alt=\"Guide de sauvegarde des bases de donn\u00e9es\" src=\"\/wp-content\/uploads\/2020\/08\/c1dba0d8999cab69315560dfc57546e0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nL'objectif principal de la sauvegarde est la r\u00e9cup\u00e9ration des donn\u00e9es apr\u00e8s leur perte. \u00c0 cet \u00e9gard, on entend souvent dire que si une r\u00e9plique de la base de donn\u00e9es existe, il est toujours possible de r\u00e9cup\u00e9rer les donn\u00e9es, et que la sauvegarde n'est pas n\u00e9cessaire. En r\u00e9alit\u00e9, la sauvegarde permet de r\u00e9soudre au moins trois probl\u00e8mes qui ne peuvent pas \u00eatre r\u00e9solus par une r\u00e9plique, et on ne peut m\u00eame pas initialiser une r\u00e9plique sans sauvegarde.<\/p>\n<p>Tout d'abord, une sauvegarde permet de restaurer des donn\u00e9es apr\u00e8s une erreur logique. Par exemple, un comptable a supprim\u00e9 un groupe d'\u00e9critures ou un administrateur de base de donn\u00e9es a d\u00e9truit un espace de table. Ces deux op\u00e9rations sont parfaitement l\u00e9gitimes du point de vue de la base de donn\u00e9es, et le processus de r\u00e9plication les reproduira dans la base de donn\u00e9es r\u00e9pliqu\u00e9e.<\/p>\n<p>Deuxi\u00e8mement, les SGBD modernes sont des logiciels tr\u00e8s fiables, mais il arrive parfois que des structures internes de la base de donn\u00e9es se corrompent, rendant l'acc\u00e8s aux donn\u00e9es impossible. Ce qui est particuli\u00e8rement frustrant, c'est que ce type de d\u00e9faillance survient g\u00e9n\u00e9ralement sous une forte charge ou lors de l'installation d'une mise \u00e0 jour. Cependant, tant une forte charge qu'une mise \u00e0 jour r\u00e9guli\u00e8re indiquent que la base de donn\u00e9es n'est en aucun cas un environnement de test, et que les donn\u00e9es qu'elle contient sont pr\u00e9cieuses.<\/p>\n<p>Enfin, la troisi\u00e8me t\u00e2che qui n\u00e9cessite une sauvegarde est le clonage de la base, par exemple, \u00e0 des fins de test.<\/p>\n<p>La sauvegarde des bases de donn\u00e9es repose d'une mani\u00e8re ou d'une autre sur l'un des deux principes suivants :<\/p>\n<ul>\n<li>Extraction des donn\u00e9es suivie d'un enregistrement dans un format arbitraire ;<\/li>\n<li>Instantan\u00e9 de l'\u00e9tat des fichiers de la base de donn\u00e9es et enregistrement des journaux.<\/li>\n<\/ul>\n<p>\nExaminons ces principes et les outils qui les mettent en \u0153uvre plus en d\u00e9tail.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Extraction des donn\u00e9es<\/h3>\n<p>\nDans l'ensemble d'outils fournis avec tout SGBD, il y a n\u00e9cessairement des outils pour l'extraction et le chargement des donn\u00e9es. Les donn\u00e9es sont enregistr\u00e9es soit dans un format texte, soit dans un format binaire sp\u00e9cifique au SGBD. Le tableau ci-dessous contient une liste de ces outils :<\/p>\n<p>Format binaire<br \/>\nFormat texte<\/p>\n<p>Oracle<br \/>\nDataPump Export\/DataPump Import<br \/>\nExport\/Import<br \/>\nSQL*Plus\/SQL*Loader<\/p>\n<p>PostgreSQL<br \/>\npg_dump, pg_dumpall\/pg_restore<br \/>\npg_dump, pg_dumpall\/psql<\/p>\n<p>Microsoft SQL Server<br \/>\nbcp<br \/>\nbcp<\/p>\n<p>DB2<br \/>\nunload\/load<br \/>\nunload\/load<\/p>\n<p>MySQL<\/p>\n<p>mysqldump, mysqlpump\/mysql, mysqlimport<\/p>\n<p>MongoDB<br \/>\nmongodump\/mongorestore<br \/>\nmongoexport\/mongoimport<\/p>\n<p>Cassandra<br \/>\nnodetool snapshot\/sstableloader<br \/>\ncqlsh<\/p>\n<p>\nLe format texte est bon car il peut \u00eatre \u00e9dit\u00e9 ou m\u00eame cr\u00e9\u00e9 par des programmes externes, tandis que le format binaire est bon car il permet de charger et d\u00e9charger les donn\u00e9es plus rapidement en \u00e9conomisant des ressources sur la conversion des formats.<\/p>\n<p>Malgr\u00e9 la simplicit\u00e9 et l'\u00e9vidence de l'id\u00e9e de d\u00e9charger des donn\u00e9es, cette m\u00e9thode est rarement utilis\u00e9e pour sauvegarder des bases de donn\u00e9es industrielles charg\u00e9es. Voici les raisons pour lesquelles le d\u00e9chargement ne convient pas \u00e0 une sauvegarde compl\u00e8te :<\/p>\n<ul>\n<li>Le processus de d\u00e9chargement impose une charge significative sur le syst\u00e8me source ;<\/li>\n<li>Le d\u00e9chargement prend beaucoup de temps \u2013 au moment de la fin du d\u00e9chargement, il sera d\u00e9j\u00e0 obsol\u00e8te ;<\/li>\n<li>Il est pratiquement impossible d'effectuer un d\u00e9chargement coh\u00e9rent de l'ensemble de la base de donn\u00e9es sous une forte charge, car le SGBD doit conserver une image de son \u00e9tat au moment du d\u00e9but du d\u00e9chargement. Plus il y a de transactions effectu\u00e9es depuis le d\u00e9but du d\u00e9chargement, plus le volume de l'image (copies obsol\u00e8tes des donn\u00e9es dans PostgreSQL, espace undo dans Oracle, tempdb dans Microsoft SQL Server, etc.) est important ;<\/li>\n<li>Le d\u00e9chargement conserve la structure logique des donn\u00e9es, mais ne conserve pas leur structure physique \u2013 les param\u00e8tres de stockage physique des tables, les index, etc.<\/li>\n<\/ul>\n<p>\nN\u00e9anmoins, le d\u00e9chargement a ses avantages :<\/p>\n<ul>\n<li>Haute s\u00e9lectivit\u00e9 : il est possible de d\u00e9charger des tables sp\u00e9cifiques, des champs sp\u00e9cifiques et m\u00eame des lignes sp\u00e9cifiques ;<\/li>\n<li>Les donn\u00e9es d\u00e9charg\u00e9es peuvent \u00eatre charg\u00e9es dans une base de donn\u00e9es d'une autre version, et si le d\u00e9chargement est effectu\u00e9 au format texte, alors dans une autre base de donn\u00e9es.<\/li>\n<\/ul>\n<p>\nAinsi, le d\u00e9chargement est principalement utilis\u00e9 pour des t\u00e2ches telles que la sauvegarde de petites tables (par exemple, des r\u00e9pertoires) ou la distribution de jeux de donn\u00e9es avec la prochaine version de l'application. <\/p>\n<p>Le m\u00e9thode la plus commune de sauvegarde des bases de donn\u00e9es est la copie des fichiers de la base.<\/p>\n<h3>Sauvegarde \u00ab froide \u00bb des fichiers de la base de donn\u00e9es<\/h3>\n<p>\nL'id\u00e9e \u00e9vidente est d'arr\u00eater la base de donn\u00e9es et de copier tous ses fichiers. Cette sauvegarde est appel\u00e9e \u00ab froide \u00bb. C'est une m\u00e9thode extr\u00eamement fiable et simple, mais elle pr\u00e9sente deux inconv\u00e9nients \u00e9vidents :<\/p>\n<ul>\n<li>Depuis une sauvegarde \u00ab froide \u00bb, il est possible de restaurer uniquement l'\u00e9tat de la base de donn\u00e9es tel qu'il \u00e9tait au moment de l'arr\u00eat ; les transactions effectu\u00e9es apr\u00e8s le red\u00e9marrage de la base ne seront pas incluses dans la sauvegarde \u00ab froide \u00bb.<\/li>\n<li>Toutes les bases de donn\u00e9es ne disposent pas n\u00e9cessairement d'une fen\u00eatre technologique pendant laquelle la base peut \u00eatre arr\u00eat\u00e9e.<\/li>\n<\/ul>\n<p>\nCependant, si la sauvegarde \u00ab froide \u00bb vous convient, il est important de se souvenir que<\/p>\n<ul>\n<li>la copie \u00ab froide \u00bb doit parfois inclure les journaux. Les m\u00e9thodes pour d\u00e9terminer quels journaux doivent \u00eatre inclus dans la sauvegarde \u00ab froide \u00bb varient selon chaque SGBD. Par exemple, dans Oracle, il est n\u00e9cessaire de copier ce que l'on appelle les redo logs en ligne, c'est-\u00e0-dire un certain nombre de fichiers journaux dans un r\u00e9pertoire sp\u00e9cial, m\u00eame lorsque la base est correctement arr\u00eat\u00e9e. Dans PostgreSQL, il faut conserver tous les journaux \u00e0 partir du journal contenant le dernier point de contr\u00f4le, dont les informations sont stock\u00e9es dans le fichier de contr\u00f4le.<\/li>\n<li>Le r\u00e9pertoire de la base de donn\u00e9es peut contenir des fichiers assez volumineux d'espaces de tables temporaires qui ne doivent pas forc\u00e9ment \u00eatre inclus dans la sauvegarde. D'ailleurs, cette remarque est \u00e9galement valable pour la sauvegarde \u00ab chaude \u00bb.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Sauvegarde \u00ab chaude \u00bb des fichiers<\/h3>\n<p>\nLa plupart des sauvegardes des bases de donn\u00e9es modernes sont r\u00e9alis\u00e9es en copiant les fichiers de la base de donn\u00e9es sans arr\u00eater la base. Plusieurs probl\u00e8mes peuvent se poser \u00e0 cet \u00e9gard :<\/p>\n<ul>\n<li>Au moment o\u00f9 le processus de copie commence, le contenu de la base de donn\u00e9es peut ne pas correspondre au contenu des fichiers, car une partie des informations est dans le cache et n'a pas encore \u00e9t\u00e9 \u00e9crite sur le disque.<\/li>\n<li>Pendant la copie, le contenu de la base peut changer. Si des structures de donn\u00e9es modifiables sont utilis\u00e9es, le contenu des fichiers change, et si des structures immuables sont utilis\u00e9es, l'ensemble des fichiers change : de nouveaux fichiers apparaissent tandis que les anciens sont supprim\u00e9s.<\/li>\n<li>\u00c9tant donn\u00e9 que l'\u00e9criture de donn\u00e9es dans la base et la lecture des fichiers de la base de donn\u00e9es ne sont pas synchronis\u00e9es, le programme de sauvegarde peut lire une page incorrecte, o\u00f9 une moiti\u00e9 proviendra de l'ancienne version de la page et l'autre moiti\u00e9 de la nouvelle.<\/li>\n<\/ul>\n<p>\nPour qu'une sauvegarde soit coh\u00e9rente, chaque SGBD dispose d'une commande qui signale le d\u00e9but du processus de sauvegarde. Syntaxiquement, cette commande peut varier : <\/p>\n<ul>\n<li>dans Oracle, il s'agit d'une commande distincte ALTER DATABASE\/TABLESPACE BEGIN BACKUP ;<\/li>\n<li>dans PostgreSQL, il s'agit de la fonction pg_start_backup();<\/li>\n<li>Dans Microsoft SQL Server et DB2, la pr\u00e9paration pour la sauvegarde est effectu\u00e9e implicitement lors de l'ex\u00e9cution de la commande BACKUP DATABASE.<\/li>\n<li>Dans MySQL Enterprise, Cassandra et MongoDB, la pr\u00e9paration est effectu\u00e9e implicitement par des utilitaires externes - mysqlbackup, OpsCenter et Ops Manager respectivement.<\/li>\n<\/ul>\n<p>\nMalgr\u00e9 les diff\u00e9rences syntaxiques, le processus de pr\u00e9paration \u00e0 la sauvegarde est identique.<\/p>\n<p>Voici \u00e0 quoi ressemble la pr\u00e9paration \u00e0 la sauvegarde dans les SGBD avec des structures de disque \u00e9volutives, c'est-\u00e0-dire dans tous les syst\u00e8mes relationnels traditionnels sur disque :<\/p>\n<ol>\n<li>Le moment de d\u00e9but de la sauvegarde est enregistr\u00e9 ; la sauvegarde devra inclure les journaux de la base de donn\u00e9es \u00e0 partir de ce moment.<\/li>\n<li>Un point de contr\u00f4le est r\u00e9alis\u00e9, ce qui signifie que toutes les modifications apport\u00e9es aux pages de donn\u00e9es avant le moment enregistr\u00e9 sont \u00e9crites sur le disque. Cela garantit que les journaux avant le d\u00e9but de la sauvegarde ne seront pas n\u00e9cessaires lors de la restauration.<\/li>\n<li>Un mode de journalisation sp\u00e9cial est activ\u00e9 : si une page de donn\u00e9es a \u00e9t\u00e9 modifi\u00e9e pour la premi\u00e8re fois apr\u00e8s avoir \u00e9t\u00e9 charg\u00e9e depuis le disque, alors au lieu d'enregistrer dans le journal les modifications de la page, la base enregistrera la page enti\u00e8re. Lors de l'ex\u00e9cution de la proc\u00e9dure pr\u00e9paratoire, toutes les pages sont expuls\u00e9es sur le disque, et donc lors de la premi\u00e8re modification, le bloc sera toujours enregistr\u00e9 dans le journal dans son int\u00e9gralit\u00e9. Mais si durant la sauvegarde, la page est \u00e0 nouveau expuls\u00e9e sur le disque, alors sa modification suivante entra\u00eenera \u00e9galement l'apparition dans le journal d'une copie compl\u00e8te de la page. Cela garantit que si, par inadvertance, la page de donn\u00e9es devient incorrecte lors de la copie de fichier, l'application du journal la rendra correcte \u00e0 nouveau.<\/li>\n<li>Les modifications des en-t\u00eates de fichiers de donn\u00e9es sont bloqu\u00e9es, c'est-\u00e0-dire la partie de celui-ci, les modifications de laquelle ne sont pas refl\u00e9t\u00e9es dans les journaux. Cela garantit que l'en-t\u00eate sera copi\u00e9 correctement, et ensuite les journaux seront appliqu\u00e9s correctement au fichier de donn\u00e9es.<\/li>\n<\/ol>\n<p>\nUne fois que toutes les proc\u00e9dures ci-dessus ont \u00e9t\u00e9 ex\u00e9cut\u00e9es, il est possible de copier les fichiers de donn\u00e9es \u00e0 l'aide du syst\u00e8me d'exploitation, tels que cp, rsync et autres. L'activation du mode de sauvegarde r\u00e9duit les performances de la base de donn\u00e9es : d'une part, le volume des journaux augmente, et d'autre part, en cas d'\u00e9chec pendant la sauvegarde, la restauration sera plus longue car les en-t\u00eates des fichiers de donn\u00e9es ne sont pas mis \u00e0 jour. Plus la sauvegarde est rapide, mieux c'est pour la base de donn\u00e9es, c'est pourquoi il est appropri\u00e9 d'utiliser des outils tels que les snapshots du syst\u00e8me de fichiers ou le d\u00e9chirement de miroir (BCV) dans le tableau de stockage. Certaines SGBD (Oracle, PostgreSQL) laissent \u00e0 l'administrateur la possibilit\u00e9 de choisir la m\u00e9thode de copie, tandis que d'autres (Microsoft SQL Server) fournissent une interface pour int\u00e9grer leurs propres outils de sauvegarde avec les m\u00e9canismes des syst\u00e8mes de fichiers ou des dispositifs de stockage.<\/p>\n<p>\u00c0 la fin de la sauvegarde, il est n\u00e9cessaire de remettre la base de donn\u00e9es dans un \u00e9tat normal. Dans Oracle, cela se fait avec la commande ALTER DATABASE\/TABLESPACE END BACKUP, dans PostgreSQL avec l'appel de la fonction pg_stop_backup(), et dans d'autres bases, via des sous-programmes internes des commandes appropri\u00e9es ou de services externes.<\/p>\n<p>Voici \u00e0 quoi ressemble le diagramme temporel du processus de sauvegarde :<\/p>\n<p><img decoding=\"async\" alt=\"Guide de sauvegarde des bases de donn\u00e9es\" src=\"\/wp-content\/uploads\/2020\/08\/4e74f865e9f35acec083b747da4449cf.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<ul>\n<li>La pr\u00e9paration de la sauvegarde (begin backup) prend du temps, parfois consid\u00e9rable. M\u00eame si des volumes miroirs ou des syst\u00e8mes de fichiers avec des capacit\u00e9s de snapshot sont utilis\u00e9s, le processus de sauvegarde ne sera pas instantan\u00e9.<\/li>\n<li>Avec les fichiers de donn\u00e9es, il est n\u00e9cessaire de conserver les journaux \u00e0 partir du moment du d\u00e9but de la pr\u00e9paration de la sauvegarde jusqu'au moment de la restitution de la base \u00e0 son \u00e9tat normal.<\/li>\n<li>Il est possible de restaurer \u00e0 partir de cette sauvegarde <b>au moment du retour de la base \u00e0 son \u00e9tat normal<\/b>. La restauration \u00e0 un moment ant\u00e9rieur n'est pas possible.<\/li>\n<\/ul>\n<p>\nPour les bases de donn\u00e9es utilisant des structures de donn\u00e9es immuables (snapshots de m\u00e9moire, arbres LSM), la situation est plus simple. La pr\u00e9paration de la sauvegarde consiste en plusieurs \u00e9tapes :<\/p>\n<ol>\n<li>Les donn\u00e9es de la m\u00e9moire sont \u00e9crites sur disque.<\/li>\n<li>Une liste des fichiers inclus dans la sauvegarde est enregistr\u00e9e. Tant que le processus de sauvegarde n'est pas termin\u00e9, la base est interdite de supprimer ces fichiers, m\u00eame s'ils ne sont plus n\u00e9cessaires.<\/li>\n<\/ol>\n<p>\n\u00c0 la fin de la sauvegarde, la base avec des structures immuables peut de nouveau supprimer les fichiers inutiles.<\/p>\n<h3>R\u00e9cup\u00e9ration \u00e0 un point<\/h3>\n<p>\nLa sauvegarde permet de restaurer l'\u00e9tat de la base de donn\u00e9es au moment o\u00f9 la commande de retour du mode de sauvegarde a \u00e9t\u00e9 termin\u00e9e. Cependant, une panne n\u00e9cessitant une r\u00e9cup\u00e9ration peut survenir \u00e0 tout moment. La t\u00e2che de restauration de l'\u00e9tat de la base de donn\u00e9es \u00e0 un moment donn\u00e9 s'appelle \u00ab r\u00e9cup\u00e9ration \u00e0 un point \u00bb (point-in-time recovery).<\/p>\n<p>Pour garantir cette possibilit\u00e9, il est n\u00e9cessaire de conserver les journaux de la base de donn\u00e9es \u00e0 partir du moment o\u00f9 la sauvegarde est termin\u00e9e, et durant le processus de restauration, continuer \u00e0 appliquer les journaux \u00e0 la copie restaur\u00e9e. Une fois la base de donn\u00e9es restaur\u00e9e \u00e0 partir de la sauvegarde au moment de la fin de la copie, l'\u00e9tat de la base (des fichiers et des pages mises en cache) est garantis comme \u00e9tant correct, donc un mode sp\u00e9cial de journalisation n'est pas n\u00e9cessaire. En appliquant les journaux jusqu'au moment voulu, on peut obtenir l'\u00e9tat de la base de donn\u00e9es \u00e0 n'importe quel moment.<\/p>\n<p>Si la vitesse de restauration de la sauvegarde est limit\u00e9e uniquement par la bande passante du disque, la vitesse d'application des journaux est g\u00e9n\u00e9ralement limit\u00e9e par la performance du processeur. Si des modifications se produisent parall\u00e8lement dans la base de donn\u00e9es principale, alors \u00e0 la r\u00e9cup\u00e9ration, toutes les modifications s'effectuent de mani\u00e8re s\u00e9quentielle \u2013 dans l'ordre de lecture \u00e0 partir du journal. Ainsi, le temps de restauration d\u00e9pend lin\u00e9airement de la distance entre le point de r\u00e9cup\u00e9ration et le point de fin de la sauvegarde. C'est pourquoi il est souvent n\u00e9cessaire de faire des sauvegardes compl\u00e8tes \u2013 au moins une fois par semaine pour des bases avec une faible charge transactionnelle et jusqu'\u00e0 une sauvegarde quotidienne pour des bases \u00e0 forte charge.<\/p>\n<h3>Sauvegarde incr\u00e9mentielle<\/h3>\n<p>\nPour acc\u00e9l\u00e9rer la r\u00e9cup\u00e9ration \u00e0 un point, il serait souhaitable de pouvoir effectuer des sauvegardes aussi souvent que possible, tout en ne prenant pas trop de place sur les disques et en ne surchargeant pas la base avec des t\u00e2ches de sauvegarde.<\/p>\n<p>La solution \u00e0 ce probl\u00e8me est la sauvegarde incr\u00e9mentielle, c'est-\u00e0-dire la copie uniquement des pages de donn\u00e9es qui ont chang\u00e9 depuis la derni\u00e8re sauvegarde.<br \/>\nLa sauvegarde incr\u00e9mentielle n'a de sens que pour les SGBD utilisant des structures de donn\u00e9es modifiables.<\/p>\n<p>L'incr\u00e9ment peut \u00eatre calcul\u00e9 \u00e0 partir d'une sauvegarde compl\u00e8te (sauvegarde cumulative) ou de n'importe quelle copie pr\u00e9c\u00e9dente (sauvegarde diff\u00e9rentielle). <\/p>\n<p><img decoding=\"async\" alt=\"Guide de sauvegarde des bases de donn\u00e9es\" src=\"\/wp-content\/uploads\/2020\/08\/10e3bb87445cb36693c7b5469d62eeaf.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMalheureusement, il n'existe pas de terminologie uniforme, et diff\u00e9rents fabricants utilisent diff\u00e9rents termes :<\/p>\n<p>Diff\u00e9rentielle<br \/>\nCumulative<\/p>\n<p>Oracle<br \/>\nDiff\u00e9rentielle<br \/>\nCumulative<\/p>\n<p>PostgresPro<br \/>\nIncr\u00e9mental<br \/>\n\u2014<\/p>\n<p>Microsoft SQL Server<br \/>\n\u2014<br \/>\nDiff\u00e9rentielle<\/p>\n<p>IBM DB2<br \/>\nDelta<br \/>\nIncr\u00e9mental<\/p>\n<p>\nEn pr\u00e9sence de copies incr\u00e9mentielles, le processus de restauration \u00e0 un point donn\u00e9 est le suivant :<\/p>\n<ul>\n<li>la derni\u00e8re sauvegarde compl\u00e8te, effectu\u00e9e avant le moment de la restauration, est restaur\u00e9e ;<\/li>\n<li>les copies incr\u00e9mentielles sont restaur\u00e9es par-dessus la copie compl\u00e8te ;<\/li>\n<li>les journaux sont appliqu\u00e9s depuis le d\u00e9but de la sauvegarde jusqu'au point de restauration.<\/li>\n<\/ul>\n<p>\nLa pr\u00e9sence d'une copie cumulative acc\u00e9l\u00e8re le processus de restauration. Par exemple, pour restaurer l'\u00e9tat de la base \u00e0 un point entre T3 et T4, il faut restaurer deux copies incr\u00e9mentielles, alors que pour restaurer \u00e0 un point apr\u00e8s T4, il suffit d'une seule.<br \/>\nIl est \u00e9vident qu'une copie cumulative occupe moins d'espace qu'un ensemble de plusieurs copies diff\u00e9rentielles, car certaines pages ont chang\u00e9 plusieurs fois, et chaque copie incr\u00e9mentielle contient sa version de la page.<\/p>\n<p>Il existe trois m\u00e9thodes pour cr\u00e9er une copie incr\u00e9mentielle :<\/p>\n<ol>\n<li>cr\u00e9er une copie compl\u00e8te et calculer la diff\u00e9rence avec la pr\u00e9c\u00e9dente copie compl\u00e8te ;<\/li>\n<li>analyser les journaux, \u00e9tablir une liste des pages modifi\u00e9es et sauvegarder les pages figurant dans la liste ;<\/li>\n<li>demander les pages modifi\u00e9es dans la base de donn\u00e9es.<\/li>\n<\/ol>\n<p>\nLa premi\u00e8re m\u00e9thode \u00e9conomise de l'espace disque, mais ne r\u00e9sout pas le probl\u00e8me de la r\u00e9duction de la charge sur la base de donn\u00e9es. De plus, si nous avons une sauvegarde compl\u00e8te, il est inutile de la transformer en incr\u00e9mentielle, car la restauration de la copie compl\u00e8te est plus rapide que celle de la pr\u00e9c\u00e9dente copie compl\u00e8te et de l'incr\u00e9ment. Pour \u00e9conomiser de l'espace disque avec cette approche, il vaut mieux s'en remettre \u00e0 des composants sp\u00e9cifiques avec des m\u00e9canismes de d\u00e9duplication int\u00e9gr\u00e9s. Cela peut inclure des syst\u00e8mes de stockage sp\u00e9cialis\u00e9s (EMC DataDomain, HPE StorageWorks VLS, toute la gamme NetApp), ainsi que des produits logiciels (ZFS, Veritas NetBackup PureFile, D\u00e9-duplication de donn\u00e9es de Windows Server).<\/p>\n<p>La deuxi\u00e8me et la troisi\u00e8me m\u00e9thode se distinguent par leur m\u00e9canisme de d\u00e9termination de la liste des pages modifi\u00e9es. L'analyse des journaux est plus gourmande en ressources, et pour cela, il est n\u00e9cessaire de conna\u00eetre la structure des fichiers journaux. Interroger directement la base sur les pages qui ont chang\u00e9 est le moyen le plus simple, mais cela n\u00e9cessite que le noyau du SGBD dispose d'une fonctionnalit\u00e9 de suivi des blocs modifi\u00e9s (block change tracking).<\/p>\n<p>La fonctionnalit\u00e9 de sauvegarde incr\u00e9mentielle a \u00e9t\u00e9 introduite pour la premi\u00e8re fois dans le logiciel Oracle Recovery Manager (RMAN), disponible avec la version Oracle 8i. Oracle a imm\u00e9diatement mis en \u0153uvre le suivi des blocs modifi\u00e9s, \u00e9liminant ainsi le besoin d'analyser les journaux.<\/p>\n<p>PostgreSQL ne suit pas les blocs modifi\u00e9s, c'est pourquoi l'outil pg_probackup, d\u00e9velopp\u00e9 par la soci\u00e9t\u00e9 russe Postgres Professional, d\u00e9termine les pages modifi\u00e9es en analysant les journaux. Cependant, la soci\u00e9t\u00e9 fournit aussi le SGBD PostgresPro, qui inclut l'extension ptrack permettant de suivre les modifications des pages. En utilisant pg_probackup avec le SGBD PostgresPro, l'outil interroge la base sur les pages modifi\u00e9es, tout comme le fait RMAN.<\/p>\n<p>Microsoft SQL Server, tout comme Oracle, suit les pages modifi\u00e9es, mais la commande BACKUP ne permet de r\u00e9aliser que des sauvegardes compl\u00e8tes et cumulatives.<\/p>\n<p>DB2 offre la possibilit\u00e9 de suivre les pages modifi\u00e9es, mais cela est d\u00e9sactiv\u00e9 par d\u00e9faut. Une fois activ\u00e9, DB2 permet de r\u00e9aliser des sauvegardes compl\u00e8tes, diff\u00e9rentielles et cumulatives.<\/p>\n<p>Un aspect important qui distingue les outils d\u00e9crits dans cette section (\u00e0 l'exception de pg_probackup) des outils de sauvegarde de fichiers est qu'ils demandent des images de pages \u00e0 la base de donn\u00e9es, plut\u00f4t que de lire les donn\u00e9es directement sur le disque. L'inconv\u00e9nient de cette approche est une l\u00e9g\u00e8re surcharge suppl\u00e9mentaire sur la base. Toutefois, cet inconv\u00e9nient est largement compens\u00e9 par le fait que la page lue est toujours correcte, \u00e9vitant ainsi la n\u00e9cessit\u00e9 d'activer un mode de journalisation sp\u00e9cial pendant la sauvegarde.<\/p>\n<p>Il est important de rappeler que la pr\u00e9sence de sauvegardes incr\u00e9mentales ne supprime pas l'exigence de disposer de journaux pour une r\u00e9cup\u00e9ration \u00e0 un moment pr\u00e9cis. C'est pourquoi, dans les bases de donn\u00e9es industrielles, les journaux sont continuellement \u00e9crits sur un support externe, tandis que des sauvegardes, compl\u00e8tes et\/ou incr\u00e9mentales, sont cr\u00e9\u00e9es selon un calendrier.<\/p>\n<p>La meilleure r\u00e9alisation \u00e0 ce jour de l'id\u00e9e de sauvegarde incr\u00e9mentale est le syst\u00e8me logiciel et mat\u00e9riel (en termes d'Oracle - syst\u00e8me con\u00e7u) Zero Data Loss Recovery Appliance - une solution sp\u00e9cialis\u00e9e d'Oracle pour la sauvegarde de sa propre base de donn\u00e9es. Le syst\u00e8me est un cluster <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/fr\/server\/\"   title=\"serveurs\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1521\">serveurs<\/a> avec un grand volume de disques, sur lesquels est install\u00e9e une version modifi\u00e9e du logiciel Recovery Manager et peut fonctionner \u00e0 la fois avec d'autres syst\u00e8mes logiciels et mat\u00e9riels d'Oracle (Database Appliance, Exadata, SPARC Supercluster) et avec des bases Oracle sur une infrastructure traditionnelle. Contrairement \u00e0 un RMAN 'classique', le ZDLRA met en \u0153uvre le concept d'\u00ab incr\u00e9ment permanent \u00bb (incremental forever). Le syst\u00e8me cr\u00e9e une seule fois une copie compl\u00e8te de la base de donn\u00e9es, puis ne r\u00e9alise que des copies incr\u00e9mentales. Des modules suppl\u00e9mentaires RMAN permettent de regrouper les copies, cr\u00e9ant ainsi de nouvelles copies compl\u00e8tes \u00e0 partir des copies incr\u00e9mentales. <\/p>\n<p>\u00c0 l'honneur des d\u00e9veloppeurs russes, il convient de noter que pg_probackup sait \u00e9galement regrouper les copies incr\u00e9mentales.<\/p>\n<p><img decoding=\"async\" alt=\"Guide de sauvegarde des bases de donn\u00e9es\" src=\"\/wp-content\/uploads\/2020\/08\/275b649ce74614c04410618a062dddbd.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nContrairement \u00e0 de nombreuses questions similaires, la question de savoir 'quel est le meilleur mode de sauvegarde' a une r\u00e9ponse claire - c'est la meilleure utilitaire native \u00e0 la base de donn\u00e9es utilis\u00e9e, qui permet la sauvegarde incr\u00e9mentale.<\/p>\n<p>Pour l'administrateur de base de donn\u00e9es, les questions de choix d'une strat\u00e9gie de sauvegarde et d'int\u00e9gration des outils de sauvegarde de bases de donn\u00e9es dans l'infrastructure d'entreprise sont beaucoup plus importantes. Mais ces questions d\u00e9passent le cadre de cet article.<br \/>\n<br \/>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/516428\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u2013 \u041e, \u043d\u0438\u043a\u0430\u043a\u043e\u0435 \u0443\u0431\u0435\u0436\u0438\u0449\u0435 \u043d\u0435 \u0432\u044b\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u043c\u0435\u0442\u0435\u043e\u0440\u0438\u0442\u0430. \u041d\u043e \u0432\u0435\u0434\u044c \u0443 \u0432\u0430\u0441, \u043a\u0430\u043a \u0438 \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e, \u0435\u0441\u0442\u044c \u0440\u0435\u0437\u0435\u0440\u0432, \u0442\u0430\u043a \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0435 \u0431\u0435\u0441\u043f\u043e\u043a\u043e\u0438\u0442\u044c\u0441\u044f. \u0421\u0442\u0430\u043d\u0438\u0441\u043b\u0430\u0432 \u041b\u0435\u043c, \u00ab\u0417\u0432\u0451\u0437\u0434\u043d\u044b\u0435 \u0434\u043d\u0435\u0432\u043d\u0438\u043a\u0438 \u0418\u0439\u043e\u043d\u0430 \u0422\u0438\u0445\u043e\u0433\u043e\u00bb \u0420\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u043c \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043f\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0433\u0434\u0435-\u0442\u043e \u0432\u043d\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 \u0438\u0445 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f. \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u2013 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0441\u043b\u0435 \u0438\u0445 \u043f\u043e\u0442\u0435\u0440\u0438. \u0412 \u0441\u0432\u044f\u0437\u0438 \u0441 \u044d\u0442\u0438\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":92368,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-92367","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u2013 \u041e, \u043d\u0438\u043a\u0430\u043a\u043e\u0435 \u0443\u0431\u0435\u0436\u0438\u0449\u0435 \u043d\u0435 \u0432\u044b\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u043c\u0435\u0442\u0435\u043e\u0440\u0438\u0442\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/putevoditel-po-rezervnomu-kopirovaniyu-baz-dannyh\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0443\u0442\u0435\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u043e \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u043c\u0443 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u2013 \u041e, \u043d\u0438\u043a\u0430\u043a\u043e\u0435 \u0443\u0431\u0435\u0436\u0438\u0449\u0435 \u043d\u0435 \u0432\u044b\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u043c\u0435\u0442\u0435\u043e\u0440\u0438\u0442\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/putevoditel-po-rezervnomu-kopirovaniyu-baz-dannyh\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-08-26T05:42:09+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-26T05:42:09+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Guide de la sauvegarde des bases de donn\u00e9es | ProHoster","description":"\u2013 Oh, aucun abri ne r\u00e9sistera \u00e0 l'impact d'une m\u00e9t\u00e9orite.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/putevoditel-po-rezervnomu-kopirovaniyu-baz-dannyh","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0443\u0442\u0435\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u043e \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u043c\u0443 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 | ProHoster","og:description":"\u2013 \u041e, \u043d\u0438\u043a\u0430\u043a\u043e\u0435 \u0443\u0431\u0435\u0436\u0438\u0449\u0435 \u043d\u0435 \u0432\u044b\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u043c\u0435\u0442\u0435\u043e\u0440\u0438\u0442\u0430.","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/putevoditel-po-rezervnomu-kopirovaniyu-baz-dannyh","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-08-26T05:42:09+00:00","article:modified_time":"2020-08-26T05:42:09+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"92367","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:09:36","updated":"2026-02-09 16:50:36","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/92367","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=92367"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/92367\/revisions"}],"predecessor-version":[{"id":158765,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/92367\/revisions\/158765"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/92368"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=92367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=92367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=92367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}