黄东旭解析 TiDB 的核心优势
1663
2023-06-06
本文讲述了数据库备份与恢复,MySQL数据备份与恢复有哪些常见的方法?
在数据作为重要的生产要素的时代,数据早已成为各行各业的生命源泉,数据安全的重要性不言而喻。数据备份是数据安全的基础,完整的备份和有效的恢复手段是应对突发状况的重要保障,保证数据在被人为失误、操作不当、蓄意等情况下删除或损坏后,能及时、有效的进行恢复并不会很大程度上影响到业务运行。同时数据备份也对数据的重新利用,发挥数据更大价值,有着重大的作用。
数据库备份有多种
按照备份后的文件类型可以分为物理备份(文件系统级别的备份)和逻辑备份(备份文件是SQL文件或特定格式的导出文件);
按照备份时是否停止数据库服务分为冷备份(备份时停止数据库服务)和热备份(备份时数据库服务开启并可访问);
按照备份数据库是否完整可分为全量备份(备份是完整的数据库)和增量备份(备份是全量备份后数据库改变的内容)。
UXDB拥有多种多样的备份恢复方法
文件系统级别的冷备份
文件系统级别备份需停止数据库服务,复制数据文件的完整目录到它处,恢复数据库时,将它处的数据目录复制回原来的位置即可,实际工作中应用较少。
直接复制UXDB用于存储数据库中数据的文件:
本地集群
tar -jcv -f backup.tar.bz2 clusterdir(本地集群所在路径)
恢复:
tar-jxv-f backup.tar.bz2 -C /home/uxdb/uxdbinstall/dbsql/bin
分布式集群
mkdir /mnt/volume
mount.uxfs dirhost:port/volume(分布式集群所在volume名称) /mnt/volume
tar -jcv -f backup01.tar.bz2 /mnt/volume/uxdbuxfs(分布式集群挂载路径)
恢复:
tar -jxv -f backup01.tar.bz2 -C /mnt/volume/
这种方法有两个限制:
1. 为了得到一个可用的备份,数据库服务器必须被关闭。禁止所有连接等不彻底的措施是无用的(不仅因为tar和类似的工具在备份时并不对文件系统的状态做原子快照,而且服务器内部存在缓冲数据)。同样,恢复数据之前也需要关闭服务器。
2. 文件级别冷备份的策略不适用于希望通过表和数据库相应的文件或目录来备份或恢复特定的表和数据库。因为包含在这些文件中的信息只有配合提交日志文件(ux_xact/*)才有用,提交日志文件包含了所有事务的提交状态。表文件只有和这些信息一起才有用。当然也不可能只恢复一个表及相关的ux_xact数据,因为这会导致数据库集群中所有其他表变得无用。因此文件级别冷备份只适合于完整地备份或恢复整个数据库集群。
SQL转储
SQL转储为逻辑热备,备份工作通常由数据库超级用户在任何可以访问该数据库的远端主机上完成。备份时,无需停止数据库服务。备份会产生一个脚本文件,包含备份开始时已创建的各种数据库对象的SQL语句和各表中的数据。ux_dump只备份数据库中的某数据库的数据,不会导出角色和表空间等相关信息。ux_dumpall对集簇中的每个数据库执行ux_dump来完成该工作,还转储所有数据库公用全局对象,包括数据库用户和组、表空间以及适合所有数据库的访问权限等属性。此外,在离线集群中可使用ux_checksums启停页校验。
恢复工作通过执行备份文件中的SQL命令对数据库进行恢复。ux_dump生成的文本文件可以由uxsql程序读取。为保证您的备份保持更新,您可以通过往cron table中加入ux_dump或者是ux_dumpall命令定期执行备份工作。
恢复完成后,建议在每个数据库上运行vacuumdb分析数据库,保证优化器的统计数据最新。备份的文件较大时,您可以通过操作系统对备份文件进行压缩、分割或合并。
连续归档备份
连续归档策略是把文件系统级别的全量备份和WAL级别的增量备份结合起来,当需要恢复时,先恢复文件系统级别的备份,然后重放备份的WAL文件。系统支持全量、增量、热备、冷备等多种形式,支持数据并行备份与并行恢复,恢复系统到之前的某个状态。
连续归档的优点是不需要完美一致的文件系统备份作为开始点,备份中的任何内部不一致性将通过日志重放来修正。连续归档可在任何点停止重放,使数据库恢复到当时状态。可连续地将一系列WAL文件输送给另一台已载入相同基础备份文件的机器,从而得到一个实时的热备份系统。
*区别于为应对意外事件造成的数据丢失问题的备份,容灾是为了在遭遇灾害时能保证信息数据库系统仍能正常运行,帮助企业实现业务连续性目标。
UXDB支持基于应用程序、数据库、存储设备的远程复制和操作系统级镜像的远程镜像等多种方法。支持同城双中心灾备、二地三中心或三地六中心的异地灾备方案。
数据恢复
UXDB支持丰富的数据恢复操作,操作分为多个层面。
第一个层面是数据库,用户可以根据需要进行恢复所有数据库,恢复单个数据库。
第二个层面是表,用户可以进行对单个表的数据恢复。
第三个层面是操作层面,用户可以连续归档的热备份方式来达到恢复数据库到某个时间点,即Point-in-time Recovery(PITR)来恢复误操作。支持块修复功能。支持闪回功能开关功能、支持指定时间点或指定时间段的闪回查询功能,支持恢复回收站里的表功能、支持清空回收站里的表功能。
数据备份和恢复,是所有DBA和系统运维人的必修课。为了避免因为数据丢失或者误差而产生无法挽回的损失,要制定完善的数据安全管理方案,在数据库正常运行时进行备份,发生故障以后当机立断建重建数据库进行恢复, 是对数据库行之有效的保护措施,从而真正的提高数据的安全性与可靠性。
在管理MySQL数据库时,数据库备份和恢复是非常重要的。MySQL的数据备份和恢复需要考虑许多因素,如备份和还原的速度、空间利用率、数据库持续性等。
MySQL数据备份的常用方法:
1、物理备份: 物理备份是整个数据库备份的副本。这种备份类型主要涉及拷贝数据文件和日志文件以创建一个独立于原始服务器的克隆副本。物理备份具有备份和恢复周期快、备份数据量小、全面恢复能力强等优点。 在MySQL中,物理备份可以通过复制MySQL数据目录来实现。但是,这种方法只适用于MySQL数据库不处于运行状态下的情况。如果需要在运行时进行备份,则可以使用LVM(Logical Volume Manager)或者xtrabackup工具来解决该问题。
2、逻辑备份: 逻辑备份是指将数据库的逻辑结构导出成可读的SQL语句,并对其进行备份。这种备份优点是使用方便,缺点是备份和还原周期较长,且不够灵活。 逻辑备份有多种方法。其中一种是MySQL自带的mysqldump命令,它可以将备份文件导出为纯文本形式。用户可以配置备份内容的范围、输出格式和压缩方式等,mysqldump工具可以进行增量备份。
3、增量备份: 增量备份是一种仅备份那些自上次备份以来发生变化的数据的备份方法。此备份类型指定了在上次全备份之后被更改的文件及其位置,不必重新备份整个数据集。这种备份技术通常比其他备份类型快得多。增量备份主要是为启动时间提供数据恢复服务,并减少业务过程空挡;另外还越快,也能减少系统间歇性暂停的可能。 MySQL中,使用二进制日志(Binlog)来实现增量备份技术。在配置MySQ的时候设置binlog日志选项,使MySQL将接收到的所有命令都写入binlog日志文件,该日志文件记录了每条数据库操作命令执行的时刻、具体语句和相关参数,从而方便进行日志重放以回复已删除数据的操作。
4、分布式备份: 分布式备份是通过将源数据分配到大量存储节点中,每个节点只存储其中一部分,从而降低单个节点压力,提升备份速度或靠近用户级别的就近存取处理。 基础设施大规模分布环境多样化导致每家机构所需要的分布式存储具有不同需求。常见的分布式备份相关软件和技术方案包括 MySQL Cluster、Openstack Swift、Ceph。
MySQL数据恢复的方法:
在进行任何恢复操作前建议备份当前所有数据!
1、对于物理备份,您可以取消数据库之后还原整个数据目录。在恢复期间要仔细检查数据目录中的任何文件以确保其准确性。
2、对于逻辑备份,可以使用导出的SQL脚本进行还原。如果您需要仅还原某些特定表的内容,则可以在脚本中为您所需的特定表设置筛选器。
3、增量备份需要通过执行增量备份日志,来恢复相应时间段的操作。在此过程中要配置好MySQL的参数属性,可以选择以未完全恢复的模式启动mysqld守护进程或InnoDB引擎,以便从剩余文件中还位处某个点上的数据库。
上文就是小编为大家整理的数据库备份与恢复,MySQL数据备份与恢复有哪些常见的方法?
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。