• MySQL 数据库完全备份案例


    MySQL完全备份案例

    需求描述:

    北京移电通信公司的用户信息数据库为client,用户资费数据表为user_info,表结构如下所示。请为该公司指定合理的备份策略,依据所指定的策略备份数据,模拟数据丢失进行数据恢复。

    创建数据及表,录入数据:

    [root@localhost ~]# mysql -uroot -p123456

    mysql> create database client;

    Query OK, 1 row affected (0.00 sec)

    mysql> use client;

    Database changed

    mysql> show variables like 'character_set_%';//查看字符集是否支持中文

    +--------------------------+----------------------------------+

    | Variable_name            | Value                            |

    +--------------------------+----------------------------------+

    | character_set_client     | utf8                             |

    | character_set_connection | utf8                             |

    | character_set_database   | utf8                             |

    | character_set_filesystem | binary                           |

    | character_set_results    | utf8                             |

    | character_set_server     | utf8                             |

    | character_set_system     | utf8                             |

    | character_sets_dir       | /usr/local/mysql/share/charsets/ |

    +--------------------------+----------------------------------+

    8 rows in set (0.00 sec)

    ///////【1】create database client DEFAULT CHARACTER  SET utf-8;  //在创建库的时候声明库的字符集

    【2】vim /etc/my.conf

    在中间添加 

    default-storage-engine=INNODB

    character-set-server=utf8

    collation-server=utf8_general_ci ////////这个定义是所有的库

    [client]

    default-character-set=utf8   ///////定义某个用户//////////////////////  然后重启mariadb

    mysql> create table user_info(身份证 int(20),姓名 char(20),性别 char(2),用户ID int(110),资费 int(10));

    Query OK, 0 rows affected (0.01 sec)

    desc user_info   //查看描述信息

    mysql> insert into user_info values('000000001','孙空武','','011','100');

    Query OK, 1 row affected (0.01 sec) 

    mysql> insert into user_info values('000000002','蓝凌','','012','98');

    Query OK, 1 row affected (0.01 sec)

    mysql> insert into user_info values('000000003','姜纹','','013','12');

    Query OK, 1 row affected (0.00 sec)

    mysql> insert into user_info values('000000004','关园','','014','38');

    Query OK, 1 row affected (0.01 sec)

    mysql> insert into user_info values('000000004','罗中昆','','015','39');

    Query OK, 1 row affected (0.01 sec)

    mysql> select * from user_info;

    +-----------+-----------+--------+-------------+--------+

    | 身份证    | 姓名      | 性别   | 用户ID    | 资费   |

    +-----------+-----------+--------+-------------+--------+

    |         1 | 孙空武    |      |          11 |    100 |

    |         2 | 蓝凌      |      |          12 |     98 |

    |         3 | 姜纹      |      |          13 |     12 |

    |         4 | 关园      |      |          14 |     38 |

    |         4 | 罗中昆    |      |          15 |     39 |

    +-----------+-----------+--------+-------------+--------+

    5 rows in set (0.00 sec)

    完整备份client.user_info表:

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

    grep -Ev "^$|^/|^-" backup/client.user...sql //查看

    模拟数据丢失恢复数据:

    [root@localhost ~]# mysql -uroot -p123456 -e 'drop table client.user_info;'

    [root@localhost ~]# mysql -uroot -p123456 -e 'use client; show tables;'

    [root@localhost ~]# mysql -uroot -p123456 client < backup/client.user_info-20181214.sql

    [root@localhost ~]# mysql -uroot -p123456 -e 'select * from client.user_info;'

    +-----------+-----------+--------+-------------+--------+

    | 身份证    | 姓名      | 性别   | 用户ID    | 资费   |

    +-----------+-----------+--------+-------------+--------+

    |         1 | 孙空武    |      |          11 |    100 |

    |         2 | 蓝凌      |      |          12 |     98 |

    |         3 | 姜纹      |      |          13 |     12 |

    |         4 | 关园      |      |          14 |     38 |

    |         4 | 罗中昆    |      |          15 |     39 |

    +-----------+-----------+--------+-------------+--------+

    定期备份数据:

    [root@localhost ~]# which mysqldump

    /usr/local/mysql/bin/mysqldump

    [root@localhost ~]# vim /opt/bak_client.sh

    #!/bin/bash

    # 备份client.user_info 脚本

    mysqldump -uroot -p123456 client user_info >backup/client.user_info-$(date +%Y%m%d).sql

    [root@localhost ~]# chmod +x /opt/bak_client.sh

    [root@localhost ~]# crontab -e

    0       0       *       *       *       /opt/bak_client.sh//每天0:00备份

    重启计划任务 systemtcl restart crontab

     

  • 相关阅读:
    第三课 本代码用于学习vue根组件数据的各种绑定
    第七课 键入事件,点击绑定事件,数据判断及删除事件
    第九课 代码封装localstorage
    第八课 没有封装localstorage
    第五课 vue的事件调用自定义方法
    第六课 点击事件调用自定义方法
    new多个文件编程和split单个文件多个窗口编程
    线性表特点和用法总结
    scanf在输入整型数据和字符型数据时的不同
    tasklet源码注释翻译
  • 原文地址:https://www.cnblogs.com/elin989898/p/11961535.html
Copyright © 2020-2023  润新知