数据库备份与恢复步骤 数据库的备份与恢复方法总结

在数据作为重要的生产要素的时代,数据早已成为各行各业的生命源泉,数据安全的重要性不言而喻 。数据备份是数据安全的基础,完整的备份和有效的恢复手段是应对突发状况的重要保障,保证数据在被人为失误、操作不当、蓄意等情况下删除或损坏后,能及时、有效的进行恢复并

数据库备份与恢复步骤 数据库的备份与恢复方法总结

文章插图
在数据作为重要的生产要素的时代,数据早已成为各行各业的生命源泉,数据安全的重要性不言而喻 。数据备份是数据安全的基础,完整的备份和有效的恢复手段是应对突发状况的重要保障,保证数据在被人为失误、操作不当、蓄意等情况下删除或损坏后,能及时、有效的进行恢复并不会很大程度上影响到业务运行 。同时数据备份也对数据的重新利用,发挥数据更大价值,有着重大的作用 。
数据库备份与恢复步骤 数据库的备份与恢复方法总结

文章插图
数据库备份有多种
按照备份后的文件类型可以分为物理备份(文件系统级别的备份)和逻辑备份(备份文件是SQL文件或特定格式的导出文件);
按照备份时是否停止数据库服务分为冷备份(备份时停止数据库服务)和热备份(备份时数据库服务开启并可访问);
按照备份数据库是否完整可分为全量备份(备份是完整的数据库)和增量备份(备份是全量备份后数据库改变的内容) 。
优炫数据库UXDB作为新一代数据库软件,提供完善的数据存储与数据管理功能,具有众多优异的产品特性,满足客户多种业务场景需求 。
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文件 。系统支持全量、增量、热备、冷备等多种形式,支持数据并行备份与并行恢复,恢复系统到之前的某个状态 。

推荐阅读