|
| 1 | +--- |
| 2 | +title: "Récupération des bases de données en mode rescue" |
| 3 | +slug: dedicated-servers-retrieve-database |
| 4 | +excerpt: "Découvrez comment accéder à vos bases de données et les enregistrer en mode rescue" |
| 5 | +section: Tutoriel |
| 6 | +updated: 2023-04-13 |
| 7 | +--- |
| 8 | + |
| 9 | +**Dernière mise à jour le 13/04/2023** |
| 10 | + |
| 11 | +## Objectif |
| 12 | + |
| 13 | +Le mode Rescue permet d'accéder à vos données en permanence, même si le système d'exploitation du serveur ou les logiciels hébergés sur celui-ci ne fonctionnent plus. |
| 14 | + |
| 15 | +**Découvrez comment accéder à votre système d'exploitation en mode rescue et récupérer les fichiers de base de données.** |
| 16 | + |
| 17 | +## Prérequis |
| 18 | + |
| 19 | +- Un [serveur dédié](https://www.ovhcloud.com/fr/bare-metal/), un [VPS](https://www.ovhcloud.com/fr/vps/) ou une instance [Public Cloud](https://www.ovhcloud.com/fr/public-cloud/) dans votre compte OVHcloud (hors systèmes Windows) |
| 20 | +- Être connecté à votre [espace client OVHcloud](https://www.ovh.com/auth/?action=gotomanager&from=https://www.ovh.com/fr/&ovhSubsidiary=fr) |
| 21 | + |
| 22 | + |
| 23 | +> [!warning] |
| 24 | +> |
| 25 | +> OVHcloud met à votre disposition des services dont la configuration, la gestion et la responsabilité vous incombent. Il vous revient de ce fait d'en assurer le bon fonctionnement. |
| 26 | +> |
| 27 | +> Ce tutoriel a pour but de vous accompagner au mieux sur des tâches courantes. Néanmoins, nous vous recommandons de faire appel à un [prestataire spécialisé](https://partner.ovhcloud.com/fr/directory/) ou de vous rapprocher de [notre communauté](https://community.ovh.com/) si vous éprouvez des difficultés ou des doutes concernant l’administration, l’utilisation ou la mise en place de services sur un serveur. |
| 28 | +> |
| 29 | +
|
| 30 | + |
| 31 | +## Instructions |
| 32 | + |
| 33 | +### Redémarrer votre serveur en mode rescue |
| 34 | + |
| 35 | +Suivez le guide correspondant pour passer votre service OVHcloud en mode rescue : |
| 36 | + |
| 37 | +- [Serveur dédié](https://docs.ovh.com/fr/dedicated/ovh-rescue/) |
| 38 | +- [VPS](https://docs.ovh.com/fr/vps/mode-rescue-vps/) |
| 39 | +- [Instance Public Cloud](https://docs.ovh.com/fr/public-cloud/passer-une-instance-en-mode-rescue/) |
| 40 | + |
| 41 | +Suivez les instructions de [cette section](#pci) pour un **VPS** ou une instance **Public Cloud**. Passez à la [section suivante](#dedicated) pour un serveur **dédié**. |
| 42 | + |
| 43 | +### Accéder à vos données sur un VPS ou une instance Public Cloud <a name="pci"></a> |
| 44 | + |
| 45 | +Nous devons d'abord identifier le point de montage contenant le `/` de notre système. |
| 46 | + |
| 47 | +Pour cela, vous pouvez utiliser les commandes `lsblk` et `fdisk -l`. |
| 48 | + |
| 49 | +- **exemple de sortie lsblk** : |
| 50 | + |
| 51 | +```output |
| 52 | +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT |
| 53 | +sda 8:0 0 2.5G 0 disk |
| 54 | +└─sda1 8:1 0 2.5G 0 part / |
| 55 | +sdb 8:16 0 10G 0 disk |
| 56 | +└─sdb1 8:17 0 10G 0 part |
| 57 | +``` |
| 58 | + |
| 59 | +- **fdisk -l** exemple de sortie : |
| 60 | + |
| 61 | +```output |
| 62 | +Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors |
| 63 | +Units: sectors of 1 * 512 = 512 bytes |
| 64 | +Sector size (logical/physical): 512 bytes / 512 bytes |
| 65 | +I/O size (minimum/optimal): 512 bytes / 512 bytes |
| 66 | +Disklabel type: dos |
| 67 | +Disk identifier: 0x961fcb1c |
| 68 | + |
| 69 | +Device Boot Start End Sectors Size Id Type |
| 70 | +/dev/sdb1 * 2048 20971486 20969439 10G 83 Linux |
| 71 | + |
| 72 | + |
| 73 | +Disk /dev/sda: 2.5 GiB, 2621440000 bytes, 5120000 sectors |
| 74 | +Units: sectors of 1 * 512 = 512 bytes |
| 75 | +Sector size (logical/physical): 512 bytes / 512 bytes |
| 76 | +I/O size (minimum/optimal): 512 bytes / 512 bytes |
| 77 | +Disklabel type: dos |
| 78 | +Disk identifier: 0xaf5119d2 |
| 79 | + |
| 80 | +Device Boot Start End Sectors Size Id Type |
| 81 | +/dev/sda1 * 2048 5117951 5115904 2.5G 83 Linux |
| 82 | +``` |
| 83 | + |
| 84 | +> [!primary] |
| 85 | +> |
| 86 | +> Les sections de code suivantes sont fournies à titre d'illustration, en relation avec l'exemple de sortie ci-dessus. Vous devrez ajuster les instructions avec votre configuration réelle et remplacer les valeurs dans les commandes par vos identifiants de disque et de volume. |
| 87 | +> |
| 88 | +
|
| 89 | +Dans cet exemple, le disque principal (10 Go) est nommé "sdb". Nos données in `/` se trouvent donc sur la partition `/dev/sdb1`. (Alors que "sda" est en mode rescue et "sda1" la partition principale en mode rescue montée sur `/`.) |
| 90 | + |
| 91 | +Nous montons la partition système dans le dossier `/mnt` puis nous vérifions son contenu : |
| 92 | + |
| 93 | +```shell-session |
| 94 | +root@rescue:~# mount /dev/sdb1 /mnt |
| 95 | +root@rescue:~# ls /mnt |
| 96 | +bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var |
| 97 | +root@rescue:~# |
| 98 | +``` |
| 99 | + |
| 100 | +Afin de lancer des services sur le système à partir du mode rescue, vous devrez également monter ces partitions : |
| 101 | + |
| 102 | +```shell-session |
| 103 | +root@rescue:~# mount -o rbind /dev /mnt/dev |
| 104 | +root@rescue:~# mount -t proc proc /mnt/proc |
| 105 | +root@rescue:~# mount -t sysfs sys /mnt/sys |
| 106 | + |
| 107 | +root@rescue:~# mount | grep /mnt |
| 108 | +/dev/sdb1 on /mnt type ext4 (rw,relatime,data=ordered) |
| 109 | +udev on /mnt/dev type devtmpfs (rw,nosuid,relatime,size=990236k,nr_inodes=247559,mode=755) |
| 110 | +devpts on /mnt/dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) |
| 111 | +tmpfs on /mnt/dev/shm type tmpfs (rw,nosuid,nodev) |
| 112 | +hugetlbfs on /mnt/dev/hugepages type hugetlbfs (rw,relatime) |
| 113 | +mqueue on /mnt/dev/mqueue type mqueue (rw,relatime) |
| 114 | +proc on /mnt/proc type proc (rw,relatime) |
| 115 | +sys on /mnt/sys type sysfs (rw,relatime) |
| 116 | +``` |
| 117 | + |
| 118 | +Poursuivez avec la section de récupération de la [base de données ci-dessous](#databases). |
| 119 | + |
| 120 | +### Accéder à vos données sur un serveur dédié (configuration RAID logiciel) <a name="dedicated"></a> |
| 121 | + |
| 122 | +Nous devons d'abord identifier le point de montage contenant le `/` de notre système. |
| 123 | + |
| 124 | +Pour cela, vous pouvez utiliser les commandes `lsblk` et `fdisk -l`. |
| 125 | + |
| 126 | +Exemple de sortie : |
| 127 | + |
| 128 | +```shell-session |
| 129 | +root@rescue:~# fdisk -l |
| 130 | +``` |
| 131 | +```output |
| 132 | +Disk /dev/sda: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors |
| 133 | +Units: sectors of 1 * 512 = 512 bytes |
| 134 | +Sector size (logical/physical): 512 bytes / 512 bytes |
| 135 | +I/O size (minimum/optimal): 512 bytes / 512 bytes |
| 136 | +Disklabel type: gpt |
| 137 | +Disk identifier: 5E158D46-2A45-42C9-8089-697BE070F669 |
| 138 | + |
| 139 | +Device Start End Sectors Size Type |
| 140 | +/dev/sda1 40 2048 2009 1004.5K BIOS boot |
| 141 | +/dev/sda2 4096 1050623 1046528 511M Linux RAID |
| 142 | +/dev/sda3 1050624 42008575 40957952 19.5G Linux RAID |
| 143 | +/dev/sda4 42008576 3905972223 3863963648 1.8T Linux RAID |
| 144 | +/dev/sda5 3905972224 3907018751 1046528 511M Linux swap |
| 145 | + |
| 146 | +Disk /dev/sdb: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors |
| 147 | +Units: sectors of 1 * 512 = 512 bytes |
| 148 | +Sector size (logical/physical): 512 bytes / 512 bytes |
| 149 | +I/O size (minimum/optimal): 512 bytes / 512 bytes |
| 150 | +Disklabel type: gpt |
| 151 | +Disk identifier: 8039EE93-AB98-4EA1-B316-74EE89EF5EB6 |
| 152 | + |
| 153 | +Device Start End Sectors Size Type |
| 154 | +/dev/sdb1 40 2048 2009 1004.5K BIOS boot |
| 155 | +/dev/sdb2 4096 1050623 1046528 511M Linux RAID |
| 156 | +/dev/sdb3 1050624 42008575 40957952 19.5G Linux RAID |
| 157 | +/dev/sdb4 42008576 3905972223 3863963648 1.8T Linux RAID |
| 158 | +/dev/sdb5 3905972224 3907018751 1046528 511M Linux swap |
| 159 | + |
| 160 | +Disk /dev/md4: 1.8 TiB, 1978349322240 bytes, 3863963520 sectors |
| 161 | +Units: sectors of 1 * 512 = 512 bytes |
| 162 | +Sector size (logical/physical): 512 bytes / 512 bytes |
| 163 | +I/O size (minimum/optimal): 512 bytes / 512 bytes |
| 164 | +Disk /dev/md3: 19.5 GiB, 20970405888 bytes, 40957824 sectors |
| 165 | +Units: sectors of 1 * 512 = 512 bytes |
| 166 | +Sector size (logical/physical): 512 bytes / 512 bytes |
| 167 | +I/O size (minimum/optimal): 512 bytes / 512 bytes |
| 168 | +Disk /dev/md2: 511 MiB, 535756800 bytes, 1046400 sectors |
| 169 | +Units: sectors of 1 * 512 = 512 bytes |
| 170 | +Sector size (logical/physical): 512 bytes / 512 bytes |
| 171 | +I/O size (minimum/optimal): 512 bytes / 512 bytes |
| 172 | +``` |
| 173 | + |
| 174 | +> [!primary] |
| 175 | +> |
| 176 | +> Les sections de code suivantes sont fournies à titre d'illustration, en relation avec l'exemple de sortie ci-dessus. Vous devrez ajuster les instructions avec votre configuration réelle et remplacer les valeurs dans les commandes par vos identifiants de disque et de volume. |
| 177 | +> |
| 178 | +
|
| 179 | +Dans cet exemple, nos données dans `/` se trouvent sur le volume `/dev/md3`. |
| 180 | + |
| 181 | +Nous montons la partition système dans le dossier `/mnt` puis nous vérifions son contenu : |
| 182 | + |
| 183 | +```shell-session |
| 184 | +root@rescue:~# mount /dev/md3 /mnt |
| 185 | +root@rescue:~# ls /mnt |
| 186 | +bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var |
| 187 | +root@rescue:~# |
| 188 | +``` |
| 189 | + |
| 190 | +Afin de lancer des services sur le système à partir du mode rescue, vous devrez également monter ces partitions : |
| 191 | + |
| 192 | +```shell-session |
| 193 | +root@rescue:~# mount -o rbind /dev /mnt/dev |
| 194 | +root@rescue:~# mount -t proc proc /mnt/proc |
| 195 | +root@rescue:~# mount -t sysfs sys /mnt/sys |
| 196 | + |
| 197 | +root@rescue:~# mount | grep /mnt |
| 198 | +/dev/md3 on /mnt type ext4 (rw,relatime,data=ordered) |
| 199 | +devtmpfs on /mnt/dev type devtmpfs (rw,relatime,size=16412720k,nr_inodes=4103180,mode=755) |
| 200 | +tmpfs on /mnt/dev/shm type tmpfs (rw,nosuid,nodev) |
| 201 | +devpts on /mnt/dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) |
| 202 | +hugetlbfs on /mnt/dev/hugepages type hugetlbfs (rw,relatime) |
| 203 | +mqueue on /mnt/dev/mqueue type mqueue (rw,relatime) |
| 204 | +proc on /mnt/proc type proc (rw,relatime) |
| 205 | +sys on /mnt/sys type sysfs (rw,relatime) |
| 206 | +``` |
| 207 | + |
| 208 | + |
| 209 | +### Récupération des bases de données <a name="databases"></a> |
| 210 | + |
| 211 | +Une fois toutes les partitions nécessaires montées, nous devons pouvoir exécuter des commandes sur le système lui-même. Pour ce faire, utilisez la commande `chroot` : |
| 212 | + |
| 213 | +```shell-session |
| 214 | +root@rescue:~# chroot /mnt/ |
| 215 | +root@rescue:/# |
| 216 | +``` |
| 217 | +Maintenant, toutes les commandes que vous allez entrer seront appliquées à votre système à la place de l'environnement temporaire du mode rescue. |
| 218 | + |
| 219 | +Nous pouvons maintenant démarrer le service `mysql` : |
| 220 | + |
| 221 | +```shell-session |
| 222 | +root@rescue:/# service mysql start |
| 223 | +[ ok ] Starting MariaDB database server: mysqld .. |
| 224 | +root@rescue:/# |
| 225 | +``` |
| 226 | + |
| 227 | +Utilisez la commande `mysqldump` pour enregistrer la base de données dans un fichier : |
| 228 | + |
| 229 | +```shell-session |
| 230 | +root@rescue:/# mysqldump -u root -p scarif > /home/dump.sql |
| 231 | +Enter password: |
| 232 | +root@rescue:/# |
| 233 | +``` |
| 234 | + |
| 235 | +Dans ce cas, l'utilisateur `mysql` se connectant à la base de données est `root`. L'option `-p` vous permet d'entrer le mot de passe de `root` et la base de données récupérée est nommée `scarif`. |
| 236 | + |
| 237 | +Le fichier de base de données est alors enregistré dans le répertoire `/home` sous le nom `dump.sql`. |
| 238 | + |
| 239 | +Vous avez également la possibilité de sauvegarder toutes les bases de données en une seule fois : |
| 240 | + |
| 241 | +```shell-session |
| 242 | +root@rescue:/# mysqldump -u root -p --all-databases > alldb.sql |
| 243 | +Enter password: |
| 244 | +root@rescue:/# |
| 245 | +``` |
| 246 | + |
| 247 | +La liste du contenu de `/home` affiche les deux fichiers de base de données créés par les commandes précédentes : |
| 248 | + |
| 249 | +```shell-session |
| 250 | +root@rescue:/# ls /home |
| 251 | +alldb.sql dump.sql |
| 252 | +``` |
| 253 | + |
| 254 | +Dans le cas de tables corrompues, cette commande peut être utilisée pour la réparation : |
| 255 | + |
| 256 | +```shell-session |
| 257 | +root@rescue:/# mysqlcheck -u root -p Password_Root_MySQL --auto-repair --optimize --all-databases |
| 258 | +``` |
| 259 | + |
| 260 | +À partir du dossier `/home`, vous pouvez désormais envoyer vos fichiers de sauvegarde vers un serveur distant. Dans cet exemple nous utilisons l'utilitaire de transfert de fichiers `scp` : |
| 261 | + |
| 262 | +```shell-session |
| 263 | +root@rescue:/# scp -P SSH_Port_Number dump.sql user@IP_address:/home/backup |
| 264 | +``` |
| 265 | + |
| 266 | +## Aller plus loin |
| 267 | + |
| 268 | +Échangez avec notre communauté d'utilisateurs sur <https://community.ovh.com/>. |
0 commit comments