zoukankan      html  css  js  c++  java
  • 数据库单,多,全库、冷热备份思路及备份与还原(mysqldump)

     

    热备份:服务开启状态下进行备份,

    冷备份:服务关闭状态进行备份,

    冷备份

    数据库原有内容如下:

    MariaDB [(none)]> show databases;
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | 学员名单 |
    | auth |
    | mydb |
    | mysql |
    | performance_schema |
    | shuifei |
    | test |
    | yg |
    +--------------------+
    9 rows in set (0.00 sec)

    要求备份数据库目录并删除shuifei数据库最后完成还原shuifei

    1:直接打包数据库文件夹

    [root@localhost ~]# systemctl stop mariadb                       #关闭mysql服务进行备份

    [root@localhost ~]# mkdir backup 
    tar: 从成员名中删除开头的“/”

    [root@localhost ~]# tar Jcf backup/mysql_all-$(date +%F).tar.xz /var/lib/mysql/
    tar: /var/lib/mysql/mysql.sock: 忽略套接字(socket)
    [root@localhost ~]# ls backup/
    mysql_all-2019-10-14.tar.xz

    2:删除shuifei数据并开启mariadb服务

    [root@localhost ~]# rm -rf /var/lib/mysql/shuifei/

    [root@localhost ~]# systemctl start mariadb

    MariaDB [(none)]> show databases;                     #查看所有数据库此时shuifei数据库已经消失
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | 学员名单 |
    | auth |
    | mydb |
    | mysql |
    | performance_schema |
    | test |
    | yg |
    +--------------------+
    8 rows in set (0.00 sec)

    2:进行备份shuifei到数据库目录下

    [root@localhost ~]# mkdir restore
    [root@localhost ~]# tar xf backup/mysql_all-2019-10-14.tar.xz -C restore/

    [root@localhost mysql]# mv shuifei/ /var/lib/mysql/

    MariaDB [(none)]> show databases;
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | shuifei |
    | yg |
    +--------------------+
    9 rows in set (0.00 sec)

     热备份

    第二种:使用专用备份工具mysqldump

    对单个库进行完全备份:

    格式:mysqldump -u 用户名 -p密码 --databases 库名 > /备份路径/备份文件名

    [root@localhost ~]# mysqldump -uroot -p123123 --databases shuifei > backup/shuifei-$(date +%Y%m%d).sql

    [root@localhost backup]# ls
    mysql_all-2019-10-14.tar.xz    shuifei-20191014.sql

    对多个库进行完全备份:

    格式:mysqldump -u 用户名 -p密码 --databases 库名1 库名2 > /备份路径/备份文件名

    [root@localhost ~]# mysqldump -uroot -p123123 --databases shuifei mydb > backup/shuifei+mydb-$(date +%Y%m%d).sql
    [root@localhost ~]# cd backup/
    [root@localhost backup]# ls
    mysql_all-2019-10-14.tar.xz      shuifei-20191014.sql       shuifei+mydb-20191014.sql
    [root@localhost backup]#

    第三种:对所有库进行完全备份:

    格式:mysqldump -u用户名 -p密码 --event --opt --all-databases > /备份路径/备份文件名

    [root@localhost backup]# mysqldump -uroot -p123123 --event --opt --all-databases > backup/mysql_all.$(date +%Y%m%d).sql

    [root@localhost backup]# ls
    mysql_all.20191014.sql   mysql_all-2019-10-14.tar.xz    shuifei-20191014.sql     shuifei+mydb-20191014.sql

    第四种:对表进行备份:

    格式:mysqldump -u用户名 -p密码  -d 数据库名 表名> /备份路径/备份文件名

    [root@localhost ~]# mysqldump -uroot -p123123 -d shuifei shuifei_info > backup/desc-$(date +%Y%m%d).sql
    [root@localhost ~]# cd backup/
    [root@localhost backup]# ls
    desc-20191014.sql            mysql_all-2019-10-14.tar.xz     shuifei+mydb-20191014.sql
    mysql_all.20191014.sql     shuifei-20191014.sql

    使用mysqldump备份后,恢复数据库:

    方法1:source命令

    登入到MYSQL数据库后,执行source备份脚本路径

    删除yg和shuifei两个数据库

    MariaDB [yg]> drop database yg;

    MariaDB [yg]> drop database shuifei;

    恢复yg和shuifei两个数据库:

     MariaDB [yg]> source backup/shuifei-20191014.sql 

    MariaDB [mysql]> source  backup/yg-20191014.sql 

    第二种方法:mysql命令:

    格式:mysql -u 用户名 -p密码 < 库备份脚本路径

    MariaDB [shuifei]> drop database yg;
    Query OK, 1 row affected (0.00 sec)

    [root@localhost ~]# mysql -uroot -p123123 < backup/yg-20191014.sql 

    [root@localhost ~]# mysql -uroot -p123123 -e 'show databases'         #-e表示可以在外部执行mysql语句
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | mysql |
    | shuifei |
    | yg |
    +--------------------+

  • 相关阅读:
    130517Dev GridControl建立多行复杂表头(Banded View)时,统计列与对应列无法对齐的解决办法
    C&C++标准库
    Linux操作系统下的多线程编程详细解析
    Ubuntu12.04用户以root身份登录
    ubuntu永久修改主机名
    linux信号 linux signal
    淘宝api 登录验证
    淘宝开店 防骗 易赛加款诈骗|冲q币恶意差评
    面试..
    test
  • 原文地址:https://www.cnblogs.com/CMX_Shmily/p/11671926.html
Copyright © 2011-2022 走看看