今天是世界备份日,最初是由网络社区Reddit的用户发起的,口号是:Don’t Be An April Fool. Backup Your Data ! 以此来号召人们做好数据备份,重视数据保护。
数据备份是数据安全的基础,完整的备份和有效的恢复手段是应对突发状况的重要保障,保证数据在被人为失误、操作不当、蓄意等情况下删除或损坏后,能及时、有效地进行恢复并不会很大程度上影响到业务运行。
在世界备份日的今天,我们分享下优炫数据库备份与恢复。
数据库备份有多种
按照备份后的文件类型可以分为物理备份(文件系统级别的备份)和逻辑备份(备份文件是SQL文件或特定格式的导出文件);
按照备份时是否停止数据库服务分为冷备份(备份时停止数据库服务)和热备份(备份时数据库服务开启并可访问);
按照备份数据库是否完整可分为全量备份(备份是完整的数据库)和增量备份(备份是全量备份后数据库改变的内容)。
优炫数据库拥有多种多样的备份恢复方法
文件系统级别的冷备份
文件系统级别备份需停止数据库服务,复制数据文件的完整目录到它处,恢复数据库时,将它处的数据目录复制回原来的位置即可,实际工作中应用较少。
直接复制UXDB用于存储数据库中数据的文件:
• 本地集群
tar -jcv -f backup.tar.bz2 clusterdir(本地集群所在路径)
恢复:
tarjxvfbackup.tar.bz2C/home/uxdb/uxdbinstall/dbsql/bin
• 分布式集群
mkdir /mnt/volume
mount.uxfs dirhost:port/volume(分布式集群所在volume名称) /mnt/volume
tar-jcv-fbackup01.tar.bz2 /mnt/volume/uxdbuxfs(分布式集群挂载路径)
恢复:
tar-jxv-fbackup01.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和系统运维人的必修课。为了避免因为数据丢失或者误差而产生无法挽回的损失,要制定完善的数据安全管理方案,在数据库正常运行时进行备份,发生故障以后当机立断建重建数据库进行恢复, 是对数据库行之有效的保护措施,从而真正的提高数据的安全性与可靠性。