mysqldump備份時,--master-data選項的作用是什么?


需求描述

  今天在研究mysql的備份和恢復,使用mysqldump備份數據庫時,用到--master-data選項,

  在此,測試並記錄選項的作用

測試過程

1.不使用--master-data進行數據庫的備份

[mysql@redhat6 ~]$ mysqldump -uroot -p --single-transaction --databases test01 > backup_test01.sql
Enter password: 
[mysql@redhat6 ~]$ ls -l
total 238668
-rw-rw-r--  1 mysql mysql 122191921 Apr  3 18:55 backup_test01.sql #mysqldump生成的sql格式的dump文件 -rw-rw-r--  1 mysql mysql 122192066 Apr  3 18:52 ts01.sql
drwxrwxr-x. 4 mysql mysql      4096 Mar 20 11:17 workspace
[mysql@redhat6 ~]$ 

2.查看dump的sql文件的信息

-- MySQL dump 10.13  Distrib 5.5.57, for linux-glibc2.12 (x86_64)
--
-- Host: localhost    Database: test01
-- ------------------------------------------------------
-- Server version    5.5.57-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Current Database: `test01`
--

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test01` /*!40100 DEFAULT CHARACTER SET latin1 */;

3.使用--master-data參數進行mysqldump的備份

[mysql@redhat6 ~]$ mysqldump -uroot -p --single-transaction --master-data --databases test01 > backup_test01.sql
Enter password: 
[mysql@redhat6 ~]$ ls -l
total 238668
-rw-rw-r--  1 mysql mysql 122192066 Apr  3 18:57 backup_test01.sql
-rw-rw-r--  1 mysql mysql 122192066 Apr  3 18:52 ts01.sql
drwxrwxr-x. 4 mysql mysql      4096 Mar 20 11:17 workspace

4.查看生成的sql備份文件

-- MySQL dump 10.13  Distrib 5.5.57, for linux-glibc2.12 (x86_64)
--
-- Host: localhost    Database: test01
-- ------------------------------------------------------
-- Server version    5.5.57-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Position to start replication or point-in-time recovery from -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000090', MASTER_LOG_POS=107; --
-- Current Database: `test01`
--

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test01` /*!40100 DEFAULT CHARACTER SET latin1 */;

備注:標記為黃色的部分是多出來內容,該內容是二進制日志的信息,即在備份的時候,當前數據庫二進制的信息。

 

小結

  --master-data選項的作用就是將二進制的信息寫入到輸出文件中,在這里是寫入到備份的sql文件中。

 

文檔創建時間:2018年4月3日19:00:45


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM