Las siguientes opciones de mysqld pueden
usarse para cambiar el comportamiento de tablas
MyISAM
:
--myisam-recover=
mode
Cambia el modo para recuperación automática para tablas
MyISAM
.
--delay-key-write=ALL
No vuelca buffers de clave entre escrituras para cualquier
tabla MyISAM
.
Nota: Si hace esto, no debe
usar tablas MyISAM
desde otro programa
(como otro servidor MySQL server o con
myisamchk) cuando la tabla está en uso.
Hacerlo provoca corrupción de índice.
Usar --external-locking
no ayuda para
tablas que usan --delay-key-write
.
Consulte Sección 5.3.1, “Opciones del comando mysqld”.
Las siguientes variables de sistema afectan al comportamiento de
tablas MyISAM
:
bulk_insert_buffer_size
Tamaño del árbol de caché usado en optimización de inserciones. Nota: Este es el límite por flujo!
myisam_max_extra_sort_file_size
Usado para ayudar a MySQL a decidir cuándo usar el método de creación de índice de clave caché lento pero seguro Nota: Este parámetro se daba en bytes antes de MySQL 5.0.6, cuando se eliminó.
myisam_max_sort_file_size
No usa el método de ordenación de índice rápido para crear un índice si el fichero temporal será más grande a este tamaño. Nota: En MySQL 5.0, este parámetro se da en bytes.
myisam_sort_buffer_size
Cambia el tamaño del búffer usado al recuperar tablas.
Consulte Sección 5.3.3, “Variables de sistema del servidor”.
La recuperación automática se activa si arranca
mysqld con la opción
--myisam-recover
. En ese caso, cuando el
servidor abre una tabla MyISAM
, chequea si
la tabla está marcada como mal cerrada o si el contador de
veces que se ha abierto la tabla no es 0 y está ejecuando el
servidor con --skip-external-locking
. Si
alguna de estas condiciones es cierta, ocurre lo siguiente:
Se chequea la tabla para errores.
Si el servidor encuentra un error, trata de hacer una reparación de tabla rápida (ordenando y sin recrear el fichero de datos).
Si falla la reparación debido a un error en el fichero de datos (por ejemplo, error de clave duplicada), el servidor lo intenta otra vez, esta vez recreando el fichero de datos.
Si sigue fallando, el servidor trata una vez más con el método de reparación antiguo (escrito registro a registro sin ordenar). Este método debe ser capaz de reparar cualquier clase de error y tiene requerimientos de espacio bajos.
Si la recuperación no fuera capaz de recuperar todos los
registros de un comando préviamente completado y no ha
especificado FORCE
en la opción
--myisam-recover
, la recuperación
automática aborta con un mensaje de error en el log de errores:
Error: Couldn't repair table: test.g00pages
Si especifica FORCE
, se escribe una
advertencia como esta:
Warning: Found 344 of 354 rows when repairing ./test/g00pages
Tenga en cuenta qui el valor de recuperación automático
incluye BACKUP
, el proceso de recuperación
crea ficheros con nombres de la forma
.
Debe tener un script cron que mueva estos
ficheros automáticamente del directorio de base de datos al
dispositivo de copia de seguridad.
tbl_name-datetime
.BAK
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.