User Tools

Site Tools


registros_corruptos_en_catalis

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
registros_corruptos_en_catalis [30/05/2007 13:26]
fernando
registros_corruptos_en_catalis [16/12/2009 00:00] (current)
Line 1: Line 1:
-====== ​REGISTROS CORRUPTOS EN CATALIS ​======+====== ​Registros corruptos en Catalis ​======
  
 Ocasionalmente,​ las bases bibliográficas de Catalis presentan un fenómeno de corrupción de registros. Si bien no comprendemos la causa del problema, hemos aprendido algunas cosas sobre él, y gracias a eso hemos logrado que deje de fastidiarnos. Lo que sigue puede ser de ayuda a otros que se topen con este problema, y también para que aquellos que, sin haberlo sufrido aún, deseen aplicar una medida de prevención. Ocasionalmente,​ las bases bibliográficas de Catalis presentan un fenómeno de corrupción de registros. Si bien no comprendemos la causa del problema, hemos aprendido algunas cosas sobre él, y gracias a eso hemos logrado que deje de fastidiarnos. Lo que sigue puede ser de ayuda a otros que se topen con este problema, y también para que aquellos que, sin haberlo sufrido aún, deseen aplicar una medida de prevención.
Line 23: Line 23:
  
 La solución que hemos puesto en práctica con éxito consiste en reemplazar la base biblio original por **una nueva base cuyos primeros N registros están vacíos**. N = 100 parece ser un valor seguro. Esto ha evitado que el problema se vuelva a presentar en nuestras bases. En consecuencia,​ creemos que la molestia de aplicar esta "​inmunización"​ sólo ocurre una vez. A continuación se describe el procedimiento que hemos seguido. La solución que hemos puesto en práctica con éxito consiste en reemplazar la base biblio original por **una nueva base cuyos primeros N registros están vacíos**. N = 100 parece ser un valor seguro. Esto ha evitado que el problema se vuelva a presentar en nuestras bases. En consecuencia,​ creemos que la molestia de aplicar esta "​inmunización"​ sólo ocurre una vez. A continuación se describe el procedimiento que hemos seguido.
- 
  
 ==== PASO 0. Copia de resguardo==== ==== PASO 0. Copia de resguardo====
    
-Como corresponde,​ antes de modificar la base creamos un backup de los archivos biblio.mst y biblio.xrf.+Como corresponde,​ antes de modificar la base creamos un backup de los archivos ​''​biblio.mst'' ​''​biblio.xrf''​. 
  
 ==== PASO 1. Detectar registros dañados ==== ==== PASO 1. Detectar registros dañados ====
Line 35: Line 35:
 Una técnica para detectar estos caracteres consiste en convertir la base a un archivo de texto, usando i2id, y luego examinar ese archivo con un editor que permita visualizar caracteres de control de manera destacada, p.ej. vi o mcedit en Linux, o [[http://​www.scintilla.org/​SciTE.html|SciTE]] en Windows. Una técnica para detectar estos caracteres consiste en convertir la base a un archivo de texto, usando i2id, y luego examinar ese archivo con un editor que permita visualizar caracteres de control de manera destacada, p.ej. vi o mcedit en Linux, o [[http://​www.scintilla.org/​SciTE.html|SciTE]] en Windows.
  
-Así generamos un archivo de texto a partir de la base:+Así generamos un archivo de texto a partir ​de los primeros 100 registros ​de la base:
  
-  i2id biblio > biblio.id+  i2id biblio ​to=100 ​> biblio.id
   ​   ​
 En las imágenes siguientes se puede apreciar cómo se visualizan los caracteres de control en un registro corrupto, al examinar ''​biblio.id''​ con tres editores distintos. En los tres casos se trata del mismo registro (MFN 2), cuyo campo 859 está dañado: En las imágenes siguientes se puede apreciar cómo se visualizan los caracteres de control en un registro corrupto, al examinar ''​biblio.id''​ con tres editores distintos. En los tres casos se trata del mismo registro (MFN 2), cuyo campo 859 está dañado:
Line 53: Line 53:
 {{ catalis-registros-corruptos-3.png }} {{ catalis-registros-corruptos-3.png }}
  
-En esta imagen vemos el registro tal como lo presenta MX en Windows+Por otra parte, en esta imagen vemos el registro tal como lo presenta MX en Windows:
  
 {{ catalis-registros-corruptos-4.png }} {{ catalis-registros-corruptos-4.png }}
  
-En la salida del MX no es tan evidente que haya un problema, de ahí la recomendación de usar alguno de los editores sugeridos. (Desde luego, hay casos en que el registro está tan estropeado que también con MX salta a la vista el error.)+Como se puede apreciar, en una rápida mirada a la salida del MX no resulta ​tan evidente que este registro tenga un serio problema. Es por eso que recomendamos utilizar ​alguno de los editores sugeridos, en lugar de MX. (Desde luego, hay casos en que el registro está tan estropeado que también con MX salta a la vista el error.)
  
 Si bien en el archivo ''​biblio.id''​ no hay espacio entre cada registro y el siguiente, es fácil detectar el comienzo de un nuevo registro, indicado por las líneas que tienen esta forma: Si bien en el archivo ''​biblio.id''​ no hay espacio entre cada registro y el siguiente, es fácil detectar el comienzo de un nuevo registro, indicado por las líneas que tienen esta forma:
Line 70: Line 70:
  
 Anotamos los MFN de los registros dañados. Anotamos los MFN de los registros dañados.
 +
 +
 +
 +=== Recuperación de registros dañados ===
 +
 +Una vez que tenemos la lista de MFNs dañados, podemos intentar recuperar una versión sana de esos registros a partir de un backup anterior de la base ''​biblio''​.
 +
  
 ==== PASO 2. Crear base auxiliar con los registros sanos ==== ==== PASO 2. Crear base auxiliar con los registros sanos ====
  
-Creamos una base auxiliar llamada sanos:+Creamos una base auxiliar llamada ​''​sanos''​: 
 + 
 +  mx seq=nul create=sanos (windows)
  
-  mx seq=nul create=sanos+  mx seq=/​dev/​null ​create=sanos ​(linux)
   ​   ​
 En esta base copiaremos todos los registros de biblio, excepto los que hayamos encontrado en mal estado. En esta base copiaremos todos los registros de biblio, excepto los que hayamos encontrado en mal estado.
Line 86: Line 95:
  
 Según cuántos y cuáles sean los registros dañados en nuestra base, deberemos hacer las modificaciones apropiadas en esa secuencia de comandos. Según cuántos y cuáles sean los registros dañados en nuestra base, deberemos hacer las modificaciones apropiadas en esa secuencia de comandos.
 +
 +En el caso de haber podido recuperar algún registro a partir de un backup de ''​biblio'',​ se los puede agregar a ''​sanos'';​ p.ej. si logramos rescatar una copia buena del MFN 7, ejecutamos este comando:
 +
 +  mx biblio_backup from=7 count=1 append=sanos
 +
  
 ==== PASO 3. Crear base nueva ==== ==== PASO 3. Crear base nueva ====
Line 107: Line 121:
 ==== PASO 4. Regenerar archivo invertido ==== ==== PASO 4. Regenerar archivo invertido ====
  
-Siguiendo las [[http://​catalis.uns.edu.ar/​wiki/​index.php/​Generaci%C3%B3n_del_archivo_invertido_en_Catalis|indicaciones del wiki]], generamos el archivo invertido de biblio.+Siguiendo las indicaciones de [[generacion_del_archivo_invertido_en_catalis]], generamos el archivo invertido de biblio.
  
 ==== PASO 5. Limpiar ==== ==== PASO 5. Limpiar ====
Line 122: Line 136:
  
 ===== Observaciones ===== ===== Observaciones =====
- 
-  * No es necesario modificar el archivo cn.txt, pues el reacomodamiento de registros sólo altera los MFNs, no los números de control (campo 001). 
  
   * Notarán que se produce un desfasaje entre la secuencia de MFNs y de números de control. Sin embargo, eso no representa ningún problema, ya que el único identificador persistente que nos interesa es el campo 001. Los MFN pueden cambiar en cualquier momento, como acabamos de presenciar.   * Notarán que se produce un desfasaje entre la secuencia de MFNs y de números de control. Sin embargo, eso no representa ningún problema, ya que el único identificador persistente que nos interesa es el campo 001. Los MFN pueden cambiar en cualquier momento, como acabamos de presenciar.
  
-  * Al compactar la base biblio (tarea usual de mantenimiento para cualquier base cds/isis), **no se debe utilizar un archivo iso como paso intermedio**,​ pues esto haría desaparecer los registros vacíos que colocamos al inicio de la base. La compactación se puede realizar creando una nueva copia de la base:+  * Al compactar la base ''​biblio'' ​(tarea usual de mantenimiento para cualquier base CDS/ISIS), **no se debe utilizar un archivo iso como paso intermedio**,​ pues esto haría desaparecer los registros vacíos que colocamos al inicio de la base. La compactación se puede realizar creando una nueva copia de la base:
  
   mx biblio create=biblio1 now -all   mx biblio create=biblio1 now -all
  
 y luego renombrando ''​biblio1.{mst,​xrf}''​ como ''​biblio.{mst,​xrf}''​. y luego renombrando ''​biblio1.{mst,​xrf}''​ como ''​biblio.{mst,​xrf}''​.
 +
 +  * No es necesario modificar el archivo ''​cn.txt'',​ pues el reacomodamiento de registros sólo altera los MFNs, no los números de control (campo 001).
 +
 +  * Hay un **efecto colateral que debería corregirse en Catalis**: en la pantalla de búsquedas, debajo del botón "​Últimos 10 registros",​ figura un número que excede por lo menos en 100 al total real de registros en la base. En realidad, ese número que se muestra está basado en el máximo MFN existente en la base, pero ya sabemos que la cantidad de registros activos puede ser menor que ese número.
  
 ===== Final ===== ===== Final =====
  
-Nos interesa conocer cualquier duda, sugerencia, etc. con respecto a este problema y al procedimiento presentado. Por favor, utilice nuestro [[http://​groups.google.com.ar/​group/​catalis|foro de discusión]]. Gracias.+Nos interesa conocer cualquier duda, sugerencia, etc. con respecto a este problema y al procedimiento presentado. Por favor, utilice nuestro [[http://​groups.google.com.ar/​group/​catalis|grupo de discusión]]. Gracias. 
 + 
 + 
 + 
 +{{tag>​catalis admin}}
registros_corruptos_en_catalis.1180542412.txt.gz · Last modified: 26/06/2007 00:00 (external edit)