zoukankan      html  css  js  c++  java
  • MySQL备份与恢复(3)mysqldump备份多个库

    一、mysqldump的工作原理

        利用mysqldump命令备份数据的过程,实际上就是把数据从mysql库以逻辑的sql语句的形式直接输出或生成备份的文件的过程

        利用这个备份文件恢复的时候的原理?就是把备份的sql命令再执行一遍。

    二、备份多个库

    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | oldboy             |
    | oldboy_gbk         |
    | oldboy_utf8        |
    | performance_schema |
    +--------------------+
    6 rows in set (0.00 sec)
    
    mysql> quit
    Bye
    [root@localhost ~]# mysqldump -uroot -pdubin -B oldboy oldboy_gbk|gzip >/opt/all_bak.sql.gz
    [root@localhost ~]# ls -l /opt/all_bak.sql.gz 
    -rw-r--r--. 1 root root 1374 9月  21 11:50 /opt/all_bak.sql.gz
    [root@localhost ~]# 

     三、如何做分库备份?

        分库备份实际上就是执行一个备份语句备份一个库,如果数据库里有多个库,就执行多条相同的备份单个库的备份语句就可以备份多个库了,注意每个库都可以用对应备份的库作为库名,结尾加 .sql。备份多个库的命令如下:

    mysqldump -uroot -pdubin -B oldboy ……
    mysqldump -uroot -pdubin -B oldboy_gbk ……

        分库备份过程

    [root@localhost ~]# mysql -uroot -pdubin -e "show databases;"
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | oldboy             |
    | oldboy_gbk         |
    | oldboy_utf8        |
    | performance_schema |
    +--------------------+
    [root@localhost ~]# mysql -uroot -pdubin -e "show databases;"|grep -Evi "database|infor|perfor"
    mysql
    oldboy
    oldboy_gbk
    oldboy_utf8
    [root@localhost ~]# mysql -uroot -pdubin -e "show databases;"|grep -Evi "database|infor|perfor"|sed 's#^#mysqldump -uroot -pdubin -B #g'
    mysqldump -uroot -pdubin -B mysql
    mysqldump -uroot -pdubin -B oldboy
    mysqldump -uroot -pdubin -B oldboy_gbk
    mysqldump -uroot -pdubin -B oldboy_utf8
    [root@localhost ~]# mysql -uroot -pdubin -e "show databases;"|grep -Evi "database|infor|perfor"|sed 's#^([a-z].*$)#mysqldump -uroot -pdubin -B 1 >/opt/1.sql#g'
    sed:-e 表达式 #1,字符 59:“s”命令的RHS非法引用1
    [root@localhost ~]# mysql -uroot -pdubin -e "show databases;"|grep -Evi "database|infor|perfor"|sed -r 's#^([a-z].*$)#mysqldump -uroot -pdubin -B 1 >/opt/1.sql#g'
    mysqldump -uroot -pdubin -B mysql >/opt/mysql.sql
    mysqldump -uroot -pdubin -B oldboy >/opt/oldboy.sql
    mysqldump -uroot -pdubin -B oldboy_gbk >/opt/oldboy_gbk.sql
    mysqldump -uroot -pdubin -B oldboy_utf8 >/opt/oldboy_utf8.sql
    [root@localhost ~]# mysql -uroot -pdubin -e "show databases;"|grep -Evi "database|infor|perfor"|sed -r 's#^([a-z].*$)#mysqldump -uroot -pdubin -B 1|gzip >/opt/1.sql.gz#g'
    mysqldump -uroot -pdubin -B mysql|gzip >/opt/mysql.sql.gz
    mysqldump -uroot -pdubin -B oldboy|gzip >/opt/oldboy.sql.gz
    mysqldump -uroot -pdubin -B oldboy_gbk|gzip >/opt/oldboy_gbk.sql.gz
    mysqldump -uroot -pdubin -B oldboy_utf8|gzip >/opt/oldboy_utf8.sql.gz
    [root@localhost ~]# mysql -uroot -pdubin -e "show databases;"|grep -Evi "database|infor|perfor"|sed -r 's#^([a-z].*$)#mysqldump -uroot -pdubin -B 1|gzip >/opt/1.sql.gz#g'|bash
    -- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.
    [root@localhost ~]# ll /opt/
    总用量 196
    -rw-r--r--. 1 root root   1374 9月  21 11:50 all_bak.sql.gz
    -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 144535 9月  21 12:01 mysql.sql.gz
    -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
    -rw-r--r--. 1 root root    512 9月  21 12:01 oldboy_gbk.sql.gz
    -rw-r--r--. 1 root root   1354 9月  21 12:01 oldboy.sql.gz
    -rw-r--r--. 1 root root    512 9月  21 12:01 oldboy_utf8.sql.gz
    [root@localhost ~]# mysql -uroot -pdubin -e "show databases;"|grep -Evi "database|infor|perfor"|sed -r 's#^([a-z].*$)#mysqldump -uroot -pdubin --event -B 1|gzip >/opt/1.sql.gz#g'|bash
    [root@localhost ~]# mkdir /opt/bak
    [root@localhost ~]# mysql -uroot -pdubin -e "show databases;"|grep -Evi "database|infor|perfor"|sed -r 's#^([a-z].*$)#mysqldump -uroot -pdubin --event -B 1|gzip >/opt/bak/1.sql.gz#g'|bash
    [root@localhost ~]# ll /opt/bak
    总用量 156
    -rw-r--r--. 1 root root 144570 9月  21 12:03 mysql.sql.gz
    -rw-r--r--. 1 root root    534 9月  21 12:03 oldboy_gbk.sql.gz
    -rw-r--r--. 1 root root   1371 9月  21 12:03 oldboy.sql.gz
    -rw-r--r--. 1 root root    533 9月  21 12:03 oldboy_utf8.sql.gz
    [root@localhost ~]# 

    mysql -uroot -pdubin -e "show databases;"|grep -Evi "database|infor|perfor"|sed -r 's#^([a-z].*$)#mysqldump -uroot -pdubin --event -B 1|gzip >/opt/bak/1.sql.gz#g'|bash

     

         分库备份的意义何在?

            有时一个企业的数据库里会有多个库,例如(www,bbs,blog),但是出问题时候的很可能是一个库,如果在备份时把所有的库都备份成一个数据文件的话,恢复某一个库的数据时就比较麻烦了。

         shell脚本实现分表分库备份的脚本

    [root@localhost ~]# vi fenku.sh
    
    for dbname in `mysql -uroot -pdubin -e "show databases;"|grep -Evi "database|infor|perfor"`
    do
            mysqldump -uroot -pdubin --event -B $dbname|gzip >/opt/bak/${dbname}.sql.gz
    done
    root@localhost ~]# rm -f /opt/bak/*
    [root@localhost ~]# sh fenku.sh
    [root@localhost ~]# ll /opt/bak
    总用量 156
    -rw-r--r--. 1 root root 144569 9月  21 12:12 mysql.sql.gz
    -rw-r--r--. 1 root root    534 9月  21 12:12 oldboy_gbk.sql.gz
    -rw-r--r--. 1 root root   1370 9月  21 12:12 oldboy.sql.gz
    -rw-r--r--. 1 root root    533 9月  21 12:12 oldboy_utf8.sql.gz
    [root@localhost ~]# 
  • 相关阅读:
    c# tabcontrol事件以及上下文菜单
    RDBMS架构的开源DW/DSS引擎列表
    spider RPC管理接口
    spider RPC高级特性
    linux TCP: time wait bucket table overflow
    设计一个较好的框架的难点之一--API兼容性的设计
    windows 7/10下安装oracle 10g
    mybatis同时启用mapperscanner和传统DAO
    windows根据端口号找进程
    The POM for XXX:jar:${com.ld.base.service.version} is missing, no dependency information available
  • 原文地址:https://www.cnblogs.com/cnxy168/p/11643333.html
Copyright © 2011-2022 走看看