Mysql base de datos optimizada de copia de seguridad y recuperación

Limpieza de espacio de base de datos
 
 
La operación de eliminación traerá algunos fragmentos de datos, es decir, estos fragmentos están ocupando espacio en el disco duro
La tabla TABLES en la base de datos information_schema de MySQL registra el espacio ocupado por cada tabla en la base de datos MySQL, el número de filas registradas en la tabla, el tiempo de actualización, la descripción, etc. Los campos principales de esta tabla son los siguientes:
TABLE_SCHEMA: nombre de la base de datos
TABLE_NAME: nombre de la tabla
MOTOR: el motor de almacenamiento utilizado
TABLES_ROWS: el número de registros, es decir, el número de filas en la tabla
DATA_LENGTH: tamaño de datos
INDEX_LENGTH: tamaño del índice
CREATE_TIME: tiempo de creación
UPDATE_TIME: la última hora de actualización
DATA_FREE: este parámetro está relacionado con la fragmentación de mysql. Si se trata de un espacio de tabla compartido, este campo indica el tamaño del espacio de tabla compartido en lugar del tamaño de los datos. Solo cuando se usa el espacio de tabla exclusivo, este campo indica el espacio restante de la tabla;
Nota: Cuando MySQL elimina una fila de contenido de la lista, el espacio se dejará en blanco. Después de que se realiza una gran cantidad de operaciones de eliminación durante un período de tiempo, el espacio fragmentado tiende a ser más grande que el espacio utilizado para almacenar el contenido de la lista.
En términos simples: el campo Data_free es el espacio físico ocupado. Puede ver el campo Data_free de la tabla especificada a través de 'mostrar estado de la tabla'. El valor correspondiente es el espacio físico ocupado. La reconstrucción de la tabla de caída o la reimportación pueden liberar esta parte del espacio .
 
1. Ver la estructura de la tabla de la base de datos
USE información_esquema;
SELECCIONE table_name, table_rows FROM TABLES WHERE table_schema = 'school' ORDER BY table_rows DESC;
SELECCIONE sum (table_rows) FROM tables WHERE table_schema = 'school';
SELECCIONE table_name, table_rows FROM TABLES WHERE table_schema = 'school' ORDER BY table_rows DESC LIMIT 100;
select * from - Consulta la tabla say
ordenar por id desc-Ordenar por id tamaño de columna en orden descendente
límite 100, 15-Tome una pieza de datos del resultado de la consulta, es decir, saque 15 piezas de datos de la centésima
 
2. El tamaño de la tabla de búsqueda
SELECCIONE TABLE_NAME, (DATA_LENGTH + INDEX_LENGTH) / 1048576, TABLE_ROWS FROM information_schema.tables WHERE TABLE_SCHEMA = 'dbname' AND TABLE_NAME = 'tablename (你 的 表 名)';
 
 
Abra la línea de comando Mysql, ingrese la contraseña de la base de datos, ingrese la base de datos que se va a operar (la línea de comando es: use databaseName;), y luego ejecute optimizar tabla tableName;
 
Caso de producción: espacio de mesa de lanzamiento
 
Idea 1:
 
Los datos no se eliminan: tabla de copia de seguridad, tabla desplegable, importar tabla de copia de seguridad a la base de datos;
muestra el estado de la tabla como 'oldtb%'; -> Céntrese en el campo Data_free, el valor correspondiente es el espacio físico que está más ocupado, es decir, el espacio fragmentado
mysqldump -uroot -p123456 mydb oldtb> /mnt/oldtb.sql-> Exporta la tabla que puede restaurar el espacio del sistema.
soltar tabla oldtb; -> soltar tabla antigua para liberar espacio de tabla
source /mnt/oldtb.sql; -> Exporta la tabla de respaldo a la base de datos.
muestra el estado de la tabla como 'oldtb%'; -> Compara el estado antes y después de la recuperación, enfocándote en el campo Data_free
Esta operación utiliza múltiples operaciones de una sola tabla y realiza copias de seguridad y restaura las tablas varias veces, liberando así espacio fragmentado, y es adecuada para empresas que no permiten el tiempo de inactividad.
Si el negocio del sistema permite detener el servicio dentro de un período de tiempo, puede hacer una copia de seguridad de toda la base de datos, luego vaciar, reconstruir el directorio raíz de datos mysql y luego restaurar toda la base de datos.
 
 
Idea 2:
 
Eliminar algunos datos antiguos: adecuado para escenarios donde se pueden eliminar algunos datos antiguos
CREAR TABLA SI NO EXISTE curso `newtb` LIKE`; -> Nueva tabla newtb, la estructura de la tabla es la misma que la tabla anterior
inserte en newtb seleccione * de oldtb donde time> 'xxx' y time <= 'xxx';
-> Haga una copia de seguridad de los nuevos datos de la tabla, puede hacer una copia de seguridad del último mes o medio mes de acuerdo con el período de tiempo
soltar tabla oldtb; -> soltar tabla antigua para liberar espacio de tabla
cambiar tablas newtb cambiar nombre a oldtb; -> cambiar nombre nueva tabla "newdtb"
 
 
Idea 3: tabla de optimización directa: optimizar el nombre de la tabla de la tabla;
 
seleccione table_name, data_free, engine from information_schema.tables donde table_schema = 'mydb';
-> Verifique el valor libre de datos de cada tabla en la biblioteca, la unidad es byte, libre de datos / 1024/1024/1024 es el espacio de recuperación teórico G después de la liberación.
muestra el estado de la tabla como 'oldtb'; -> Tamaño libre de datos de una sola tabla
mysql> TABLA DE OPTIMIZACIÓN hellodb.students;
-> Mostrar no es compatible, de hecho, se han llevado a cabo reconstrucciones y análisis, y se ha recuperado el espacio
 
 
 
 
Copia de seguridad de la base de datos
1. Comando de respaldo
Formato: cmd bajo mysqldump -h nombre de host -P puerto -u nombre de usuario -p contraseña - nombre de base de datos de base de datos> d: \ filename.sql
Por ejemplo: mysqldump -h 192.168.1.100 -p 3306 -uroot -ppassword --database cmdb> /data/backup/cmdb.sql;
 
2. Recuperar datos
usar base de datos
fuente d: \ mysql.sql
 

Supongo que te gusta

Origin www.cnblogs.com/YinXuanZhiZhi9/p/12719188.html
Recomendado
Clasificación