Copia de seguridad y recuperación de la base de datos MySQL (4) - explicación detallada de los parámetros de mysqldump

Copia de seguridad y recuperación de la base de datos MySQL (4) - explicación detallada de los parámetros de mysqldump

mysqldump es un comando de respaldo lógico que viene con MySQL. El archivo de respaldo contiene un conjunto de declaraciones SQL, que se pueden ejecutar para generar definiciones de objetos de base de datos y datos de tabla antes de la copia de respaldo. El comando mysqldump también puede generar resultados en CSV, otro texto delimitado o formato XML.

El formato del comando mysqldump es el siguiente:

mysqldump [options] [db_name [tbl_name ...]]

Los parámetros de [opciones] más utilizados son los siguientes:

1. Especifique el nombre de usuario de inicio de sesión

-uuser_name
--user=user_name

Descripción: especifique el nombre de usuario que utiliza MySQL al conectarse al servidor.

2. Especifique el host de inicio de sesión

--host = host_name
-h host_name

Nota: Este parámetro se puede omitir, el host predeterminado es localhost.

3. Especifique la contraseña de inicio de sesión

-pyour_pass
--password[=your_pass]

Descripción: la contraseña utilizada al conectarse al servidor.

4. Especifique el número de puerto utilizado para conectarse al host.

-P port_num
--port=port_num

Descripción: especifique el número de puerto TCP / IP utilizado al conectarse al host (utilizado para conectarse a un host que no sea localhost).

5. Realice una copia de seguridad de todas las bases de datos

--all-databases
-A

Nota: Lo mismo que usar la opción -databases y nombrar todas las bases de datos.

6. Realice una copia de seguridad de la base de datos especificada

--databases db_name1 db_name2 ...
-B db_name1 db_name2 ...

Explicación:
(1) Si se omite esta opción, mysqldump trata el parámetro de primer nombre como el nombre de la base de datos y los nombres subsiguientes como el nombre de la tabla, e incluye las declaraciones CREATE DATABASE y USE.
(2) Utilice esta opción para tratar todos los parámetros de nombre como nombres de base de datos, y las declaraciones CREATE DATABASE y USE se incluyen en la salida antes de cada nueva base de datos.
(3) Esta opción se puede usar para respaldar las bases de datos INFORMATION_SCHEMA y performace_schema, estas dos bases de datos no serán respaldadas incluso si se usa la opción –todas las bases de datos.

7, solo estructura de tabla de respaldo

-d
--no-data   

Nota: Solo se exporta la estructura de la tabla, no los datos de la tabla.

8. Realice una copia de seguridad solo de los datos de la tabla

-t
--no-create-info

9. Actualice el archivo de registro antes de exportar (genere un nuevo archivo binlog)

-F
--flush-logs   

Nota: Después de exportar los datos, se genera un nuevo archivo binlog para facilitar la recuperación de datos.

10. Exportar registros que cumplan las condiciones especificadas

-w
--where='where-condition'   

Descripción:
(1) Exportar registros que cumplan las condiciones de consulta especificadas.
(2) Si la condición contiene comillas simples, el parámetro puede usar comillas dobles, como:

[root@Mysql11 tmp]# mysqldump -uroot -p123456 hist stu --where="name='jack'" > /tmp/stu_name.sql;
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@Mysql11 tmp]# cat /tmp/stu_name.sql 
..........
--
-- Table structure for table `stu`
--

DROP TABLE IF EXISTS `stu`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `stu` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(20) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `address` varchar(20) DEFAULT NULL,
  `phone` char(11) DEFAULT NULL,
  `dept_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `stu`
--
-- WHERE:  name='jack'

LOCK TABLES `stu` WRITE;
/*!40000 ALTER TABLE `stu` DISABLE KEYS */;
INSERT INTO `stu` VALUES (3,'jack',20,'Zhengzhou','13675871454',1);
/*!40000 ALTER TABLE `stu` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

..............

-- Dump completed on 2020-07-02 12:16:55

11. El formato del archivo de exportación es un archivo de texto.

-T
--tab=path-to-some-directory   

Descripción: Para cada tabla dada, cree un archivo table_name.sql (que contiene el comando SQL CREATE) y un archivo table_name.txt (que contiene datos).

12. Especifique el formato del archivo de texto exportado.

--fields-enclosed-by=...   
--fields-optionally-enclosed-by=...   
--fields-escaped-by=...   
--fields-terminated-by=...

Nota: Estas opciones se utilizan con la opción -T y tienen el mismo significado que la cláusula LOAD DATA INFILE correspondiente.

P.ej:

[root@Mysql11 tmp]# mysqldump -uroot -p123456 hist stu --tab='/tmp' --fields-terminated-by=',' 
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@Mysql11 tmp]# ls /tmp
stu.sql  stu.txt
[root@Mysql11 tmp]# cat /tmp/stu.txt
1,zhangsan,20,Xinxiang,15578941258,1
2,tom,20,Xinxiang,13778942222,1
3,jack,20,Zhengzhou,13675871454,1
4,john,21,Zhengzhou,13937681111,2
5,mark,22,Aanyang,13055882233,2

13. Garantizar la coherencia de los datos exportados

--single-transaction

Descripción:
(1) Este parámetro es adecuado para la copia de seguridad de la base de datos del motor innoDB;
(2) Cuando se realiza una copia de seguridad de la tabla innoDB, la opción –transacción única suele estar habilitada para garantizar la coherencia de la copia de seguridad. De hecho, su principio de funcionamiento es configurar esta sesión El nivel de aislamiento es: lectura repetible para garantizar que cuando se realice una copia de seguridad de esta sesión, no verá los datos enviados por otras sesiones.

14. Especifique el juego de caracteres del archivo exportado.

--default-character-set=name

P.ej:

[root@Mysql11 tmp]# mysqldump -uroot -p123456 --databases hist --default-character-set=utf8 > /tmp/hist.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.

15. Agregue la ubicación y el nombre del archivo del binlog del servidor actual al archivo de salida.

--master-data=[1,2]

Descripción: Este parámetro registra el binlog del servidor actual, lo que equivale a ejecutar show master status, el valor del status (archivo, posición).

P.ej:

[root@Mysql11 tmp]# mysqldump -uroot -p123456 --master-data=1 hist > /tmp/hist.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.

[root@Mysql11 tmp]# cat /tmp/hist.sql
.............

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=154;
--
-- Table structure for table `course`
--
......................

16. Agregue la ubicación del binlog y el nombre del archivo de la biblioteca principal al archivo de datos exportado

--dump-slave=[1,2]

Descripción:
(1) Si el servidor actual es un servidor esclavo, use este comando para ejecutar detener esclavo para obtener el archivo binlog maestro y la ubicación, y después de que se complete la copia de seguridad, automáticamente ejecutará iniciar esclavo para iniciar el servidor esclavo. Utilice –dump-slave para obtener solo la posición del binglog maestro donde se ejecutan los datos actuales del servidor esclavo, a saber: relay_mater_log_file, exec_master_log_pos, no la posición de ejecución binlog actual del servidor maestro, que depende del retraso de datos del maestro y esclavo.
(2) Este parámetro se ejecuta en el servidor esclavo, lo que equivale a ejecutar show slave status.
(3) Cuando se establece en 1, se enviará al archivo de datos con el comando CHANGE MASTER, y cuando se establece en 2, se agregará un comentario antes del cambio.

Supongo que te gusta

Origin blog.csdn.net/weixin_44377973/article/details/107081758
Recomendado
Clasificación