Ce chapitre décrit les procédures à suivre pour la restauration de fichiers individuels dans le système de fichiers. Il traite des sujets suivants :
L'utilisation d'un fichier de points de récupération constitue l'approche la plus rapide, la plus fiable, la plus précise et la moins laborieuse pour récupérer des fichiers perdus ou endommagés. Par conséquent, si un fichier de points de récupération est disponible, procédez comme suit :
Connectez-vous au serveur de métadonnées du système de fichiers en tant qu'utilisateur root
.
root@solaris:~#
Si ce n'est pas déjà fait, arrêtez l'archivage et le recyclage en suivant les procédures décrites à la Arrêt des processus d'archivage et de recyclage
Dans le système de fichiers cible, créez un répertoire de récupération temporaire pour le stockage des fichiers récupérés.
Dans cet exemple, le répertoire temporaire restore
est créé sous le point de montage pour le système de fichiers recréé, /hsmfs1
:
root@solaris:~# mkdir /hsmfs1/restore
Empêchez à l'archiveur d'archiver à partir du répertoire temporaire. Exécutez la commande archive
-r
-n
directory
, où :
-r
-n
permet de désactiver de façon récursive l'archivage de fichiers se trouvant dans ou sous le répertoire indiqué.
directory
désigne le chemin et le nom du répertoire du répertoire de récupération temporaire.
root@solaris:~# archive -r -n /hsmfs1/restore
Accédez au répertoire de récupération temporaire.
root@solaris:~# cd /hsmfs1/restore
Identifiez le dernier fichier de points de récupération disponible.
Dans cet exemple, des fichiers de points de récupération datés ont été créés pour le système de fichiers hsmfs1
dans un emplacement connu : le sous-répertoire hsmfs1_recovery
du système de fichiers indépendant /zfs1
. Vous pourrez facilement trouver le fichier le plus récent, 20150324
:
root@solaris:~# dir /zfs1/hsmfs1_recovery/ 20150321 20150322 20150323 20150324 root@solaris:~#
Assurez-vous que le fichier à récupérer ne se trouve pas dans le fichier de points de récupération. Recherchez le fichier nécessaire dans la sortie de la commande samfsrestore
-t
-f
recovery-point
, où :
-t
affiche une table des matières.
-f
recovery-point-file
spécifie le chemin d'accès et le nom du fichier de points de récupération sélectionné.
Dans cet exemple, nous tentons de récupérer le fichier genw445
. Nous exécutons la commande samfsrestore
-t
avec le fichier de point de récupération /zfs1/hsmfs1_recovery/
20150324
. Pour simplifier la recherche, nous insérons la sortie de samfsrestore
-t
dans la commande Solaris grep
et l'expression régulière "genw445"
(remarque : la commande ci-dessous est saisie sur une seule ligne ; le saut de ligne est échappé à l'aide de la barre oblique inverse) :
root@solaris:~# samfsrestore -t -f /zfs1/hsmfs1_recovery/20150324 | \ grep "genw445" ./genfiles/genw445 root@solaris:~#
Restaurez les informations d'inode du fichier dans le répertoire actuel. Exécutez la commande samfsrestore
-f
recovery-point
file
, où :
-f
recovery-point-file
spécifie le chemin d'accès et le nom du fichier de points de récupération sélectionné.
file
indique le chemin et le nom exacts que le fichier de point de récupération répertorie pour le fichier que vous souhaitez récupérer.
Dans l'exemple, nous récupérons ./genfiles/genw445
à partir du fichier de point de récupération /zfs1/hsmfs1_recovery/
20150324
(remarque : la commande ci-dessous est saisie sur une seule ligne ; le saut de ligne est échappé à l'aide de la barre oblique inverse) :
root@solaris:~# samfsrestore -f /zfs1/hsmfs1_recovery/20150324 \ ./genfiles/genw445 root@solaris:~#
Assurez-vous que le fichier a été correctement restauré. Exécutez la commande sls
-D
file
, où file
spécifie le chemin et le nom du fichier relatif au répertoire de récupération temporaire.
Dans l'exemple, le fichier genfiles/genw445
a été récupéré vers le répertoire temporaire /hsmfs1
/restore/
:
root@solaris:~# sls -D genfiles/genw445 genfiles/genw445: mode: -rw-r--r-- links: 1 owner: data group: hsmfs1 length: 14975 inode: 25739.1 offline; archdone; copy 1: ---- Mar 4 11:55 8ae.1 xt 000000 copy 2: ---- Mar 4 15:51 cd3.7f57 xt 000000 access: Mar 4 11:55 modification: Mar 4 21:50 changed: Mar 4 11:50 attributes: Mar 4 21:50 creation: Mar 4 11:50 residence: Mar 4 21:50 root@solaris:~#
Si le fichier a été correctement restauré, déplacez-le vers le bon emplacement dans le système de fichiers.
Dans l'exemple, nous déplaçons le fichier genw445
du répertoire de travail temporaire /hsmfs1
/restore/
genfiles/
vers son emplacement d'origine dans /hsmfs1/
genfiles/
:
root@solaris:~# mv -f genfiles/genw445 /hsmfs1/genfiles/genw445 root@solaris:~#
Répétez cette procédure jusqu'à ce que tous les fichiers manquants aient pu être récupérés.
Terminez la procédure de récupération. Accédez à la Restauration des systèmes de fichiers d'archivage pour un fonctionnement normal.
Il est toujours fastidieux et laborieux de se baser sur le journal de l'archiveur et/ou les journaux de migration des médias pour effectuer la récupération de fichiers lorsque plusieurs fichiers sont inclus. Par conséquent, utilisez les procédures de cette section uniquement lorsqu'un point de récupération ne permet pas de restaurer le fichier requis.
Tandis que le processus de récupération de fichiers à partir d'un média d'archivage est foncièrement identique dans tous les cas, certains détails peuvent différer en fonction du type de fichier. Sélectionnez la procédure prévue pour le type de fichier que vous souhaitez restaurer :
Notez que les fichiers peuvent ne pas être restaurés précisément à l'emplacement souhaité lorsque vous récupérez une copie à partir du média. Les fichiers sont restaurés à leur emplacement à l'heure à laquelle la copie de l'archive a été effectuée. Les fichiers qui ont ensuite été déplacés ne sont pas restaurés dans le répertoire dans lequel ils ont été perdus.
Pour chaque fichier dont vous souhaitez effectuer la récupération, procédez comme suit :
Si ce n'est pas déjà fait, connectez-vous au serveur de métadonnées du système de fichiers en tant qu'utilisateur root
.
root@solaris:~#
Si ce n'est pas déjà fait, arrêtez l'archivage et le recyclage en suivant les procédures décrites à la Arrêt des processus d'archivage et de recyclage
Accédez au répertoire root du système de fichiers que vous restaurez.
Les fichiers archive Oracle HSM stockent des copies en fonction du répertoire root du système de fichiers. Par conséquent, il est souhaitable de les restaurer à partir du répertoire root pour les restaurer dans leur emplacement d'origine.
Dans cet exemple, la racine du système de fichiers hsmfs1
a été modifiée :
root@solaris:~# cd /hsmfs1 root@solaris:~#
Si vous possédez un journal de l'archiveur datant du dernier archivage du fichier standard, recherchez l'entrée la plus récente du fichier.
Dans le premier exemple, nous recherchons une entrée le fichier standard (saisissez f
) genA0
:
A 2015/03/03 13:09:05 li VOL004 all.1 212.1 hsmfs1 1535.2 1971 genfiles/genA0 f 0 0
Dans le second exemple, nous recherchons une entrée pour le fichier standard (saisissez f
) spcC4
:
A 2015/03/03 21:49:15 dk DISKVOL1/f2 all.1 2.2e9 hsmfs1 1511.2 8971 socfiles/spcC4 f 0 0
Une fois que vous avez trouvé une entrée de journal pour le fichier recherché, notez le type de média, le numéro de série de volume du média ainsi que le chemin et le nom du fichier correspondant au répertoire root du système de fichiers.
Dans le premier exemple, le fichier genA0
se trouve sur un volume à bande LTO (li
) avec le numéro de série de volume (VSN) VOL004
. Le fichier était à l'origine stocké dans le répertoire de système de fichiers /hsmfs1/genfiles/
:
A 2015/03/03 13:09:05 li VOL004 all.1 212.1 hsmfs1 1535.2 1971 genfiles/genA0 f 0 0
Dans le second exemple, le fichier spcC4
se trouve sur une archive de disque (dk
) portant le numéro de série DISKVOL1
. Le fichier était à l'origine stocké dans le répertoire de système de fichiers /hsmfs1/socfiles/
:
A 2015/03/03 21:49:15 dk DISKVOL1/f2 all.1 2.2e9 hsmfs1 1511.2 8971 socfiles/spcC4 f 0 0
Si un fichier requis se trouve sur un média à accès séquentiel, tel qu'une bande magnétique, notez également la valeur hexadécimale représentant la position de départ de du fichier d'archive (tar
).
Dans l'exemple, le fichier genA0
se trouve sur la bande démarrant à la position 0x212 (212
) :
A 2015/03/03 13:09:05 li VOL004 all.1 212.1 hsmfs1 1535.2 1971 genfiles/genA0 f 0 0
Si un fichier requis se trouve sur un média à accès aléatoire, tel qu'un disque d'archivage, notez également le chemin d'accès et le nom du fichier tar
par rapport au numéro de série du volume.
Dans l'exemple, le fichier spcC4
se trouve dans le sous-répertoire f2
immédiatement sous le répertoire root du volume de disque DISKVOL1
:
A 2015/03/03 21:49:15 dk DISKVOL1/f2 all.1 2.2e9 hsmfs1 1511.2 8971 socfiles/spcC4 f 0 0
Si le fichier que vous restaurez est archivé sur le média d'archive, extrayez la copie d'archive du fichier manquant ou endommagé à partir du fichier tar
sur le volume de disque. Exécutez la commande star
-xv
-f
tarfile
file
, où :
tarfile
est le nom du fichier d'archive
file
est le chemin d'accès au répertoire root du système de fichiers et le nom du fichier que vous souhaitez restaurer.
La commande star est une version Oracle HSM améliorée de la commande GNU tar
restaurant les fichiers indiqués depuis le fichier d'archive.
Dans cet exemple, nous extrayons le fichier de données socfiles/spcC4
du fichier tar
DISKVOL1
/
f2
. Le fichier est restauré vers /
hsmfs1
/
socfiles/spcC4
:
root@solaris:~# star -xvf DISKVOL1/f2 socfiles/spcC4
Si vous avez restauré le fichier requis à partir d'une archive de disque, poursuivez la restauration des fichiers standard perdus et endommagés jusqu'à ce que tous les fichiers requis aient été restaurés.
Si le fichier que vous restaurez est archivé sur un média amovible, une bande magnétique par exemple, créez un répertoire dans le système de fichiers restauré pour conserver les fichiers archive temporaires.
Dans cet exemple, le répertoire /
hsmfs1
/
tars
est créé.
root@solaris:~# mkdir /hsmfs1/tars
Placez le média au début de l'en-tête tar
du fichier archive contenant la copie archivée et lisez l'archive à partir du média dans la mémoire. Exécutez la commande request
-m
media-type
-v
volume-serial-number
-p
0x
position
path
/
requestfile
, où :
-m
media-type
indique l'un des codes de type de média à deux caractères répertoriés dans Annexe B.
-v
volume-serial-number
indique le code alphanumérique à six caractères identifiant le volume de média.
-p
0x
position
indique la position de départ hexadécimale que vous avez notée dans l'entrée de journal de l'archiveur.
path
est le chemin d'accès au répertoire de récupération temporaire.
requestfile
est le nom à utiliser pour le fichier tar
en mémoire lu par la commande request
à partir du média.
Dans l'exemple, nous créons un fichier de requête, /
hsmfs1
/
tars
/
currentrequest
démarrant à la position 0x78
sur le volume LTO (li
) VOL012
:
root@solaris:~# request -m li -v VOL012 -p 0x78 /hsmfs1/tars/currentrequest
Extrayez la copie archive du fichier manquant ou endommagé à partir du fichier tar
en mémoire que vous avez créé à l'étape précédente. Exécutez la commande star
-xv
-f
requestfile
, où :
requestfile
désigne le nom du fichier tar
en mémoire.
file
est le chemin d'accès au répertoire root du système de fichiers et le nom du fichier que vous souhaitez restaurer.
La commande star est une version Oracle HSM améliorée de la commande GNU tar
restaurant les fichiers indiqués depuis le fichier de requête (la copie en mémoire du fichier d'archive).
Dans cet exemple, nous extrayons le fichier de données genfiles/genA0
du fichier de requête tars
/
currentrequest
. Le fichier est alors restauré sur /
hsmfs1
/
genfiles/genA0
:
root@solaris:~# star -xvf tars/currentrequest genfiles/genA0
Définissez tout attribut de fichier requis.
Lorsque vous restaurez un fichier à partir d'un fichier tar
sans fichier de points de récupération samfsdump
ou qfsdump
, les attributs du fichier d'origine sont perdus. Un fichier .inodes
doit être entièrement créé pour le fichier à l'aide des valeurs d'attribut par défaut.
Répétez cette procédure jusqu'à récupération de tous les fichiers requis.
Si nécessaire, restaurez les fichiers segmentés perdus et endommagés et/ou les fichiers de dépassement de volume.
Sinon, terminez la procédure de récupération. Accédez à la Restauration des systèmes de fichiers d'archivage pour un fonctionnement normal.
La restauration d'un fichier segmenté est très similaire à celle d'un fichier standard, à la différence que vous récupérez des segments individuels plutôt que le fichier lui-même. Pour restaurer le fichier, vous devez donc rassembler les segments au sein d'un fichier unique, avant de resegmenter le résultat. Pour chaque fichier dont vous souhaitez effectuer la récupération, procédez comme suit :
Si ce n'est pas déjà fait, connectez-vous au serveur de métadonnées du système de fichiers en tant qu'utilisateur root
.
root@solaris:~#
Si ce n'est pas déjà fait, arrêtez l'archivage et le recyclage en suivant la procédure décrite à la Arrêt des processus d'archivage et de recyclage
Si vous possédez un journal de l'archiveur datant de la période où le fichier segmenté a été archivé pour la dernière fois, recherchez les entrées pour les fichiers segmentés (saisissez S
). Sélectionnez les entrées les plus récentes pour les segments du fichier recherché.
A 2015/03/03 14:01:47 li VOL013 all.1 76a.1 hsmfs1 14.5 10485760 bf/dat011/1 S 0 51 A 2015/03/03 14:04:11 li VOL013 all.1 2476f.5002 hsmfs1 15.5 10485760 bf/dat011/2 S 0 51 A 2015/03/03 14:06:24 li VOL013 all.1 1409aa4.1 hsmfs1 16.5 184 bf/dat011/3 S 0 51
Une fois que vous avez trouvé les entrées les plus récentes pour les segments, notez les détails suivants :
le type de média
le numéro de série de volume des volumes de média contenant des segments de fichiers
les positions de départ hexadécimales des fichiers d'archive (tar
) contenant les segments
le chemin et le nom du fichier segmenté associé au répertoire root du système de fichiers
le nombre de segments dans le fichier.
Dans l'exemple, le fichier dat011
est divisé en trois segments (1
, 2
et 3
). Les trois segments sont enregistrés dans trois fichiers d'archive, tous situés sur un seul volume de bande LTO (li
) avec le numéro de série de volume VOL013
. Les trois fichiers d'archive démarrent aux positions 0x76a (76a
), 0x2476f (2476f
) et 0x1409aa4 (1409aa4
)
A 2015/03/03 14:01:47 li VOL013 all.1 76a.1 hsmfs1 14.5 10485760 bf/dat011/1 S 0 51 A 2015/03/03 14:04:11 li VOL013 all.1 2476f.5002 hsmfs1 15.5 10485760 bf/dat011/2 S 0 51 A 2015/03/03 14:06:24 li VOL013 all.1 1409aa4.1 hsmfs1 16.5 184 bf/dat011/3 S 0 51
Accédez au répertoire root du système de fichiers que vous restaurez.
Les fichiers archive Oracle HSM stockent des copies en fonction du répertoire root du système de fichiers. Par conséquent, il est souhaitable de les restaurer à partir du répertoire root pour les restaurer dans leur emplacement d'origine.
Dans cet exemple, la racine du système de fichiers hsmfs1
a été modifiée.
root@solaris:~# cd /hsmfs1
Créez un répertoire dans le système de fichiers restauré contenant les fichiers archive temporaires.
Dans cet exemple, le répertoire /
hsmfs1
/
tars
est créé.
root@solaris:~# mkdir /hsmfs1/tars
Placez le média au début de chaque fichier archive contenant une copie archivée d'un ou de plusieurs segments de fichiers, et lisez l'archive à partir du média dans la mémoire. Exécutez la commande request
-m
media-type
-v
volume-serial-number
-p
0x
position
path
/
requestfile
, où :
-m
media-type
indique l'un des codes de type de média à deux caractères répertoriés dans Annexe B.
-v
volume-serial-number
indique le code alphanumérique à six caractères identifiant le volume de média.
-p
0x
position
indique la position de départ hexadécimale que vous avez notée dans l'entrée de journal de l'archiveur.
path
est le chemin d'accès au répertoire de récupération temporaire.
requestfile
est le nom à utiliser pour le fichier tar
en mémoire lu par la commande request
à partir du média.
Dans cet exemple, deux fichiers de requête doivent être créés. Le premier, /
hsmfs1
/
tars
/
request76a
, charge le fichier d'archive qui débute à la position 0x76a
sur LTO (li
) VOL013
. Cette archive contient les deux premiers segments. Le second fichier de requête, /
hsmfs1
/
tars
/
request1409aa4
, charge le fichier d'archive à la position 0x1409aa4
, dans ce cas sur le même volume (les segments peuvent se trouver sur n'importe quel volume de la bibliothèque) :
root@solaris:~# request -m li -v VOL013 -p 0x76a /hsmfs1/tars/request76a root@solaris:~# request -m li -v VOL013 -p 0x1409aa4 \ /hsmfs1/tars/request1409aa4
Extrayez chaque segment de la copie de sauvegarde du fichier manquant ou endommagé à partir du fichier tar
en mémoire que vous avez créé à l'étape précédente. Exécutez la commande star
-xv
-f
requestfile
segment
, où requestfile
est le nom du fichier tar
en mémoire et où segment
est le chemin d'accès au répertoire root du système de fichiers et le nom de chaque segment du fichier à restaurer.
La commande star est une version Oracle HSM améliorée du fichier GNU tar
qui permet de restaurer les fichiers spécifiés à partir du fichier archive désigné à l'aide du fichier de requête.
Dans cet exemple, deux des trois segments du fichier de données bf/dat011
sont extraits du fichier de requête (fichiers tar
en mémoire) tars
/
request76a
; le troisième est extrait du fichier de requête tars
/
request1409aa4
. Le fichier est restauré sur un répertoire, /
hsmfs1
/
bf/dat011/
en trois parties distinctes :
root@solaris:~# star -xvf tars/request76a bf/dat011/1 root@solaris:~# star -xvf tars/request76a bf/dat011/2 root@solaris:~# star -xvf tars/request1409aa4 bf/dat011/3
En répertoriant le contenu de /
hsmfs1
/
bf/dat011
, un fichier numéroté de façon séquentielle est visible pour chaque segment restauré :
root@solaris:~# ls /hsmfs/bf/dat011 total 40968 -rw-rw---- 1 root other 10485760 Mar 5 17:06 1 -rw-rw---- 1 root other 10485760 Mar 5 17:06 2 -rw-rw---- 1 root other 184 Mar 5 17:07 3 root@solaris:~#
Réunissez les segments restaurés en un fichier unique, non segmenté et temporaire.
Dans cet exemple, les trois segments du répertoire /
hsmfs1
/
bf/dat011/
ont été concaténés pour créer le fichier /
hsmfs1
/
bf/dat011file
:
root@solaris:~# cat /hsmfs/bf/dat011/1 /hsmfs/bf/dat011/2 \ /hsmfs/bf/dat011/3 > /hsmfs/bf/dat011file root@solaris:~#
Lorsque le contenu de /
hsmfs1
/
bf/
est répertorié, le nouveau fichier s'affiche avec le répertoire contenant les segments.
root@solaris:~# ls -l /hsmfs/bf/dat011* drwxr-xr-x 2 root root 4096 Mar 5 17:06 dat011 -rw-rw---- 1 root other 20971704 Mar 5 17:14 dat011file root@solaris:~#
Supprimez les segments et le répertoire qui les contient.
root@solaris:~# rm -r /hsmfs/bf/dat011/ root@solaris:~#
Créez un fichier vide à l'aide du chemin d'accès et du nom d'origine du fichier segmenté. Exécutez la commande touch
file
, où file
est le chemin d'accès et le nom de fichier d'origine.
Dans cet exemple, le fichier vide /
hsmfs
/
bf
/
dat011
est créé, le nom d'origine du fichier segmenté que nous restaurons :
root@solaris:~# touch /hsmfs/bf/dat011 root@solaris:~#
Définissez l'attribut de segment Oracle HSM sur le nouveau fichier vide créé. Exécutez la commande segment
-l
segment-length
file
, où segment-length
est la longueur du segment que vous avez signalé dans l'entrée du journal de l'archiveur et où file
est le chemin d'accès et le nom d'origine du fichier segmenté.
Dans cet exemple, le journal de l'archiveur indique que la longueur du segment pour le fichier dat011
est 10485760
(le fichier termine au troisième segment, la longueur des données sur le média est donc inférieure à la longueur du segment) :
A 2015/03/03 14:01:47 li VOL013 all.1 76a.1 hsmfs1 14.5 10485760 bf/dat011/1 S 0 51 A 2015/03/03 14:04:11 li VOL013 all.1 76a.5002 hsmfs1 15.5 10485760 bf/dat011/2 S 0 51 A 2015/03/03 14:06:24 li VOL013 all.1 1409aa4.1 hsmfs1 16.5 184 bf/dat011/3 S 0 51
Pour le fichier vide, nous avons donc défini la longueur du segment sur 10485760
:
root@solaris:~# segment -l 10485760 /hsmfs/bf/dat011 root@solaris:~#
Copiez le fichier temporaire non segmenté dans le fichier segmenté vide.
Dans cet exemple, nous avons copié dat011file
dans dat011
:
root@solaris:~# cp /hsmfs/bf/dat011file /hsmfs/bf/dat011 root@solaris:~#
Lorsque la commande sls -2K
hsmfs
/
bf
/
dat011
est utilisée pour répertorier les segments (voir ci-dessous). Le fichier a donc été restauré.
root@solaris:~# sls -2K /hsmfs/bf/dat011 -rw-rw---- 1 root other 20971704 Mar 5 17:12 hsmfs/bf/dat011 ---------- ----- sI {3,0,0,0} -rw-rw---- 1 root other 10485760 Mar 5 17:12 hsmfs/bf/dat011/1 ---------- ----- sS -rw-rw---- 1 root other 10485760 Mar 5 17:12 hsmfs/bf/dat011/2 ---------- ----- sS -rw-rw---- 1 root other 184 Mar 5 17:12 hsmfs/bf/dat011/3 ---------- ----- sS
Définissez tout autre attribut de fichier requis.
Lorsque vous restaurez un fichier à partir d'un fichier tar
sans fichier de points de récupération samfsdump
ou qfsdump
, les attributs du fichier d'origine sont perdus. Un fichier .inodes
doit être entièrement créé pour le fichier à l'aide des valeurs d'attribut par défaut.
Le fichier a maintenant été restauré. Supprimez le fichier temporaire non segmenté.
Dans cet exemple, dat011file
a été supprimé :
root@solaris:~# rm /hsmfs/bf/dat011file root@solaris:~#
Répétez cette procédure jusqu'à récupération de tous les fichiers requis.
Terminez la procédure de récupération. Accédez à la Restauration des systèmes de fichiers d'archivage pour un fonctionnement normal.
Un fichier de dépassement de volume est un fichier standard réparti sur des volumes de média. La restauration d'un fichier de dépassement de volume est donc quasiment identique à celle de n'importe quel autre fichier standard. Toutefois, vous devez combiner des sections d'un fichier archive résidant sur plusieurs volumes en un fichier archive unique sur disque avant d'extraire le fichier de données de l'archive. Pour chaque fichier dont vous souhaitez effectuer la récupération, procédez comme suit :
Si ce n'est pas déjà fait, connectez-vous au serveur de métadonnées du système de fichiers en tant qu'utilisateur root
.
root@solaris:~#
Si ce n'est pas déjà fait, arrêtez l'archivage et le recyclage en suivant la procédure décrite à la Arrêt des processus d'archivage et de recyclage
Si vous possédez un journal de l'archiveur datant de la période où le fichier de dépassement de volume a été archivé pour la dernière fois, recherchez l'entrée la plus récente pour le fichier. Notez le(s) numéro(s) de série de volume du média, la longueur de chaque section du fichier, le chemin d'accès et le fichier correspondant au répertoire root du système de fichiers ainsi que le nombre de sections du fichier.
Dans cet exemple, nous savons que le fichier /
hsmfs1
/
rf
/
rf81
est un dépassement de volume car il s'agit d'un fichier f
de type standard résidant sur deux volumes, VOL036
et VOL034
, et possédant deux sections, 0
et 1
:
A 2015/03/03 18:28:51 li VOL036 all.1 12d.1 hsmfs1 11731.1 89128448 rf/rf81 f 0 210 A 2013/08/23 18:28:51 li VOL034 all.1 15f.0 hsmfs1 11731.1 525271552 rf/rf81 f 1 220
Accédez au répertoire root du système de fichiers que vous restaurez.
Les fichiers archive Oracle HSM stockent des copies en fonction du répertoire root du système de fichiers. Par conséquent, il est souhaitable de les restaurer à partir du répertoire root pour les restaurer dans leurs emplacements d'origine.
Dans cet exemple, la racine du système de fichiers hsmfs1
a été modifiée.
root@solaris:~# cd /hsmfs1
Avant de continuer, assurez-vous que le système de fichiers contient suffisamment d'espace libre pour accueillir un fichier au moins deux fois plus volumineux que le fichier que vous récupérez.
Pour le fichier de l'exemple, rf/rf81
, environ 1,2 giga-octets d'espace libre est requis, en fonction des tailles des deux sections du fichier : 2 x (89 128 448 + 525 271 552) = 1 228 800 000 octets.
Créez un répertoire dans le système de fichiers restauré contenant les fichiers archive temporaires.
Dans cet exemple, le répertoire /
hsmfs1
/
tars
est créé.
root@solaris:~# mkdir /hsmfs1/tars
Placez le média au début de chaque fichier archive contenant une copie archivée d'un ou de plusieurs segments de fichiers, et lisez l'archive à partir du média dans la mémoire. Exécutez la commande request
-m
media-type
-v
volume-serial-number
-p
0x
position
path
/
requestfile
, où :
-m
media-type
indique l'un des codes de type de média à deux caractères répertoriés dans Annexe B.
-v
volume-serial-number
indique le code alphanumérique à six caractères identifiant le volume de média.
-p
0x
position
indique la position de départ hexadécimale que vous avez notée dans l'entrée de journal de l'archiveur.
path
est le chemin d'accès au répertoire de récupération temporaire.
requestfile
est le nom à utiliser pour le fichier tar
en mémoire lu par la commande request
à partir du média.
Dans cet exemple, deux fichiers de requête sont créés. Le premier fichier de requête, /
hsmfs1
/
tars
/
requestVOL036
, charge le fichier archive qui débute à la position 0x12d
sur le volume LTO (li
) VOL036
. Le second fichier de requête, /
hsmfs1
/
tars
/
requestVOL034
, charge le fichier d'archive à la position 0x15f
sur LTO (li
) VOL034
:
root@solaris:~# request -m li -v VOL036 -p 0x12d /hsmfs1/tars/requestVOL036 root@solaris:~# request -m li -v VOL034 -p 0x15f /hsmfs1/tars/requestVOL034
Enregistrez tous les fichiers tar
en mémoire que vous avez créés sur le disque en tant que section du fichier archive. Exécutez la commande dd
if=
requestfile
of=
archive_section
, où requestfile
est le chemin d'accès et le nom du fichier tar
en mémoire et où archive_section
est le chemin d'accès et le nom de chaque section du fichier archive.
Dans cet exemple, les fichiers de requête (fichiers tar
en mémoire), tars
/
requestVOL036
et tars
/
requestVOL034
en tant que tars
/
archive_part1
et tars
/
archive_part2
ont été enregistrés :
root@solaris:~# dd if=tars/requestVOL036 of=tars/archive_part1 root@solaris:~# dd if=tars/requestVOL034 of=tars/archive_part2 root@solaris:~#
Réunissez les sections dans un seul fichier archive.
Dans cet exemple, les deux sections tars
/
archive_part1
et tars
/
archive_part2
sont concaténées afin de créer un seul fichier archive, /
tars
/
archive_complete
:
root@solaris:~# cat tars/archive_part1 tars/archive_part2 > \ tars/archive_complete root@solaris:~#
Extrayez la copie de sauvegarde du fichier de dépassement de volume manquant ou endommagé à partir du fichier archive (tar
) que vous avez créé à l'étape précédente. Exécutez la commande star
-xv
-f
tarfile
file
, où tarfile
est le nom du fichier archive et où file
est le chemin d'accès au répertoire root du système de fichiers et le nom du fichier de dépassement de volume à restaurer.
La commande star
est une version Oracle HSM améliorée du fichier GNU tar
qui permet de restaurer les fichiers spécifiés à partir du fichier archive désigné à l'aide du fichier de requête.
Dans cet exemple, le fichier de dépassement de volume rf/rf81
est extrait du fichier tar
tars
/
archive_complete
:
root@solaris:~# star -xvf tars/archive_complete rf/rf81
Définissez tout autre attribut de fichier requis.
Lorsque vous restaurez un fichier à partir d'un fichier tar
sans fichier de points de récupération samfsdump
ou qfsdump
, les attributs du fichier d'origine sont perdus. Un fichier .inodes
doit être entièrement créé pour le fichier à l'aide des valeurs d'attribut par défaut.
Le fichier de dépassement de volume est à présent restauré. Supprimez le fichier temporaire.
Dans cet exemple, dat011file
a été supprimé :
root@solaris:~# rm tars/archive_* root@solaris:~#
Répétez cette procédure jusqu'à récupération de tous les fichiers requis.
Terminez la procédure de récupération. Accédez à la Restauration des systèmes de fichiers d'archivage pour un fonctionnement normal.
Une copie d'archive endommagée est une copie d'un fichier ne pouvant pas être retransférée sur le cache disque. Il peut arriver que le fichier ne puisse pas être créé en raison d'un problème d'E/S matériel intermittent. Le cas échéant, ce problème peut être facilement résolu. Parfois, la copie endommagée est altérée et les données sont irrécupérables. Dans ce cas, la seule solution est de récupérer le fichier à partir d'une autre copie.
Pour identifier et gérer des copies endommagées, procédez comme suit :
Identifiez les fichiers dont des copies d'archive sont endommagées. Exécutez la commande sfind
mountpoint
-any_copy_d
, où mountpoint
est le répertoire où le système de fichiers récupéré est monté.
Dans cet exemple, la recherche commence dans le répertoire /hsmfs1
où trois fichiers possédant des copies endommagées sont trouvés :
root@solaris:~# sfind /hsmfs1 -any_copy_d ./genfiles/ab09 ./genfiles/ab11 ./genfiles/ay12 root@solaris:~#
Pour chaque fichier identifié, recherchez les copies endommagées. Exécutez la commande sls
-D
file
, où file
est le chemin d'accès et le nom du fichier à vérifier.
Les copies endommagées sont identifiées par un D
. Dans cet exemple, copy 2
de /hsmfs1/genfiles/ab09
et copy 1
de /hsmfs1/genfiles/ab11
sont endommagées :
root@solaris:~# sls -D /hsmfs1/genfiles/ab09 /hsmfs1/genfiles/ab09: mode: -rw-r----- links: 1 owner: root group: other length: 306581 admin id: 0 inode: 11748.11 project: system(0) copy 1: ---- Mar 11 13:52 76f.421bc li VOL011 copy 2: ---D Mar 31 14:02 286.1324f li VOL021 access: Mar 11 13:50 modification: Mar 11 13:50 changed: Mar 11 13:50 attributes: Mar 11 13:50 creation: Mar 11 13:50 residence: Mar 11 13:50 root@solaris:~# sls -D /hsmfs1/genfiles/ab11 /hsmfs1/genfiles/ab11: mode: -rw-r----- links: 1 owner: root group: other length: 380051 admin id: 0 inode: 1460.1 project: system(0) copy 1: ---D Mar 01 10:21 431.21bc6 li VOL024 access: Mar 01 10:21 modification: Mar 01 10:21 changed: Mar 01 10:21 attributes: Mar 01 10:21 creation: Mar 01 10:21 residence: Mar 01 10:21 root@solaris:~#
S'il existe une autre copie, désarchivez la copie endommagée. Exécutez la commande unarchive
-c
CopyNumber
file
, où CopyNumber
est un nombre entier représentant le numéro de copie et où file
est le chemin d'accès et le nom du fichier endommagé. Arrêtez la procédure à cette étape.
Lorsque vous désarchivez la copie endommagée, Oracle HSM est transféré de la copie restante et crée une copie d'archive supplémentaire à la prochaine exécution du processus de l'archiveur. Cet exemple contient une autre copie non endommagée de /hsmfs1/genfiles/ab09
qui permet d'annuler l'archivage de la copie endommagée, la copie 2
:
root@solaris:~# unarchive -c 2 /hsmfs1/genfiles/ab09 root@solaris:~#
Si vous ne disposez pas d'une autre copie, réparez la copie endommagée. Exécutez la commande undamage
-c
CopyNumber
file
, où CopyNumber
est un nombre entier représentant le numéro de copie et où file
est le chemin d'accès le nom du fichier endommagé.
Il peut arriver qu'un fichier ne parvienne pas à effectuer un transfert en raison d'une erreur d'E/S matérielle intermittente. La suppression de l'indicateur de dommage et la réexécution du transfert peuvent résoudre ce problème. Cet exemple contient une seule copie de /hsmfs1/genfiles/ab11
:
root@solaris:~# undamage -c1 /hsmfs1/genfiles/ab11
Tentez de transférer la copie. Exécutez la commande stage
-c
CopyNumber
-I
file
, où CopyNumber
est un nombre entier représentant le numéro de copie et où file
est le chemin d'accès et le nom du fichier.
Le paramètre (immédiat) -I
facultatif déplace l'opération de transfert en haut de la file d'attente :
root@solaris:~# stage -c 1 -I /hsmfs1/genfiles/ab11
Si le transfert réussit, arrêtez-vous à cette étape.
Si le transfert échoue à nouveau, Oracle HSM définit à nouveau l'indicateur endommagé. Notez le numéro d'inode principal de la sortie de la commande sls -D
pour la copie endommagée.
Dans cet exemple, le numéro d'inode du fichier, /hsmfs1/genfiles/ab11
, est 1460
:
root@solaris:~# sls -D /hsmfs1/genfiles/ab11 /hsmfs1/genfiles/ab11: mode: -rw-r----- links: 1 owner: root group: other length: 380051 admin id: 0 inode: 1460.1 project: system(0) copy 1: ---D Mar 01 10:21 431.21bc6 li VOL024 ... root@solaris:~#
Recherchez les causes possibles. Commencez par rechercher des messages relatifs au transfert qui concernent l'inode du fichier contenant la copie endommagée dans le fichier Oracle HSM /var/adm/sam-log
.
La recherche peut être effectuée de différentes manières. Dans cet exemple, nous répertorions le contenu du fichier journal à l'aide de la commande cat
de Solaris et transmettons la sortie vers grep
et une expression régulière correspondant au numéro d'inode. Deux messages sont obtenus. Les deux indiquent une erreur d'E/S, l'un implique explicitement le nombre ordinal d'équipement (eq
), 804
, qui est l'un de nos lecteurs de bande :
root@solaris:~# cat /var/adm/sam-log | grep "inode 1460" Mar 11 15:35:44 server1 genu-20[8899]: Stage request canceled for inode 1460 (eq 804): I/O error. Jan 11 15:35:44 server1 samfs[8894]: /sam4 inode 1460.1 - Archive copy 1 marked damaged: I/O error
Si le fichier /var/adm/sam-log
implique un nombre ordinal d'équipement Oracle HSM spécifique, examinez le journal de périphérique, /var/opt/SUNWsamfs/devlog/
drive-equipment-number
, où drive-equipment-number
est le numéro ordinal répertorié dans le fichier /var/adm/sam-log
.
Si le problème semble spécifique à un lecteur donné, rendez le lecteur impliqué indisponible au processus de transfert à l'aide de la commande samcmd
unavail
drive-equipment-number
. Réparez ensuite la copie, puis réessayez le transfert.
root@solaris:~# samcmd unavail 804 root@solaris:~# stage -c 1 -I /hsmfs1/genfiles/ab11 root@solaris:~# undamage -c1 /hsmfs1/genfiles/ab11 root@solaris:~#
Si le transfert échoue à nouveau et si aucun lecteur ne semble défectueux, tentez de récupérer la copie à l'aide des commandes request
et star
, comme décrit dans la Récupération des fichiers à l'aide des entrées du journal, ou d'utilitaires Solaris tels que tar
et dd
.
Si vous ne parvenez toujours pas à récupérer le fichier et si la valeur des données le justifie, faites appel à un service de récupération des données. Pour obtenir de l'aide sur les médias de bande Oracle StorageTek, faites appel aux services de récupération de données de bande d'entreprise Oracle StorageTek. Connectez-vous au site My Oracle Support à l'adresse support.oracle.com
. Ouvrez une demande d'assistance, sélectionnez dans la liste le modèle de lecteur de bande dans la catégorie de demande, puis sélectionnez Problèmes de média dans la sous-catégorie de la liste.
Si le fichier s'avère irrécupérable, désarchivez la copie endommagée. Exécutez la commande unarchive
-c
CopyNumber
file
, où CopyNumber
est un nombre entier représentant le numéro de copie et où file
est le chemin d'accès et le nom du fichier endommagé.
root@solaris:~# unarchive -c 1 /hsmfs1/genfiles/ab11 root@solaris:~#
Résolvez tous les problèmes de disque ou de média identifiés par les fichiers journaux.
Si vous avez désactivé les processus d'archivage, de transfert et de recyclage au cours d'une précédente étape, réactivez-les maintenant. Accédez à la Restauration des systèmes de fichiers d'archivage pour un fonctionnement normal.
Sinon, arrêtez la procédure à cette étape.