zoukankan      html  css  js  c++  java
  • MySQL备份与恢复(2)mysqldump多个命令参数

    一、备份单个数据库练习多种参数使用

        mysql数据库自带了一个很好用的备份命令,就是mysqldump,它的基本使用如下:

        语法:mysqldump -u 用户名 -p 数据库名 >备份的文件名

    mysql> select * from test;
    +----+---------+
    | id | name    |
    +----+---------+
    |  1 | oldboy  |
    |  2 | oldgirl |
    |  3 | inca    |
    |  4 | zuma    |
    |  5 | kaka    |
    +----+---------+
    5 rows in set (0.00 sec)
    [root@localhost ~]# mysqldump -uroot -pdubin oldboy >/opt/mysql_bak.sql
    [root@localhost ~]# egrep -v "#|*|--|^$" /opt/mysql_bak.sql 
    DROP TABLE IF EXISTS `SC`;
    CREATE TABLE `SC` (
      `SCid` int(12) NOT NULL AUTO_INCREMENT COMMENT '主键',
      `Cno` int(10) NOT NULL COMMENT '课程号',
      `Sno` int(10) NOT NULL COMMENT '学号',
      `Grade` tinyint(2) NOT NULL COMMENT '学生成绩',
      PRIMARY KEY (`SCid`)
    ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8;
    LOCK TABLES `SC` WRITE;
    INSERT INTO `SC` VALUES (1,1001,1,4),(2,1002,1,3),(3,1003,1,1),(4,1004,1,6),(5,1001,2,3),(6,1002,2,2),(7,1003,2,2),(8,1004,2,8),(9,1001,3,4),(10,1002,3,4),(11,1003,3,2),(12,1004,3,8),(13,1001,4,1),(14,1002,4,1),(15,1003,4,2),(16,1004,4,3),(17,1001,5,5),(18,1002,5,3),(19,1003,5,2),(20,1004,5,9);
    UNLOCK TABLES;
    DROP TABLE IF EXISTS `course`;
    CREATE TABLE `course` (
      `Cno` int(10) NOT NULL COMMENT '课程号',
      `Cname` varchar(64) NOT NULL COMMENT '课程名',
      `Ccredit` tinyint(2) NOT NULL COMMENT '学分',
      PRIMARY KEY (`Cno`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    LOCK TABLES `course` WRITE;
    INSERT INTO `course` VALUES (1001,'Linux中高级运维',3),(1002,'Linux高级架构师',5),(1003,'MySQL高级DBA',4),(1004,'Python运维开发',4),(1005,'Java web 开发',3);
    UNLOCK TABLES;
    DROP TABLE IF EXISTS `student`;
    CREATE TABLE `student` (
      `id` int(4) NOT NULL AUTO_INCREMENT,
      `name` char(20) NOT NULL,
      `age` tinyint(2) NOT NULL DEFAULT '0',
      `dept` varchar(16) DEFAULT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `uni_inde_name` (`name`),
      KEY `index_dept` (`dept`(8)),
      KEY `ind_name_dept` (`name`(8),`dept`(10))
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    LOCK TABLES `student` WRITE;
    UNLOCK TABLES;
    DROP TABLE IF EXISTS `test`;
    CREATE TABLE `test` (
      `id` int(4) NOT NULL AUTO_INCREMENT,
      `name` char(20) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;
    LOCK TABLES `test` WRITE;
    INSERT INTO `test` VALUES (1,'oldboy'),(2,'oldgirl'),(3,'inca'),(4,'zuma'),(5,'kaka');
    UNLOCK TABLES;
    #备份就是以sql语句的形式导出
    [root@localhost ~]# mysql -uroot -pdubin -e "use oldboy;drop table test;"
    [root@localhost ~]# mysql -uroot -pdubin -e "select * from oldboy.test"
    ERROR 1146 (42S02) at line 1: Table 'oldboy.test' doesn't exist
    [root@localhost ~]# mysql -uroot -pdubin oldboy </opt/mysql_bak.sql
    [root@localhost ~]# mysql -uroot -pdubin -e "select * from oldboy.test"
    +----+---------+
    | id | name    |
    +----+---------+
    |  1 | oldboy  |
    |  2 | oldgirl |
    |  3 | inca    |
    |  4 | zuma    |
    |  5 | kaka    |
    +----+---------+
    
    [root@localhost ~]# mysqldump -uroot -pdubin -B oldboy >/opt/mysql_bak_B.sql
    [root@localhost ~]# ll /opt/
    总用量 28
    -rw-r--r--. 1 root root 4651 9月  21 08:43 mysql_bak_B.sql
    -rw-r--r--. 1 root root 4508 9月  21 08:43 mysql_bak.sql
    -rw-r-----. 1 root root  498 9月  20 22:17 mysqlbin_oldboy.000001
    -rw-r--r--. 1 root root  203 9月  20 08:46 oldboy_bak1.sql
    -rw-r--r--. 1 root root 2826 9月  20 08:46 oldboy_bak.sql
    [root@localhost
    ~]# mysqldump -uroot -pdubin -B oldboy >/opt/mysql_bak_B.sql [root@localhost ~]# mysqldump -uroot -pdubin --compact -B oldboy >/opt/mysql_bak_B_compact.sql [root@localhost ~]# ll /opt/ 总用量 32 -rw-r--r--. 1 root root 2371 9月 21 08:45 mysql_bak_B_compact.sql -rw-r--r--. 1 root root 4651 9月 21 08:45 mysql_bak_B.sql -rw-r--r--. 1 root root 4508 9月 21 08:43 mysql_bak.sql -rw-r-----. 1 root root 498 9月 20 22:17 mysqlbin_oldboy.000001 -rw-r--r--. 1 root root 203 9月 20 08:46 oldboy_bak1.sql -rw-r--r--. 1 root root 2826 9月 20 08:46 oldboy_bak.sql
    [root@localhost
    ~]# mysqldump -uroot -pdubin -B oldboy|gzip >/opt/mysql_bak.sql.gz [root@localhost ~]# ll /opt/ 总用量 36 -rw-r--r--. 1 root root 2371 9月 21 08:45 mysql_bak_B_compact.sql -rw-r--r--. 1 root root 4651 9月 21 08:45 mysql_bak_B.sql -rw-r--r--. 1 root root 4508 9月 21 08:43 mysql_bak.sql -rw-r--r--. 1 root root 1355 9月 21 08:47 mysql_bak.sql.gz -rw-r-----. 1 root root 498 9月 20 22:17 mysqlbin_oldboy.000001 -rw-r--r--. 1 root root 203 9月 20 08:46 oldboy_bak1.sql -rw-r--r--. 1 root root 2826 9月 20 08:46 oldboy_bak.sql

    -B 恢复的时候如果没有数据库,不用创建
    --compact 以简单的形式呈现,通常用于debugging

     压缩效率将近三倍。

    通过以上例子可以得出什么结论?

    1、导出数据用 -B 参数

    2、用gzip对备份的数据压缩

  • 相关阅读:
    浅谈ConcurrentHashMap实现原理
    HashMap底层实现原理及扩容机制
    浅谈fail-fast机制
    《从Lucene到Elasticsearch:全文检索实战》学习笔记五
    《从Lucene到Elasticsearch:全文检索实战》学习笔记四
    JVM垃圾回收算法解析
    《从Lucene到Elasticsearch:全文检索实战》学习笔记三
    《从Lucene到Elasticsearch:全文检索实战》学习笔记二
    python print()内置函数
    《从Lucene到Elasticsearch:全文检索实战》学习笔记一
  • 原文地址:https://www.cnblogs.com/cnxy168/p/11643096.html
Copyright © 2011-2022 走看看