备份的重要性:

  • 在生产环境中我们数据库可能会遭遇各种各样的不测从而导致数据丢失, 大概分为以下几种.
  • 硬件故障
  • 软件故障
  • 自然灾害
  • ××××××
  • 误操作 (占比最大)
    备份类型:
    物理和逻辑角度:
    物理备份---指对数据库操作系统的物理文件的备份
    逻辑备份---指对数据库逻辑组件的备份
    备份策略角度:
    完全备份---备份整个数据集
    差异备份---上次完全备份之后修改过的文件
    增量备份---备份自上一次备份以来(增量或完全)以来变化的数据

物理备份演练
1、安装xz压缩格式工具

yum install -y xz

2、备份(即对数据库文件夹 /usr/local/mysql/data进行打包)

tar Jcvf /opt/mysql-$(date +%F).tar.xz /usr/local/mysql/data/

mysql完全备份与恢复
3、进行删除、恢复操作(将备份还原到数据库文件夹中即可)

tar Jxvf /opt/mysql-2018-08-30.tar.xz /usr/local/mysql/data/

逻辑备份演练
准备工作如下:
(一)首先补充一个数据库的免登录操作,之后的演示都将以此方式进行展示;

mysql -uroot -pabc123 -e 'show databases;' #单条信息输入

mysql完全备份与恢复_第1张图片

mysql -uroot -pabc123 -e 'show databases;use school;show tables;' #多条信息输入,注意顺序

mysql完全备份与恢复_第2张图片

(二)以下是做备份、还原前所创建的school数据库,接下来的操作都针对school数据库展开
mysql完全备份与恢复_第3张图片
一、对数据库进行完全备份
方法1:只会创建、记录其中的表,恢复时需提前创建数据

备份: mysqldump -uroot -pabc123 school > /opt/school.sql

mysql完全备份与恢复_第4张图片

恢复:mysql -uroot -pabc123 school < /opt/school.sql

mysql完全备份与恢复_第5张图片
方法2:加入--databases 恢复时无需建库

备份: mysqldump -uroot -pabc123 --databases school > /opt/school.sql

mysql完全备份与恢复

恢复: mysql -uroot -pabc123 < /opt/school1.sql

mysql完全备份与恢复_第6张图片
方法3:source语句 ---必须在mysql环境中执行

备份:mysqldump -uroot -pabc123 --databases school > /opt/school.sql

mysql完全备份与恢复

恢复:mysql>source /opt/school.sql

mysql完全备份与恢复_第7张图片
二、对数据库中的表进行完全备份

备份---mysqldump -uroot -pabc123 school info > /opt/info.sql
恢复---mysql -uroot -pabc123 school < /opt/sinfo.sql

mysql完全备份与恢复_第8张图片
三、对表结构进行完全备份

mysqldump -uroot -pabc123 -d school info > /opt/school.sql #增加-d参数

四、对所有库进行完全备份

mysqldump -uroot -pabc123 --all-databases > /opt/databases.sql