En este capítulo, se detallan los procedimientos para la restauración de archivos individuales en el sistema de archivos. Incluye los siguientes temas:
Recuperación de archivos mediante un archivo de punto de recuperación
Recuperación de copias de archivos de almacenamiento dañadas
Un archivo de punto de recuperación es el modo de recuperar archivos perdidos o dañados más rápido, confiable, completo y que menos trabajo requiere. Por lo tanto, si hay disponible un archivo de punto de recuperación, haga lo siguiente:
Inicie sesión en el servidor de metadatos del sistema de archivos como usuario root
.
root@solaris:~#
Si aún no lo ha hecho detenga el archivado y el reciclaje mediante los procedimientos en Detención de procesos de archivado y reciclaje.
En el sistema de archivos de destino, cree un directorio de recuperación temporal para contener los archivos recuperados.
En el ejemplo, se crea el directorio temporal restore
en el punto de montaje del sistema de archivos que se volvió a crear /hsmfs1
:
root@solaris:~# mkdir /hsmfs1/restore
Evite que el archivador realice el almacenamiento desde el directorio temporal. Utilice el comando archive
-r
-n
directory
, donde:
-r
-n
desactiva de forma recursiva el almacenamiento de archivos que residen en el directorio especificado o debajo de este.
directory
es la ruta y el nombre del directorio del directorio de recuperación temporal.
root@solaris:~# archive -r -n /hsmfs1/restore
Cambie al directorio de recuperación temporal.
root@solaris:~# cd /hsmfs1/restore
Identifique el archivo de punto de recuperación más reciente disponible.
En el ejemplo, se crearon archivos de punto de recuperación con fecha para el sistema de archivos hsmfs1
en una ubicación conocida, el subdirectorio hsmfs1_recovery
en el sistema de archivos independiente /zfs1
. Por lo tanto, el archivo más reciente, 20150324
, es fácil de encontrar:
root@solaris:~# dir /zfs1/hsmfs1_recovery/ 20150321 20150322 20150323 20150324 root@solaris:~#
Asegúrese de que el archivo que necesita recuperar esté en el archivo de punto de recuperación. Busque el archivo necesario en la salida del comando samfsrestore
-t
-f
recovery-point
, donde:
-t
muestra una tabla de contenido.
-f
recovery-point-file
especifica la ruta y el nombre de archivo del archivo de punto de recuperación seleccionado.
En el ejemplo, se intenta recuperar el archivo genw445
. Por lo tanto, se ejecutó el comando samfsrestore
-t
con el archivo de punto de recuperación /zfs1/hsmfs1_recovery/
20150324
. Para simplificar la búsqueda, canalizamos la salida del comando samfsrestore
-t
al comando grep
de Solaris y la expresión regular "genw445"
(tenga en cuenta que el comando siguiente se introduce como una sola línea, el salto de línea se identifica por el carácter de barra diagonal inversa):
root@solaris:~# samfsrestore -t -f /zfs1/hsmfs1_recovery/20150324 | \ grep "genw445" ./genfiles/genw445 root@solaris:~#
Restaure la información de inode del archivo en el directorio actual. Utilice el comando samfsrestore
-f
recovery-point
file
, donde:
-f
recovery-point-file
especifica la ruta y el nombre de archivo del archivo de punto de recuperación seleccionado.
file
especifica la ruta de acceso exacta y el nombre que el archivo de punto de recuperación muestra para el archivo que desea recuperar.
En el ejemplo, se recupera ./genfiles/genw445
del archivo de punto de recuperación /zfs1/hsmfs1_recovery/
20150324
(tenga en cuenta que el comando siguiente se introduce como una sola línea; el salto de línea se identifica mediante el carácter de barra diagonal inversa):
root@solaris:~# samfsrestore -f /zfs1/hsmfs1_recovery/20150324 \ ./genfiles/genw445 root@solaris:~#
Asegúrese de que el archivo se haya restaurado correctamente. Use el comando sls
-D
file
, donde file
especifica la ruta y el nombre del archivo relacionado con el directorio de recuperación temporal.
En el ejemplo, el archivo genfiles/genw445
se recuperó en el directorio temporal /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 el archivo se restauró correctamente, muévalos a la ubicación correcta del sistema de archivos.
En el ejemplo, se mueve el archivo genw445
desde el directorio de trabajo temporal /hsmfs1
/restore/
genfiles/
hasta su ubicación original en /hsmfs1/
genfiles/
:
root@solaris:~# mv -f genfiles/genw445 /hsmfs1/genfiles/genw445 root@solaris:~#
Repita este procedimiento hasta que todos los archivos que faltan se hayan recuperado.
Finalice el procedimiento de recuperación. Consulte Restauración del funcionamiento normal de los sistemas de archivos de almacenamiento.
Recuperar archivos con un log de archivador o logs de migración de medios es siempre un proceso tedioso e intensivo si hay varios archivos involucrados. Por lo tanto, siempre que sea posible, utilice los procedimientos descritos en esta sección sólo cuando un punto de recuperación no pueda restaurar el archivo necesario.
Mientras el proceso general para recuperar archivos de medios de archivo es esencialmente el mismo en todos los casos, los detalles pueden variar para diferentes tipos de archivo. Por lo tanto, seleccione el procedimiento destinado para el tipo de archivo que va a restaurar:
Tenga en cuenta que es posible que los archivos no se restauren en la ubicación precisa en la que espera que se recupere una copia desde el medio. Los archivos se restauran en su ubicación en el momento en el que se realizó la copia de archivo de almacenamiento. Por este motivo, los archivos que se movieron posteriormente no se restauran en el directorio donde estaban cuando se perdieron.
Para cada archivo que deba recuperar, siga los pasos que se detallan a continuación.
Si aún no lo ha hecho, inicie sesión en el servidor de metadatos del sistema de archivos como usuario root
.
root@solaris:~#
Si aún no lo ha hecho detenga el archivado y el reciclaje mediante los procedimientos en Detención de procesos de archivado y reciclaje.
Cambie al directorio raíz del sistema de archivos que está restaurando.
Los archivos de almacenamiento de Oracle HSM almacenan copias relacionadas con el directorio raíz del sistema de archivos. Entonces, para restaurarlos en sus ubicaciones originales, se deben restaurar desde el directorio raíz.
En el ejemplo, se cambia a la raíz del sistema de archivos hsmfs1
:
root@solaris:~# cd /hsmfs1 root@solaris:~#
Si cuenta con un log del archivador para el período en el que se archivó por última vez el archivo normal, busque la entrada más reciente del archivo.
En el primer ejemplo, se busca una entrada para el archivo regular (tipo f
) genA0
:
A 2015/03/03 13:09:05 li VOL004 all.1 212.1 hsmfs1 1535.2 1971 genfiles/genA0 f 0 0
En el primer ejemplo, se busca una entrada para el archivo regular (tipo 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
Una vez localizada una entrada de log para un archivo requerido, tenga en cuenta el tipo de medio, el número de serie de volumen de los medios y la ruta y el nombre del archivo relacionado con el directorio raíz del sistema de archivos.
En el primer ejemplo, el archivo genA0
reside en un volumen de cinta LTO (li
) con el número de serie de volumen (VSN) VOL004
. El archivo se almacenó originalmente en el directorio del sistema de archivos /hsmfs1/genfiles/
:
A 2015/03/03 13:09:05 li VOL004 all.1 212.1 hsmfs1 1535.2 1971 genfiles/genA0 f 0 0
En el segundo ejemplo, el archivo spcC4
reside en un archivo de almacenamiento de disco (dk
) con el número de serie de volumen DISKVOL1
. El archivo se almacenó originalmente en el directorio del sistema de archivos /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 archivo requerido reside en un medio de acceso secuencial, como una cinta magnética, también tenga en cuenta el valor hexadecimal que representa la posición inicial del archivo de almacenamiento (tar
).
En el ejemplo, el archivo genA0
reside en la cinta a partir de la posición 0 x 212 (212
):
A 2015/03/03 13:09:05 li VOL004 all.1 212.1 hsmfs1 1535.2 1971 genfiles/genA0 f 0 0
Si el archivo requerido se almacena en medios de acceso aleatorio, como un disco de almacenamiento, también tenga en cuenta la ruta y en nombre del archivo tar
relacionado con el número de serie de volumen.
En el ejemplo, el archivo spcC4
reside en el subdirectorio f2
inmediatamente debajo del directorio raíz del volumen de disco 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 el archivo que está restaurando se archiva en medios de disco, extraiga la copia de archivo de almacenamiento del archivo faltante o dañado desde el archivo tar
en el volumen de disco. Utilice el comando star
-xv
-f
tarfile
file
, donde:
tarfile
es el nombre del archivo de almacenamiento.
file
es la ruta (relacionada con el directorio raíz del sistema de archivos) y el nombre del archivo que debe restaurar.
El comando star es una versión mejorada de GNU tar
de Oracle HSM que restaura los archivos especificados desde el archivo de almacenamiento.
En el ejemplo, se extrae el archivo de datos socfiles/spcC4
desde el archivo tar
DISKVOL1
/
f2
. El archivo se restaura en /
hsmfs1
/
socfiles/spcC4
:
root@solaris:~# star -xvf DISKVOL1/f2 socfiles/spcC4
Si restauró el archivo requerido desde un almacenamiento de disco, proceda a restaurar archivos regulares perdidos o dañados hasta que se hayan restaurado todos los archivos requeridos.
Si el archivo que está restaurando se archiva en medios extraíbles, como una cinta magnética, cree un directorio en el sistema de archivos restaurado para mantener archivos de almacenamiento temporales.
En el ejemplo, se crea el directorio /
hsmfs1
/
tars
.
root@solaris:~# mkdir /hsmfs1/tars
Posicione el medio al comienzo del encabezado tar
para el archivo de almacenamiento que contiene la copia archivada y lea el archivo desde el medio en la memoria. Utilice el comando request
-m
media-type
-v
volume-serial-number
-p
0x
position
path
/
requestfile
, donde:
-m
media-type
especifica uno de los dos códigos de tipo de medios de dos caracteres que se muestran en Apéndice B.
-v
volume-serial-number
especifica el código alfanumérico de seis caracteres que identifica el volumen de medios.
-p
0x
position
especifica la posición inicial hexadecimal que anotó en la entrada del log del archivador.
path
es la ruta al directorio de recuperación temporal.
requestfile
es el nombre que desea usar para el archivo tar
en la memoria que el comando request
lee desde el medio.
En el ejemplo, se crea un archivo de solicitud, /
hsmfs1
/
tars
/
currentrequest
desde la posición 0x78
en el volumen de LTO (li
) VOL012
:
root@solaris:~# request -m li -v VOL012 -p 0x78 /hsmfs1/tars/currentrequest
Extraiga la copia de archivo de almacenamiento del archivo faltante o dañado desde el archivo tar
en la memoria que creó en el paso anterior. Utilice el comando star
-xv
-f
requestfile
, donde:
requestfile
es el nombre del archivo tar
en la memoria.
file
es la ruta (relacionada con el directorio raíz del sistema de archivos) y el nombre del archivo que debe restaurar.
El comando star es una versión mejorada de GNU tar
de Oracle HSM que restaura archivos especificados desde el archivo de solicitud (la copia del archivo de almacenamiento en la memoria).
En el ejemplo, se extrae el archivo de datos genfiles/genA0
del archivo de solicitud tars
/
currentrequest
. El archivo se restaura en /
hsmfs1
/
genfiles/genA0
:
root@solaris:~# star -xvf tars/currentrequest genfiles/genA0
Defina los atributos de archivo necesarios.
Cuando restaura un archivo desde un archivo tar
, sin un archivo de punto de recuperación samfsdump
o qfsdump
, se pierden los atributos del archivo original. Se debe crear desde cero un archivo .inodes
para el archivo, usando los valores de atributo por defecto.
Repita este procedimiento hasta que todos los archivos requeridos se hayan recuperado.
Si es necesario, restaure los archivos segmentados o los archivos de desbordamiento de volumen que se perdieron o dañaron.
De lo contrario, finalice el procedimiento de recuperación. Consulte Restauración del funcionamiento normal de los sistemas de archivos de almacenamiento.
La restauración de un archivo segmentado es muy similar a la restauración de un archivo normal. Sin embargo, puede recuperar los segmentos individuales en lugar de recuperar el archivo mismo. Entonces, para restaurar el archivo, debe volver a ensamblar los segmentos en un único archivo y, a continuación, volver a segmentar el resultado. Para cada archivo que deba recuperar, siga los pasos que se detallan a continuación.
Si aún no lo ha hecho, inicie sesión en el servidor de metadatos del sistema de archivos como usuario root
.
root@solaris:~#
Si aún no lo ha hecho, detenga el archivado y reciclaje mediante el procedimiento en Detención de procesos de archivado y reciclaje.
Si cuenta con un log del archivador para el período en el que se archivó por última vez el archivo segmentado, busque las entradas de los archivos segmentados (tipo S
). Seleccione las entradas más recientes de los segmentos del archivo requerido.
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
Una vez que haya encontrado las últimas entradas de los segmentos, tenga en cuenta los siguientes detalles:
El tipo de medios.
Los números de serie de volumen de los volúmenes de medios que almacenan los segmentos de archivos.
Las posiciones hexadecimales iniciales de los archivos de almacenamiento (tar
) que alojan los segmentos.
La ruta y el nombre del archivo segmentado relacionado con el directorio raíz del sistema de archivos.
El número de segmentos del archivo.
En el ejemplo, el archivo dat011
está dividido en tres segmentos (1
, 2
y 3
). Los tres segmentos están almacenados en los tres archivos de almacenamiento, todos en un único volumen de cinta LTO (li
), número de serie de volumen VOL013
. Los tres archivos de almacenamiento comienzan en las posiciones 0x76a (76a
), 0x2476f (2476f
) y 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
Cambie al directorio raíz del sistema de archivos que está restaurando.
Los archivos de almacenamiento de Oracle HSM almacenan copias relacionadas con el directorio raíz del sistema de archivos. Entonces, para restaurarlos en sus ubicaciones originales, se deben restaurar desde el directorio raíz.
En el ejemplo, se cambia a la raíz del sistema de archivos hsmfs1
.
root@solaris:~# cd /hsmfs1
Cree un directorio en el sistema de archivos restaurado para contener los archivos de almacenamiento temporales.
En el ejemplo, se crea el directorio /
hsmfs1
/
tars
.
root@solaris:~# mkdir /hsmfs1/tars
Posicione el medio al comienzo de cada archivo de almacenamiento que contenga una copia almacenada de uno o más de los segmentos del archivo y lea el archivo desde el medio en la memoria. Utilice el comando request
-m
media-type
-v
volume-serial-number
-p
0x
position
path
/
requestfile
, donde:
-m
media-type
especifica uno de los dos códigos de tipo de medios de dos caracteres que se muestran en Apéndice B.
-v
volume-serial-number
especifica el código alfanumérico de seis caracteres que identifica el volumen de medios.
-p
0x
position
especifica la posición inicial hexadecimal que anotó en la entrada del log del archivador.
path
es la ruta al directorio de recuperación temporal.
requestfile
es el nombre que desea usar para el archivo tar
en la memoria que el comando request
lee desde el medio.
En el ejemplo, se tienen que crear dos archivos de solicitud. El primero, /
hsmfs1
/
tars
/
request76a
, carga el archivo de almacenamiento que comienza en la posición 0x76a
en LTO (li
) VOL013
. Este archivo contiene los primeros dos segmentos. El segundo archivo de solicitud, /
hsmfs1
/
tars
/
request1409aa4
, carga el archivo de almacenamiento en la posición 0x1409aa4
, en este caso, en el mismo volumen (los segmentos pueden residir en cualquier volumen de la biblioteca):
root@solaris:~# request -m li -v VOL013 -p 0x76a /hsmfs1/tars/request76a root@solaris:~# request -m li -v VOL013 -p 0x1409aa4 \ /hsmfs1/tars/request1409aa4
Extraiga cada segmento de la copia de seguridad del archivo faltante o dañado desde el archivo tar
en la memoria que creó en el paso anterior. Use el comando star
-xv
-f
requestfile
segment
, donde requestfile
es el nombre del archivo tar
en la memoria y segment
es la ruta (relacionada con el directorio raíz del sistema) y el nombre del archivo que necesita restaurar.
El comando star es una versión Oracle HSM mejorada de tar
de GNU que restaura archivos especificados desde el archivo de almacenamiento al que apunta con el archivo de solicitud.
En el ejemplo, se extraen dos de los tres segmentos del archivo de datos bf/dat011
desde el archivo de solicitud (archivos tar
en la memoria) tars
/
request76a
y uno del archivo de solicitud tars
/
request1409aa4
. El archivo se restaura a un directorio, /
hsmfs1
/
bf/dat011/
, en tres partes independientes:
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
Cuando se muestran los contenidos de /
hsmfs1
/
bf/dat011
, se observa un archivo numerado secuencialmente para cada segmento restaurado:
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:~#
Vuelva a ensamblar los segmentos restaurados en un archivo temporal único no segmentado.
En el ejemplo, se concatenaron los tres segmentos en el directorio /
hsmfs1
/
bf/dat011/
para crear el archivo /
hsmfs1
/
bf/dat011file
:
root@solaris:~# cat /hsmfs/bf/dat011/1 /hsmfs/bf/dat011/2 \ /hsmfs/bf/dat011/3 > /hsmfs/bf/dat011file root@solaris:~#
Cuando se muestran los contenidos de /
hsmfs1
/
bf/
, el archivo nuevo aparece junto con el directorio que contiene los segmentos.
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:~#
Elimine los segmentos y el directorio que los contiene.
root@solaris:~# rm -r /hsmfs/bf/dat011/ root@solaris:~#
Cree un archivo vacío con la ruta original y el nombre del archivo segmentado. Utilice el comando touch
file
, donde file
es la ruta original y el nombre del archivo.
En el ejemplo, se crea el archivo vacío /
hsmfs
/
bf
/
dat011
, el nombre original del archivo segmentado que se está restaurando:
root@solaris:~# touch /hsmfs/bf/dat011 root@solaris:~#
Defina el atributo de segmento Oracle HSM en el nuevo archivo vacío recién creado. Use el comando segment
-l
segment-length
file
, donde segment-length
es la longitud del segmento que anotó en la entrada del log del archivador y file
es la ruta original y el nombre del archivo segmentado.
En el ejemplo, el log del archivador muestra que la longitud del segmento para el archivo dat011
es 10485760
(el archivo termina en el tercer segmento, por lo que la longitud de los datos en el medio es menor que la longitud del segmento):
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
Entonces la longitud del segmento se establece en 10485760
para el archivo vacío:
root@solaris:~# segment -l 10485760 /hsmfs/bf/dat011 root@solaris:~#
Copie el archivo temporal sin segmentar en el archivo segmentado vacío.
En el ejemplo, se copia dat011file
en dat011
:
root@solaris:~# cp /hsmfs/bf/dat011file /hsmfs/bf/dat011 root@solaris:~#
Cuando se ejecuta el comando sls -2K
hsmfs
/
bf
/
dat011
para mostrar los segmentos, estos aparecen como se muestra a continuación. De modo que el archivo se ha restaurado.
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
Defina los otros atributos de archivo necesarios.
Cuando restaura un archivo desde un archivo tar
, sin un archivo de punto de recuperación samfsdump
o qfsdump
, se pierden los atributos del archivo original. Se debe crear desde cero un archivo .inodes
para el archivo, usando los valores de atributo por defecto.
El archivo ahora se ha restaurado. Suprima el archivo temporal sin segmentar.
En el ejemplo, se suprime dat011file
:
root@solaris:~# rm /hsmfs/bf/dat011file root@solaris:~#
Repita este procedimiento hasta que todos los archivos requeridos se hayan recuperado.
Finalice el procedimiento de recuperación. Consulte Restauración del funcionamiento normal de los sistemas de archivos de almacenamiento.
Un archivo de desbordamiento de volumen es un archivo normal que abarca volúmenes de medios. Restaurar un archivo de desbordamiento de volumen es muy similar a restaurar cualquier otro archivo normal. Sin embargo, debe combinar las secciones de un archivo de almacenamiento que reside en varios volúmenes en un único archivo de almacenamiento en disco antes de extraer el archivo de datos del archivo de almacenamiento. Para cada archivo que deba recuperar, siga los pasos que se detallan a continuación:
Si aún no lo ha hecho, inicie sesión en el servidor de metadatos del sistema de archivos como usuario root
.
root@solaris:~#
Si aún no lo ha hecho, detenga el archivado y reciclaje mediante el procedimiento en Detención de procesos de archivado y reciclaje.
Si cuenta con un log del archivador para el período en el que se archivó por última vez el archivo de desbordamiento de volumen, busque la entrada más reciente del archivo. Anote los números de serie de los medios, la longitud de cada sección del archivo, la ruta y el nombre del archivo relacionado con el directorio raíz del sistema de archivos, y el número de secciones en el archivo.
En el ejemplo, se sabe que el archivo /
hsmfs1
/
rf
/
rf81
es un archivo de desbordamiento de volumen porque es un archivo normal de tipo f
que reside en dos volúmenes, VOL036
y VOL034
, y tiene dos secciones, 0
y 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
Cambie al directorio raíz del sistema de archivos que está restaurando.
Los archivos de almacenamiento de Oracle HSM almacenan copias relacionadas con el directorio raíz del sistema de archivos. Entonces, para restaurarlos en sus ubicaciones originales, se deben restaurar desde el directorio raíz.
En el ejemplo, se cambia a la raíz del sistema de archivos hsmfs1
.
root@solaris:~# cd /hsmfs1
Antes de continuar, asegúrese de que el sistema de archivos contenga suficiente espacio libre para incluir un archivo de por lo menos el doble del tamaño del archivo que se está recuperando.
Para el archivo en el ejemplo, rf/rf81
, necesitaremos 1,2 GB de espacio libre, en función de los tamaños de las dos secciones del archivo: 2 x (89128448 + 525271552) = 1228800000 bytes.
Cree un directorio en el sistema de archivos restaurado para contener los archivos de almacenamiento temporales.
En el ejemplo, se crea el directorio /
hsmfs1
/
tars
.
root@solaris:~# mkdir /hsmfs1/tars
Posicione el medio al comienzo de cada archivo de almacenamiento que contenga una copia almacenada de uno o más de los segmentos del archivo y lea el archivo desde el medio en la memoria. Utilice el comando request
-m
media-type
-v
volume-serial-number
-p
0x
position
path
/
requestfile
, donde:
-m
media-type
especifica uno de los dos códigos de tipo de medios de dos caracteres que se muestran en Apéndice B.
-v
volume-serial-number
especifica el código alfanumérico de seis caracteres que identifica el volumen de medios.
-p
0x
position
es la posición inicial hexadecimal que anotó en la entrada del log del archivador.
path
es la ruta al directorio de recuperación temporal.
requestfile
es el nombre que desea usar para el archivo tar
en la memoria que el comando request
lee desde el medio.
En el ejemplo, se crean dos archivos de solicitud. El primer archivo de solicitud, /
hsmfs1
/
tars
/
requestVOL036
, carga el archivo de almacenamiento que comienza en la posición 0x12d
en LTO (li
) VOL036
. El segundo archivo de solicitud, /
hsmfs1
/
tars
/
requestVOL034
, carga el archivo de almacenamiento que comienza en la posición 0x15f
en 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
Guarde cada uno de los archivos tar
en la memoria que haya creado para el disco como una sección del archivo de almacenamiento. Utilice el comando dd
if=
requestfile
of=
archive_section
, donde requestfile
es la ruta y el nombre del archivo tar
en la memoria y archive_section
es la ruta y el nombre de cada sección del archivo de almacenamiento.
En el ejemplo, guardamos los archivos de solicitud (archivos tar
en la memoria), tars
/
requestVOL036
y tars
/
requestVOL034
como tars
/
archive_part1
y tars
/
archive_part2
:
root@solaris:~# dd if=tars/requestVOL036 of=tars/archive_part1 root@solaris:~# dd if=tars/requestVOL034 of=tars/archive_part2 root@solaris:~#
Vuelva a ensamblar las secciones en un único archivo de almacenamiento.
En el ejemplo, se concatenan dos secciones, tars
/
archive_part1
y tars
/
archive_part2
, para crear un archivo de almacenamiento único, /
tars
/
archive_complete
:
root@solaris:~# cat tars/archive_part1 tars/archive_part2 > \ tars/archive_complete root@solaris:~#
Extraiga la copia de seguridad del archivo de desbordamiento de volumen faltante o dañado desde el archivo (tar
) que creó en el paso anterior. Use el comando star
-xv
-f
tarfile
file
, donde tarfile
es el nombre del archivo de almacenamiento y file
es la ruta (relacionada con el directorio raíz del sistema) y el nombre del archivo que necesita restaurar.
El comando star
es una versión Oracle HSM mejorada de tar
de GNU que restaura archivos especificados desde el archivo de almacenamiento al que apunta con el archivo de solicitud.
En el ejemplo, se extrae el archivo de desbordamiento de volumen rf/rf81
desde el archivo tar
tars
/
archive_complete
:
root@solaris:~# star -xvf tars/archive_complete rf/rf81
Defina los otros atributos de archivo necesarios.
Cuando restaura un archivo desde un archivo tar
, sin un archivo de punto de recuperación samfsdump
o qfsdump
, se pierden los atributos del archivo original. Se debe crear desde cero un archivo .inodes
para el archivo, usando los valores de atributo por defecto.
El archivo de desbordamiento de volumen ahora se ha restaurado. Suprima el archivo temporal.
En el ejemplo, se suprime dat011file
:
root@solaris:~# rm tars/archive_* root@solaris:~#
Repita este procedimiento hasta que todos los archivos requeridos se hayan recuperado.
Finalice el procedimiento de recuperación. Consulte Restauración del funcionamiento normal de los sistemas de archivos de almacenamiento.
Una copia de archivo de almacenamiento dañada es una copia de un archivo que no se puede volver a guardar de manera provisional en la caché de disco. A veces, el almacenamiento provisional del archivo falla debido a un problema de E/S intermitente relacionado con hardware que se puede resolver fácilmente. Otras veces, la copia dañada es defectuosa y los datos no se pueden recuperar. La única opción en estos casos es recuperar el archivo desde una copia alternativa.
Para identificar y administrar copias dañadas, realice lo siguiente:
Identifique los archivos con copias de archivo de almacenamiento dañadas. Use el comando sfind
mountpoint
-any_copy_d
, donde mountpoint
es el directorio donde se monta el sistema de archivos recuperado.
En el ejemplo, se inicia la búsqueda en el directorio /hsmfs1
y se encuentran tres archivos con copias dañadas:
root@solaris:~# sfind /hsmfs1 -any_copy_d ./genfiles/ab09 ./genfiles/ab11 ./genfiles/ay12 root@solaris:~#
Para cada archivo que haya identificado, identifique las copias dañadas. Utilice el comando sls
-D
file
, donde file
es la ruta y el nombre de archivo que quiere comprobar.
Las copias dañadas se destacan con una D
. En el ejemplo, la copia 2
de /hsmfs1/genfiles/ab09
y la copia 1
de /hsmfs1/genfiles/ab11
están dañadas:
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:~#
Si hay una copia alternativa, desarchive la copia dañada. Utilice el comando unarchive
-c
CopyNumber
file
, donde CopyNumber
es un entero que representa el número de copia y file
es la ruta y el nombre del archivo dañado. Deténgase aquí.
Cuando desarchiva una copia dañada, Oracle HSM realiza una almacenamiento provisional de la copia y crea una copia de archivo de almacenamiento adicional la próxima vez que se ejecuta el proceso del archivador. En el ejemplo, hay otra copia de /hsmfs1/genfiles/ab09
que no está dañada, por lo que se restaura la copia dañada, es decir, la copia 2
:
root@solaris:~# unarchive -c 2 /hsmfs1/genfiles/ab09 root@solaris:~#
Si no cuenta con otra copia, repare el daño de la copia dañada. Utilice el comando undamage
-c
CopyNumber
file
, donde CopyNumber
es un entero que representa el número de copia y file
es la ruta y el nombre del archivo dañado.
A veces, un archivo no se almacena de manera provisional debido a un error de E/S intermitente relacionado con hardware. Puede resolver el problema si borra el indicador de daño y vuelve a almacenar de manera provisional. En el ejemplo, hay una sola copia de /hsmfs1/genfiles/ab11
:
root@solaris:~# undamage -c1 /hsmfs1/genfiles/ab11
Intente almacenar de manera provisional la copia. Use el comando stage
-c
CopyNumber
-I
file
, donde CopyNumber
es un entero que representa el número de copia y file
es la ruta y el nombre del archivo dañado.
El parámetro opcional -I
(inmediato) coloca la operación de almacenamiento provisional al inicio de la cola:
root@solaris:~# stage -c 1 -I /hsmfs1/genfiles/ab11
Si el almacenamiento provisional se produce correctamente, deténgase aquí.
Si volvió a fallar, Oracle HSM nuevamente coloca el indicador de dañado. Anote el número de inode principal en la salida del comando sls -D
para la copia dañada.
En el ejemplo, el número de inode del archivo /hsmfs1/genfiles/ab11
es 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:~#
Busque las causas posibles. Primero, examine el archivo Oracle HSM /var/adm/sam-log
para buscar mensajes relacionados con el almacenamiento provisional pertinentes al inode del archivo con la copia dañada.
La búsqueda se puede llevar a cabo de distintas formas. En el ejemplo, se muestran los contenidos del archivo de log usando el comando cat
de Solaris y se conduce la salida a grep
y una expresión regular que coincide con el número de inode. Se encuentran dos mensajes. Ambos indican un error de E/S y uno explícitamente implica el número ordinal del equipo (eq
) 804
, una de las unidades de cinta:
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 el archivo /var/adm/sam-log
implica un número ordinal de equipo Oracle HSM, examine el log del dispositivo, /var/opt/SUNWsamfs/devlog/
drive-equipment-number
, donde drive-equipment-number
es el número ordinal que aparece en el archivo /var/adm/sam-log
.
Si el problema parece ser específico de una unidad en particular, haga que la unidad implicada no esté disponible para el proceso de almacenamiento provisional usando el comando samcmd
unavail
drive-equipment-number
. A continuación, repare la copia e intente almacenarla de manera provisional.
root@solaris:~# samcmd unavail 804 root@solaris:~# stage -c 1 -I /hsmfs1/genfiles/ab11 root@solaris:~# undamage -c1 /hsmfs1/genfiles/ab11 root@solaris:~#
Si el almacenamiento provisional vuelve a fallar o no aparece una unidad de disco individual, intente recuperar la copia usando los comandos request
y star
, como se describe en Recuperación de archivos mediante entradas de log, o utilidades de Solaris como tar
y dd
.
Si aún no puede recuperar el archivo, y si el valor de los datos lo garantiza, recurra a un servicio de recuperación de datos. Para obtener asistencia con los medios de cinta Oracle StorageTek, recurra a los servicios de recuperación de datos de cinta empresarial de Oracle StorageTek. Inicie sesión en My Oracle Support en support.oracle.com
. Abra una solicitud de servicio, seleccione el modelo de unidad de cinta de la lista, dentro de la categoría de solicitud, y seleccione problemas de medios en la lista, dentro de la subcategoría.
Si el archivo no se puede recuperar, quite la copia dañada del almacenamiento. Utilice el comando unarchive
-c
CopyNumber
file
, donde CopyNumber
es un entero que representa el número de copia y file
es la ruta y el nombre del archivo dañado.
root@solaris:~# unarchive -c 1 /hsmfs1/genfiles/ab11 root@solaris:~#
Resuelva los problemas de unidades o medios que mostraron los archivos de log.
Si desactivó los procesos de almacenamiento, almacenamiento provisional y reciclaje en un paso anterior, reactívelos ahora. Consulte Restauración del funcionamiento normal de los sistemas de archivos de almacenamiento.
De lo contrario, deténgase aquí.