MySQL数据库备份

目录

1,概述

2,数据备份的重要性

3,造成数据丢失的原因

4,备份类型

   4.1 物理与逻辑角度

4.2数据库备份策略角度

5,常见的备份方法

   5.1 物理备份

 5.2 使用专用备份工具

5.3通过启用二进制日志增量备份

5.4第三方工具备份

5.5注意事项

6,打包数据库文件备份

    6.1位置

    6.2备份

    6.3还原

7,备份工具备份

   7.2 还原

8,增量备份

9.增量恢复

    9.1应用场景

 9.2 方法


1,概述


    数据库备份是指将数据库中的数据、表格、视图、存储过程、触发器等信息备份到另一个地方,以便在数据库丢失或损坏时进行恢复。数据库备份是数据库管理中必不可少的一项工作,通过备份可以保护数据库中的数据和业务

2,数据备份的重要性


    备份的主要目的是灾难恢复,备份还可以测试应用,回滚数据修改,查询历史数据,审计等。

3,造成数据丢失的原因


    程序错误
    人为错误
    运算失败
    磁盘故障
    灾难(如火灾、地震)和盗窃

4,备份类型


   4.1 物理与逻辑角度


        4.1.1物理备份            对数据库操作系统的物理文件(如数据文件、日志文件等)的备份。
            冷备份                是在关闭数据库的时候进行的
            热备份                数据库处于运行状态,这种备份方法依赖于数据库的日志文件

       4.1.2 逻辑备份

            对数据库逻辑组件(如表等数据库对象)的备份,表时为逻辑数据库结构(create database、 create table等语句)和内容(insert语句或分割文本文件)的信息
   

4.2数据库备份策略角度


        4.2.1完整备份
            完整备份指的是备份整个数据库的所有信息,包括数据库文件中所有的数据、表、视图、存储过程、触发器等。一般来说,完整备份是备份最全面、可靠的方式,但备份文件体积较大,备份时间也相对较长
        4.2.2增量备份
            增量备份指的是在完整备份的基础上,每隔一定时间备份新增的数据或修改的数据。这种备份方式可以节省备份时间和备份文件的空间,但需要配合特定软件或命令进行

5,常见的备份方法


   5.1 物理备份


        物理冷备份时需要在数据库处于关闭状态下,能够较好的保证数据库的完整性。物理冷备份以用于非核心业务,这类业务都允许中断,物理冷备份的特点就是速度快,恢复时也是最为简单的,通过直接打包数据库文件夹(/usr/local/mysql/data)来实现备份。
 

 5.2 使用专用备份工具


        mysqldump
        mysqlhotcopy
   

5.3通过启用二进制日志增量备份


        MySQL支持增量备份,进行增量备份时必须启用二进制日志。二进制日志文件为用户提供复制。对执行备份点后进行的数据库更改所需的信息进行备份。如果进行增量备份(包含上次完全备份或增量备份以来发生的数据修改),需要刷新二进制日志。
   

5.4第三方工具备份


        Percona XtraBackup是一个免费的MySQL热备份软件,支持在线备份innodb和XtraDB,也可以支持MySQL表备份,

5.5注意事项


        定期备份,指定备份计划,严格遵守
        除了完全备份之外,开启binlog日志功能很重要
        使用统一的、容易理解的备份名称,推荐使用库名或者表名加上时间的命名规则

6,打包数据库文件备份


    6.1位置


        源码包的位置/usr/local/mysql/data/
        rpm包的位置/var/lib/mysql

    6.2备份


        在数据库中创建数据表,并写入数据
        停止数据库服务


        创建备份目录
        按照特定格式对数据库目录进行备份
            tar  czf  mysql_all-$(date  +%F).tar.gz  /var/lib/mysql/*
    

 

 

 

    6.3还原


        创建还原目录
        模拟元数据丢失
        将解压之后的数据还原值原目录
        登录查看

7,备份工具备份


    7.1备份
        7.1.1工具            mysqldump
        7.1.2对单个库进行完全备份            mysqldump -u用户名 -p[密码] [选项] --databases [数据库名] > /备份路径/备份文件名
        7.1.3对多个库进行完全备份            mysqldump -u用户名 -p[密码] [选项] --databases 库名1 [库名2]…… > /备份路径/备份文件名
        7.1.4对所有库进行完全备份            mysqldump -u用户名 -p[密码] [选项] --opt --all-databases > /备份路径/备份文件名
        7.1.5对表进行完全备份            mysqldump -u用户名 -p[密码] [选项] 数据库名 表名 > /备份路径/备份文件名
        7.1.6对表的结构进行备份            mysqldump -u用户名 -p[密码] -d 数据库名 表名 > /备份路径/备份文件名

 

 

 

 

 

   7.2 还原


        7.2.1先模拟数据丢失删除数据表

 

 

        7.2.2工具      source         登录mysql 数据库执行source  备份sql脚本路径
                             mysql           mysql -u用户名 -p[密码] < 库备份脚本的路径
                                                 mysql -u用户名 -p[密码] 库名 < 表备份脚本的路径

 

 

 

8,增量备份

8.1使用完全备份时,备份与恢复的时间过长
8.2增量备份就是备份自上一次备份之后增加的或改变的文件内容
8.3特点
    没有重复数据,备份量不大,时间短
    恢复麻烦,需要上次完全备份及完全备份之后所有的增量备份才能恢复,而且要对所有增量备份进行逐个反推恢复
    MySQL没有提供直接的增量备份办法,可以通过MySQL提供的二进制日志(binary logs(binlog))间接实现增量备份
8.4MySQL二进制日志对备份的意义
    二进制日志保存了所有更新或者可能更新数据库的操作。
    二进制日志在启动MySQL服务器后开始记录,并在文件达到max_binlog_size所设置的大小或者接收到flush logs命令后重新创建新的日志文件。
8.5开启二进制日志备份功能
    MySQL的配置文件的[mysqld]项中加入 log-bin=文件存放路径/文件前缀,如 log-bin=mysql-bin,然后重启mysqld服务。默认此配置存在。
    使用mysqld --log-bin=文件存放路径/文件前缀 重新启动mysqld服务每周选择服务器负载较轻的时间段,或者用户访问较少的时间段进行备份

9.增量恢复


    9.1应用场景


        人为的SQL语句破坏了数据库
        在进行下一次全备之前发生系统故障导致数据库丢失
        在主从架构中,主库数据发生了故障,保证从库数据一致性
 

 9.2 方法


        9.2.1一般恢复
            备份的二进制日志内容全部恢复
            格式: mysqldbinlog [--no-defaults] 增量备份文件 | mysql -u用户名 -p密码
        9.2.3基于时间点的恢复
            便于跳过某个发生错误的时间点实现数据恢复
            格式:从日志开头截止到某个时间点的恢复:
            mysqlbinlog [--no-defaults] --stop-datetime=’年-月-日 小时:分钟:秒‘ 二进制日志 | mysql -u用户名 -p密码
        9.2.4从某个时间点到日志结尾的恢复
            mysqlbinlog [--no-defaults] --start-datetime=’年-月-日 小时:分钟:秒‘ 二进制日志 | mysql -u用户名 -p密码
        9.2.5从某个时间点到某个时间点的恢复
            mysqlbinlog [--no-defaults] --start-datetime=’年-月-日 小时:分钟:秒‘ --stop-datetime=’年-月-日 小时:分钟:秒‘ 二进制日志 | mysql -u用户名 -p密码
        9.2.6基于位置的恢复
            可能在同一时间点既有错误的操作也有正确的操作,基于位置进行恢复更加准确
            mysqlbinlog --stop-position=‘操作 id‘ 二进制日志 | mysql -u用户名 -p密码
            mysqlbinlog --start-position=‘操作 id‘ 二进制日志 | mysql -u用户名 -p密码

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于MySQL数据库备份,有几种常见的方法可以使用。 一种方法是使用mysqldump命令进行备份。通过mysqldump命令,可以将指定的库、表导出为SQL脚本文件。例如,可以使用以下命令进行完全备份一个或多个完整的库(包括其中所有的表): ``` mysqldump -u root -p\[密码\] --databases 库名1 \[库名2\] … > /备份路径/备份文件名.sql ``` 这样就会生成一个包含数据库结构和数据的SQL脚本文件。 另一种方法是进行物理冷备份。在物理冷备份中,需要停止MySQL服务,并将数据库文件进行压缩备份。例如,可以使用以下命令进行物理冷备份: ``` systemctl stop mysqld yum -y install xz cd /usr/local/mysql tar Jcvf /opt/mysql_all_$(date +%F).tar.xz data/ ``` 这样就会将MySQL的数据文件进行压缩备份。 在恢复备份时,可以使用相应的命令进行恢复。对于mysqldump备份,可以使用以下命令进行恢复: ``` systemctl start mysqld mysql -u root -p -e 'drop database school;' mysql -u root -p < /备份路径/备份文件名.sql ``` 这样就会先启动MySQL服务,然后删除原有的数据库(如果需要),最后将备份文件导入到MySQL中。 对于物理冷备份,可以使用以下命令进行恢复: ``` systemctl stop mysqld tar Jxvf /opt/mysql_all_2022-06-15.tar.xz -C ./ systemctl restart mysqld.service mysql -u root -p ``` 这样就会先停止MySQL服务,然后解压备份文件,最后重新启动MySQL服务。 总结起来,MySQL数据库备份可以使用mysqldump命令进行逻辑备份,也可以进行物理冷备份。在恢复备份时,根据备份的类型选择相应的命令进行恢复。 #### 引用[.reference_title] - *1* *2* *3* [MySQL数据库备份与恢复](https://blog.csdn.net/weixin_53246927/article/details/125274452)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值