zoukankan      html  css  js  c++  java
  • Mysql 官方在线备份和数据恢复

    我们从关键点开始进行;

    话外:这里我们选择ext4文件格式,xfs文件系统lv、快照不可以同时挂载;

       快照备份的优缺点:

              优点:可以进行在线备份,备份速度快;

              缺点:锁表时间不可控,快照空间一定要大于需备份数据大小;

    1.锁定Mysql数据库

    mysql> flush tables with read lock;
    Query OK, 0 rows affected (0.01 sec)

    2.创建lv快照

    [root@logan ~]# lvcreate -L 500M -s -n /dev/vg0/lv_sql /dev/vg0/lv0
      Logical volume "lv_sql" created.

    3.挂载lv快照

    [root@logan ~]# mount /dev/vg0/lv_sql /opt/

    4.到这里我们就可以解锁数据库了

    mysql> unlock tables;
    Query OK, 0 rows affected (0.37 sec)

    5.打包压缩备份好的数据

    [root@logan ~]# tar -cjvf /backup/mysql.tar.bz2 /opt/*
    [root@logan backup]# ls
    all.sql  master.000001  master.index  mysql.tar.bz2

    6.备份好数据后,我们就可以把快照删除了

    [root@logan backup]# lvremove /dev/vg0/lv_sql 
    Do you really want to remove active logical volume vg0/lv_sql? [y/n]: y
      Logical volume "lv_sql" successfully removed

    到此为止我们的lv快照备份数据就完成了

    ============================================================================================================================================================

    现在我们开始模拟数据丢失

    [root@logan mysql]# cd data/
    [root@logan data]# ls
    auto.cnf        ibdata1      ibtmp1               mysql               upup
    file            ib_logfile0  logan.liunx.com.err  performance_schema
    ib_buffer_pool  ib_logfile1  logan.liunx.com.pid  sys
    [root@logan data]# rm -rf ./*

    1.进行恢复

    停掉Mysql服务

    [root@logan data]# killall mysqld

    我们需要对压缩包进行解包

    [root@logan backup]# tar -xvf mysql.tar.bz2 -C /tmp/
    [root@logan opt]# cp -r ./* /usr/local/mysql/data/

    2.我们cp过来的文件需要更改属主、属组

    [root@logan mysql]# chown -R mysql.mysql data/
    [root@logan mysql]# ll data/
    总用量 110640
    -rw-r----- 1 mysql mysql       56 7月   4 22:49 auto.cnf
    drwxr-x--- 2 mysql mysql     4096 7月   4 22:49 file
    -rw-r----- 1 mysql mysql      433 7月   4 22:51 ib_buffer_pool
    -rw-r----- 1 mysql mysql 12582912 7月   4 22:49 ibdata1
    -rw-r----- 1 mysql mysql 50331648 7月   4 22:49 ib_logfile0
    -rw-r----- 1 mysql mysql 50331648 7月   4 22:49 ib_logfile1
    -rw-r----- 1 mysql mysql    11042 7月   4 22:49 logan.liunx.com.err
    drwxr-x--- 2 mysql mysql     4096 7月   4 22:49 mysql
    drwxr-x--- 2 mysql mysql     4096 7月   4 22:49 performance_schema
    drwxr-x--- 2 mysql mysql    12288 7月   4 22:49 sys
    drwxr-x--- 2 mysql mysql     4096 7月   4 22:49 upup

    3.重启Mysql服务

    [root@logan mysql]# systemctl restart mysqldd

    4.登录数据库查看数据

    [root@logan mysql]# systemctl restart mysqldd
    [root@logan mysql]# mysql -uroot -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 2
    Server version: 5.7.25-log Source distribution
    
    Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> 
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | file               |
    | mysql              |
    | performance_schema |
    | sys                |
    | upup               |
    +--------------------+
    6 rows in set (0.00 sec)
    
    mysql> 
    mysql> use upup;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    mysql> show tables;
    +----------------+
    | Tables_in_upup |
    +----------------+
    | home           |
    | t1             |
    +----------------+
    2 rows in set (0.00 sec)
    
    mysql> select * from t1;
    +------+-------+------+
    | id   | name  | home |
    +------+-------+------+
    |    1 | robin |  100 |
    |    2 | sdaa  |  200 |
    |    3 | dfdaa |  100 |
    +------+-------+------+
    3 rows in set (0.00 sec)
    
    mysql> 

    数据恢复完成

  • 相关阅读:
    初认识AngularJS
    (imcomplete) UVa 10127 Ones
    UVa 10061 How many zero's and how many digits?
    UVa 11728 Alternate Task
    UVa 11490 Just Another Problem
    UVa 10673 Play with Floor and Ceil
    JSON对象和字符串的收发(JS客户端用typeof()进行判断非常重要)
    HTML.ActionLink 和 Url.Action 的区别
    EASYUI TREE得到当前节点数据的GETDATA方法
    jqueery easyui tree把已选中的节点数据拼成json或者数组(非常重要)
  • 原文地址:https://www.cnblogs.com/loganSxb/p/11135468.html
Copyright © 2011-2022 走看看