数据库的备份和恢复

四、数据库的备份和恢复

4.1备份的目的:

备灾。(防止数据丢失)
在生产环境中,数据的安全性非常重要。
造成数据丢失的原因:
1、程序出错
2、人为的问题
3、磁盘的故障

备份的分类:
物理备份:

对磁盘或者对文件直接进行备份。

**冷备份:**脱机备份,先把指定的程序关闭然后对资料进行备份。(先关闭服务)
**热备份:**联机备份,不用关闭程序就可以对资料进行备份。

逻辑备份:

根据数据库文件当中保存的sql语句,表结构,等等以特定的格式和命令对文件的内容进行还原。(热备份的一种
只能对表,库没了没有办法恢复。

物理备份

1、全量备份:

把数据库的内容整个一次性的做备份。

mysqldmp (自带)

mysgl自带的备份命令。可以备份库,也可以备份库里面的表

热备份(备份一个库)
mysqldump -u root -p --databases xy102 > /opt/xy102.sql
mysql -u root -p  < /opt/xy102.sql   (恢复备份)

热备份(备份多个库)
mysqldump -u root -p --databases xy102 xy103 > /opt/xy_all.sql
mysql -u root -p  < /opt/xy_all.sql   (恢复备份)

数据库全部备份
mysqldump -u root -p --all-databases > /opt/all.sql
scp root@192.168.11.144:/opt/all.sql /opt/  (11.144的远程复制到另外一台数据库11.145上)
mysql -u root -p < /opt/all.sql 

备份一个表
[root@myslq2 opt]# mysqldump -u root -p xy102 t1 > /opt/xy102_ti.sql
[root@myslq2 opt]# mysql -u root -p  xy102 < /opt/xy102_ti.sql

备份多个表
[root@myslq2 opt]# mysqldump -u root -p xy102  t1    student  > /opt/xy102_ti.sql
                                         库名  表名    表名  
[root@myslq2 opt]# mysql -u root -p  xy102 < /opt/xy102_ti.sql
                      恢复备份
2、增量备份
[root@myslq2 opt]# vim /etc/my.cnf
general_log=ON  #查询日志默认
general_log_file=/usr/local/mysql/data/mysql_general.log
#查询日志的保存位置
log-error=/usr/local/mysql/data/mysql_error.log
#错误日志的保存位置,错误日志默认开启
slow_query_log=ON
#开启慢查询日志
slow_query_log_file=/usr/local/mysql/data/mysql_slow_query.log
#设置慢查询日志的位置
long_query_time=5
#默认的慢查询时间是10秒,超过5秒就记录
log-bin=mysql-bin  # 开启二进制日志功能
binlog_format=MIXED  #记录二进制日志的文件格式
STATEMENT  基于sql语句:只记录用户操作的sql语句,高并发的情况下,记录操作的sql语句的顺序可能会出错,导致恢复数据时,就会出现丢失或者误差,效率高
ROW 基于行:记录每一行的数据,准确,高并发也不会出错,但是恢复的效率低。
MIXED 混合模式:正常情况下使用,STATEMENT,高并发使用ROW。智能判断。

五、Mysql的日志管理

5.1开启二进制日志的功能:

binlog 逻辑语句,会生成一个文件,这个里面包含了sql语句,要使用特定的方式和语句

mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000001

mysqlbinlog --no-defaults /usr/local/mysql/data/mysql-bin.000001 | mysql -u root -p   恢复

[root@myslq2 data]# mysqladmin -u root -p flush-logs       #断点	
5.2根据指定区间恢复数据
mysqlbinlog --no-defaults --start-position ='8224' --stop-position='9011' mysql-bin.00001 | mysql -u root -p
2.3根据指定时间恢复数据
[root@myslq2 data]# mysqlbinlog --no-defaults --start-datetime='时间点' --stop-datetime='结束时间'  mysql-bin.000001 | mysql - u root -p    
mysqlbinlog --no-defaults --start-datetime='2024-7-19 13:48:16' --stop-datetime='2024-7-19 13:52:25' mysql-bin00001 | mysql -u root -p

相关推荐

  1. 数据库备份恢复

    2024-07-20 05:16:07       18 阅读
  2. 数据库(MySQL备份恢复

    2024-07-20 05:16:07       43 阅读
  3. mysql数据库备份恢复

    2024-07-20 05:16:07       49 阅读
  4. PostgreSQL 数据库备份恢复

    2024-07-20 05:16:07       25 阅读
  5. 数据备份恢复

    2024-07-20 05:16:07       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-20 05:16:07       48 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-20 05:16:07       52 阅读
  3. 在Django里面运行非项目文件

    2024-07-20 05:16:07       41 阅读
  4. Python语言-面向对象

    2024-07-20 05:16:07       52 阅读

热门阅读

  1. macOS 环境Qt Creator 快捷键

    2024-07-20 05:16:07       13 阅读
  2. Vue3实现word预览

    2024-07-20 05:16:07       18 阅读
  3. cephrgw元数据和数据布局

    2024-07-20 05:16:07       15 阅读
  4. ArcGIS Pro SDK (九)几何 11 几何包

    2024-07-20 05:16:07       13 阅读
  5. vue3前端开发-小兔鲜项目-一级页面banner图渲染

    2024-07-20 05:16:07       16 阅读
  6. day04.03.python中的for循环

    2024-07-20 05:16:07       15 阅读
  7. Apple Vision Pro 开发资源大全

    2024-07-20 05:16:07       12 阅读
  8. mysql 浮点数类型

    2024-07-20 05:16:07       14 阅读
  9. stack

    2024-07-20 05:16:07       15 阅读
  10. DGPU共享内存的问题

    2024-07-20 05:16:07       15 阅读
  11. 阿里云服务器 篇三:提交搜索引擎收录

    2024-07-20 05:16:07       17 阅读