首页 > 编程知识 正文

mysql如何备份,oracle 备份数据库

时间:2023-05-04 23:27:36 阅读:156725 作者:980

数据库对企业来说最重要的不是其中的数据,所以备份数据库是一项必不可少的工作。 及时备份数据库有助于在数据库停机时及时使用备份数据进行恢复,以最大限度地减少数据库停机造成的影响。 因此,本文介绍了主要数据库数据的备份和恢复。 由于MyISAM存储引擎的备份数据将表存储在单独的文件中,因此很简单,本节主要介绍InnoDB存储引擎的备份和恢复机制。

总量备份和增量备份的区别

全量备份:

每次备份都要进行总量备份,如果数据量较大,进行总量备份要消耗很多时间,对数据库的压力很大,但每次总量备份都是最新的备份,所以恢复数据时效率很高。

增量备份:

由于每天只备份增量日志,因此备份过程中的效率更高,数据库负载也更少,但如果要恢复数据,则必须从全部备份日志和每日增量日志中恢复数据

Mysql数据备份分为两类:物理备份和逻辑备份。 在本文中,我们先看一下物理备份。

物理备份

物理备份包括热备份和冷备份。

冷备份

冷备份是最简单的备份方法。 实际上,备份数据时会停止Mysql服务,并将data目录下的数据文件复制并保存到目标位置。 如果Mysql已关闭,则通过将备份文件复制到data目录并将其替换来完成数据恢复。 但是,一般不使用冷备份的方式。 因为业务在生产环境中正常运行,所以每次备份时都不能停止Mysql服务来进行备份工作。

热备份

快照备份

物理备份还有一种方法叫热备份,热备份与冷备份相比有什么好处? 热备份允许在Mysql服务打开的情况下执行备份操作,但增加了热备份的只读限制。 热备份中介绍的第一种备份方法是快照备份。 快照备份实际上是将所有数据文件放在同一个分区上,然后对该分区进行快照备份,但快照备份只能存储在本地磁盘上,并且会干扰本地磁盘即使在生产环境中,使用热备份备份数据也很常见,因为磁盘可能会损坏并导致数据丢失。

xtra备份

热备份的另一种方法是备份xtrabackup工具。 xtrabackup工具版本2.3或更低版本无法备份MyISAM存储引擎。 可以备份5.1~5.7版InnoDB存储引擎中的数据。 xtrabackup工具基于InnoDB存储引擎的crash-recovery功能,通过复制物理文件,然后根据日志进行恢复来确保数据完整性。 接下来,我们来看看xtrabackup工具是如何执行备份任务的。

使用wget下载xtrabackup工具,然后使用yum命令进行安装。

使用xtrabackup备份,执行以下命令:

xrabackup---- backup---user=root---password=' 123 '---target-dir=/backups/* *

如您所见,完整备份完成后,将显示当前备份的lsn编号,并且在下次进行增量备份时,仅备份大于此页的lsn中的数据。 让我们看看刚才全部备份的数据。

目录正好与我们的数据库一一对应,您可以看到每个文件夹实际上包含相应数据库的备份数据。 您可以看到根目录下有几个文件。 接下来,我们来看看这些文件的具体用途。

ibdata1:只有共享表空间文件并在创建数据库时选中innodbfileper_table参数,才能使用xtrabackup工具备份各个数据库。 否则,缺省情况下将备份所有数据库。

backup-my.cnf此文件包含有关my.cnf备份的配置信息。

xtrabackupbinloginfo :此文件用于记录备份开始时二进制文件的位置。

xtrabackup_checkpoints该文件包含有关备份的基本信息,包括开始和结束备份的lsn编号,以及是完全备份还是增量备份。

xtrabackup_info此文件包含备份的摘要信息。

xtrabackup_logfile :备份的日志。

要预备份数据以获得完全可用的数据,请使用命令。

xrabackup---- prepare---- use-memory=100 m---- target-dir=/backups

本节介绍命令的几个参数。 ----use--memory :如果没有此参数,缺省prepare操作将占用100M的内存。 如果数据量很大,可以在use-memory中指定较大的内存以加速prepare工作。

--target-dir备份文件所在的路径。 /backups/

恢复数据。 要恢复数据,必须确保mysql的data目录中不存在数据。 如果不存在,将报告错误。 恢复数据实际上是将备份数据复制到Mysql的data目录中,然后使用--copy-back参数恢复数据。 使用命令:

xtra backup---copy-- back---datadir=/var/lib/MySQL-- ta

rget-dir=/backups/

这里对命令几个参数做下解释:

--datadir:--datadir有两个方法进行配置:可以在my.cnf文件中指定,如果my.cnf文件没有指定该参数则恢复文件时必须指定--datadir参数。--target-dir:备份文件所在路径,我是放在/backups/。

接下来演示下如何进行数据恢复:停止数据库服务并且清掉data目录下所有数据:systemctl stop mysqld.service && rm -rf /var/lib/mysql/*

恢复数据:

xtrabackup --copy-back --datadir=/var/lib/mysql --target-dir=/backups/

最后,重启数据库:

systemctl start mysqld.service

到这里备份数据就成功进行恢复到数据库中了。当然更常用的备份方式其实是逻辑备份,使用Mysql自带mysqldump工具进行备份操作,关于逻辑备份的知识将在下一篇进行讲解。

欢迎关注公众号:程序猿真实的奇异果。

欢迎关注公众号:程序猿真实的奇异果。文章原创于微信公众号,本平台不定时更新。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。