企业级数据库备份攻略


在 当今 的发 达的 信息 领域 ,体 现价 值的 珍贵 性的 不是 计算 机软 件, 也不 是计 算机 硬件 , 而 是计 算机 内的 各种 宝贵 数据 。但 是各 种因 素像 人为 错误 ,硬 盘损 坏 ,电 脑病 毒或 者各 种停 电,自 然灾 害都 有可 能使 得数 据的 使用 变得 不牢 靠 。建 立合 理的 数据 备份 系统 ,以 保障 数据 的 安全 ,对 于每 个企 业至 关重 要。 有专门研究数据的机构作出研究报告表明,每损失10MB 10MB 10MB 10MB 的数据,就会造成部门损失达3333 万元人民币,而且如果丢失的关键数据在10101010天之内仍然得不到恢复的话,企业就会出现危 机,甚至有可能出现严重后果。所以随着计算机系统越来越成为企业不可或缺的数据载体, 如 何利 用数 据备 份来 保证 数据 安全 成为 目前 一个 重要 的研 究和 应用 领域 。 两 大基 础方 案完 成数 据库 备份 数据本身由于其运行环境和使用过程中出现的各种故障,使整个数据的完整性和许多因素 相关。主要包括计算机本身软硬件的故障,使用过程中的误操作和各种计算机病毒的破坏。 还 有各 种不 可预 测的 自然 因素 也会 造成 数据 的损 坏和 丢失 。 其 实目 前企 业数 据库 的备 份方 案主 要有 如下 两种 : 第一种为物理备份,该方法实现数据库的完整恢复,但数据库必须运行在归档模式下(业 务 数据 库在 非归 档模 式下 运行 ), 且需 要大 容量 的外 部存 储设 备, 例如 磁带 库; 第二种备份方案为逻辑备份,业务数据库采用此种方案,此方法不需要数据库运行在归档 模 式下 ,不 但备 份简 单, 而且 可以 不需 要外 部存 储设 备。 绝大多数数据库软件都是采用这两种基本方案的备份,只是在备份的策略和技巧上各有侧 重,并且在各种数据库辅助软件的帮助下可以实现定时备份,异地备份,增量压缩备份以 及 自动 备份 ,帮 助企 业在 数据 管理 上更 好的 适应 应用 的需 要。 制 定备 份方 案需 要考 虑的 因素 一 般的 数据 库备 份过 程中 需要 考虑 如下 因素 : (1111) 数据 本身 的重 要程 度; (2222) 数据 的更 新和 改变 频繁 程度 ; (3333) 备份 硬件 的配 置; (4444) 备份 过程 中所 需要 的时 间以 及对 服务 器资 源占 用的 实际 需求 情况 。 (5555)而且数据库备份方案中,还需要考虑到要对业务处理的影响尽可能地小,要把需要长 时间完成的备份过程放在业务处理的空闲时间进行。对于重要的数据,要保证在极端情况 下的损失都可以正常恢复。对备份硬件的使用要合理,既不盲目地浪费备份硬件,也不让 备 份硬 件空 闲。 针对这些特点,我们一起来看看常见的数据库软件的特点,这些数据库包括ORACLEORACLEORACLEORACLE,SQLSQLSQLSQL SERVERSERVERSERVERSERVER,SYBASESYBASESYBASESYBASE,INFORMIX INFORMIX INFORMIX INFORMIX 和MYSQLMYSQLMYSQLMYSQL。通过分析这些数据库的备份策略,帮助企 业 学习 如何 选择 各自 的数 据库 备份 方案 。 ORACLE ORACLE ORACLE ORACLE 数 据库 备份 方案 和特 点 Oracle Oracle Oracle Oracle 数据库的备份方式主要有三种:逻辑备份、物理备份和RMAN RMAN RMAN RMAN 备份。物理备份比较 简 单, 也容 易理 解, 主要 是逻 辑备 份和 RMAN RMAN RMAN RMAN 备 份过 程。 逻辑备份是利用SQL SQL SQL SQL 语言从数据库中抽取数据并存于二进制文件的过程。Oracle Oracle Oracle Oracle 提供的逻 辑备份工具是expexpexpexp。逻辑备份最大的优越性在于备份时占用资源少,在备份与恢复时对数据 库系统资源影响最小。另外对于个别表,但并非整个表空间或数据库的恢复也非常方便, 且可以在不同的数据库上进行恢复。备份方案灵活,可以根据需要选择性的备份表、表空 间 、某 用户 的对 象信 息或 全库 备份 。 逻辑备份的恢复过程可以采用lmp lmp lmp lmp 工具来对数据库进行恢复。如果确认整个oracle oracle oracle oracle 数据库 已经损坏,就需要重建服务器,所有数据库培植必须设置成和原有库的信息一致,如实例 名、数据库名、数据库字符集、表空间名等。然后将原有的exp exp exp exp 文件copy copy copy copy 到新系统,然后 执行lmp lmp lmp lmp 的 全库 恢复 操作 。 如果只是某个用户对象出现问题,可以针对此用户进行用户对象的恢复,先将此用户删除。 然后新建此用户。注意用户权限与原来一致,然后执行lmp lmp lmp lmp 进行恢复操作。对于某个表的 恢 复, 也按 这种 方式 操作 。 RMAN RMAN RMAN RMAN 是指RecoveryRecoveryRecoveryRecovery ManagerManagerManagerManager,是Oracle Oracle Oracle Oracle 恢复管理器工具。通过它,可以对数据库进行 备份与恢复操作。RMAN RMAN RMAN RMAN 备份有很多方式,可以对数据库进行脱机、联机的物理备份,也 可 以对 数据 库进 行增 量备 份。 在实际过程中用得比较多的是RMAN RMAN RMAN RMAN 增量备份。其过程是首先注册备份数据库,先建立一 个RMAN RMAN RMAN RMAN 库,并将要备份的数据库注册到RMAN RMAN RMAN RMAN 库中,然后建立RMAN RMAN RMAN RMAN 增量备份脚本, 最后就可以执行备份操作了。我们可以根据实际情况对数据库执行各级备份,也可以通过 建 立系 统 shell shell shell shell 脚 本调 用执 行, 通过 crontab crontab crontab crontab 定 时调 度, 执行 数据 库的 备份 。 SQLSQLSQLSQL SERVER SERVER SERVER SERVER 数 据库 备份 方案 为了保证SQLSQLSQLSQL ServerServerServerServer 数据的安全,数据库管理员应定期备份数据库,在不同情况下应采用 不同备份数据库备份策略,一方面维持数据的安全性,另一方面也可保持SQLSQLSQLSQL ServerServerServerServer 能顺 畅运行。尽最大的努力减少由于数据的损坏对客户造成的损失。SQLSQLSQLSQL Server Server Server Server 中有几种常用 的 备份 方法 : (1111)备份整个数据库中的所有数据,若将整个数据库的内容都备份下来,需很多的存储空 间来存放备份数据,但其好处是在还原数据库时,也只要将整个数据库从一份数据库备份 还原到SQLSQLSQLSQLSERVERSERVERSERVERSERVER 中就可以了。用这个备份文件就可以恢复整个数据库到备份的时间 截止的内容。这种备份生成的备份文件最大,需要的时间最长,如果数据库规模比较大, 可能对实际业务有很大的影响。完整备份是其他备份的基础,在做其他备份之前,必须得 做 此种 方式 的备 份。 (2222)备份自上次完全备份后,数据库所做的改变。在差异备份前,必须有一次完全备份, 而还原时,也必须先恢复完全备份,然后再在完全备份的基础上恢复差异备份,不能用它 单独恢复数据库。差异备份生成的文件比完全备份小,需要的时间比较短,所以此方式最 适 合作 为经 常性 的备 份方 式。 (3333)事务日志(TransactionTransactionTransactionTransaction LogLogLogLog)只备份事务记录文件的内容,由于事务日志文件只会记 录我们在前一次数据库备份或事务日志记录备份之后,对数据库所做的变动过程,也就是 只记录某一段时间的数据库变动情况,因此在做事务记录备份之前,必须做一次““““完全””””的 数 据库 备份 。 (4444)文件和文件组方式。如果数据库的内容分散存储于多个文件或文件组,而且数据库已 非常大,大到进行一次完整的数据库备份会有时间和存储空间上的问题。这时就可以使用 此方式来备份数据库的部分文件或文件组。由于每次只备份部分的文件或文件组,因此需 做数次不同的备份才能完成整个数据库的备份。才用此方式备份也有个好处,就是当毁坏 的 数据 只是 数据 库中 的某 个文 件或 文件 组时 ,也 只要 还原 坏的 文件 或文 件组 备份 就可 以了 。 还有一个比较重要的问题是系统数据库的备份与还原是很多用户在定义数据库备份方案中 容易忽略的,系统数据库中虽然不保存业务数据,但它保存了很多SQLSQLSQLSQL Server Server Server Server 的设置,如 果不备份系统数据库,那么在服务器发生故障导致系统损坏时,重新配置所有的SQLSQLSQLSQL ServeServeServeServerrrr 设 置将 是一 个非 常艰 巨的 任务 。 SYBASE SYBASE SYBASE SYBASE 数 据库 备份 特点 Sybase Sybase Sybase Sybase 数据库产品从1987 1987 1987 1987 年问世以来,以客户机////服务器(client/server)(client/server)(client/server)(client/server)工作模式、分布处理 的基础体系结构、完善的安全保密性能、高速快捷的运行方式、多平台跨操作系统的特点 在 许多 领域 都有 广泛 的应 用。 针对Sybase Sybase Sybase Sybase 系 统的 备份 方案 ,在 实际 应用 中一 般使 用如 下两 种方 法: (1111)使用Sybase Sybase Sybase Sybase 的BackupBackupBackupBackup ServerServerServerServer( 备份 服务 器 ),做Dump Dump Dump Dump 备份 (2222)转储数据库(DumpDumpDumpDump databasedatabasedatabasedatabase),就是为整个数据库(包括数据、表结构、触发器、 游标、存储过程、事务日志等)做一次物理备份。转储数据库时,系统自动执行一次 checkpointcheckpointcheckpointcheckpoint,将日志和数据从缓冲区拷贝到硬盘,把已被分配的页(日志和数据)转储到设 备。 如果备份到硬盘的文件上,可以不预先估算备份文件的大小,只要硬盘有足够的存储空间 就可以。如果是备份到磁带上,那么就要估算一下备份后的大小,如果数据库的备份文件 超 过了 这个 尺寸 ,就 要考 虑多 文件 转储 ,使 用 stripe stripe stripe stripe 参 数。 这种数据备份方式是将整个数据库的运行环境完整的复制一份,在使用load load load load 命令恢复时, 只能恢复到同样大小的数据库中(数据和日志的大小都只能和原来完全一致),这种方法的 优 点是 数据 库完 整无 误, 缺点 是不 能直 接查 看备 份内 容。 (3333)对 数据 结构 和数 据记 录做 两次 备份 (4444)在一般情况下,生产机的数据库都比较庞大,而实验机则相对较小,难以在实验环 境 中以 load load load load 命 令恢 复工 作机 的内 容。 所以 我们 可以 将数 据结 构和 数据 记录 做两 次备 份。 (5555)我 们还 可以 利用 做 bcp bcp bcp bcp 备 份脚 本的 方法 进行 数据 库碎 片整 理。 Sybase Sybase Sybase Sybase 数据库作为联机事务处理应用服务器,每天应用程序都对数据库做大量的插入、修 改和删除等操作,不可避免的在数据库的物理存储介质上留下页碎片和扩展单元碎片,从 而 影响 数据 库的 存储 效率 和运 行速 度。 在使用过程中,业务繁忙时出现死锁(deaddeaddeaddead locklocklocklock),数据库的输入////输出资源被大量占用,业 务处理速度慢。我们可以清空数据库中的所有表,删除所有表的索引和主键,然后导入数 据,接着添加索引和主键,重新更新数据库状态。上述操作都是针对数据库中的所有用户 表进行的,利用做bcp bcp bcp bcp 备份脚本的方法做出相应的脚本,使繁琐的数据库维护变得简便易 行。 INFORMIX INFORMIX INFORMIX INFORMIX 数 据库 备份 方案 Informix 数 据库 能提 供建 立数 据档 案管 理的 所有 数据 的数 据备 份 ,以 及记 录备 份数 据库 服 务 器的 变化 和档 案建 立以 来数 据变 化的 能力 。这 些变 化的 记录 存储 在逻 辑日 志中 ,管 理员 可 以 同时 建立 数据 档案 和逻 辑日 志备 份磁 盘 。数 据档 案也 可以 用增 量的 方式 建立 ,这 样可 以减 少 建立 备份 档案 所需 的时 间。 当 存储 介质 发生 故障 后 ,将 导致 当前 数据 被破 坏或 者不 能存 取数 据 ,这 时可 以利 用数 据档 案和逻辑日志的备份进行数据库的恢复。Online 恢复系统保证备份数据是一致的。Archive 档案是Online 管理的全部或者部分数据的拷贝,一次建档操作建立的档案是online 数据的 一 个瞬 间快 照 ,在 物理 和逻 辑上 是一 致的 。online 数 据档 案可 以在 磁带 或磁 盘上 建立 。档案 数 据应 保存 在与 计算 机设 施分 开的 安全 地方 。 逻辑日志备份,逻辑日志文件存储online 的变化信息,包括online 系统的包括配置上的 变化和数据库的改变记录,如:对数据库表的建立,数据记录的插入insert、删除delete、 修改update 等。逻辑日志实际上是对online 操作活动(包括事务记录)的一个跟踪记录, 为 了保 证数 据的 一致 性 ,在 恢复 档案 数据 后可 以使 用这 些记 录将 online 恢 复到 发生 故障 时的 最 后的 一个 结束 的事 务。 逻 辑日 志备 份操 作与 online 建 立操 作是 两种 不同 性质 的后 备方 法, 两者 结合 可以 有效 地 为 数据 库建 立一 个完 整的 后备 存储 。 MYSQL MYSQL MYSQL MYSQL 数 据库 备份 方案 MYSQL 备 份数 据库 主要 有两 个方 法 ,一 个是 用 MYSQLdump 程序,另 一个 是直 接拷 贝数 据 库文 件, 各有 其优 缺点 。 MYSQLdump 与MySQL 服 务器 是协 同操 作, 可以 生成 能够 移植 到其 它机 器的 文本 文件 , 甚 至那 些有 不同 硬件 结构 的机 器上 。而 直接 拷贝 方法 在服 务器 外部 进行 ,直 接拷 贝的 文件 不 能 移植 到其 它机 器上 ,并 且必 须采 取措 施保 证没 有客 户正 在修 改即 将拷 贝的 表 。当 然在 速度 上MYSQLdump 比 直接 拷贝 要慢 些。 不 管使 用哪 种备 份方 法 ,如 果需 要恢 复数 据库 ,必 须让 服务 器执 行更 新日 志 。当 系统 崩溃 后 需要 恢复 数据 时 ,更 新日 志可 以帮 助恢 复 。这 样在 用备 份文 件恢 复数 据到 备份 时的 状态 后 , 我 们可 以通 过运 行更 新日 志中 的查 询再 次运 用备 份后 面的 修改 ,这 时可 以将 数据 库中 的表 恢 复 到崩 溃发 生时 的状 态。 当然 我们 也需 要备 份这 些更 新日 志。 使用mysqldump 备份和拷贝数据库时,mysqldump 产生的输出可用作mysql 的输入来重 建 数据 库。 我 们还 可以 将整 个数 据库 导出 到一 个单 独的 文本 文件 中。 在恢 复期 间, 通常 按 数 据库 为基 础提 取更 新日 志内 容, 对单 个表 没有 提取 更新 的选 择。 如 果使 用直 接拷 贝数 据库 的备 份和 拷贝 方法 ,可 以使 用这 些 cp、tar 或cpio 实 用程 序 。当 直 接拷 贝时 ,我 们必 须要 保证 表不 在被 使用 。如 果在 拷贝 过程 中 ,服 务器 修改 了拷 贝中 的表 的 内容 ,则 备份 失败 。保 证拷 贝完 整性 的最 好方 法是 关闭 服务 器 ,拷 贝文 件 ,然 后重 启服 务 器。如 果不 想关 闭服 务器 ,要 在执 行表 检查 的同 时锁 定服 务器 。如 果服 务器 在运 行 ,相 同的 制 约也 适用 于拷 贝文 件。 恢 复过 程包 括备 份文 件和 更新 日志 。备 份文 件可 以将 表恢 复到 实施 备份 时的 状态 ,更 新日 志 包含 了用 于进 行这 些修 改的 查询 。恢 复过 程根 据我 们需 要恢 复的 信息 多少 而不 同 。实 际上 , 恢复整个数据库比单个表跟容易,因为对于数据库运用更新日志比对单个表运用要容易的 多。 五 大原 则制 定数 据库 备份 方案 根 据这 些数 据库 备份 方案 的分 析, 我们 可以 发现 ,如 果需 要做 出一 份合 理的 备份 方案 ,我 们 应该 遵循 如下 的原 则: 首 先在 业务 处理 空闲 的时 候做 完全 备份 ,备 份时 间的 间隔 设置 可以 根据 本身 的数 据量 和数 据 重要 的程 度来 设置 ,比 如可 以一 个月 做一 次完 全备 份 。然 后在 业务 处理 比较 空闲 的时 候做 差 异备 份, 比如 我们 可以 一周 备份 一次 。 然 后我 们还 需要 经常 做日 志备 份 ,如 果数 据很 重要 ,而 数据 的变 化频 度又 非常 快 ,可 以设 置5分 钟甚 至更 短的 时间 备份 一次 ,这 个主 要由 我们 的数 据重 要的 程度 和允 许丢 失数 据的 时 间 长短 来确 定。 对 于备 份硬 件的 配置 ,除 了备 份到 磁盘 ,还 应该 考虑 备份 到磁 带机 或是 其他 服务 器 ,并且 定 期要 将备 份的 数据 刻录 到光 盘做 永久 备份 ,这 样还 可以 腾出 刻录 的空 间给 新的 备份 用 ,减 少 备份 设备 的开 销。 最 后我 们还 要考 虑到 对于 重要 的数 据 ,要 将备 份文 件保 存到 多种 介质 和多 个地 点 ,这 样某 一 处备 份文 件损 坏了 的话 ,我 们还 可以 有其 他的 备份 文件 可用 。 我 们还 需要 考虑 到还 原作 业的 进行 。比 如有 多少 时间 以及 在那 些时 段可 进行 备份 ;数 据库 变 动的 频率 如何 ;数 据库 大小 ;而 且当 数据 库出 现问 题时 ,用 户愿 意等 待多 久让 数据 库还 原 完毕;应 采用 何种 备份 方式 ,做 怎样 的硬 件搭 配 ;要 使用 哪种 存储 介质 。这 样基 本上 可以 做 出 一份 比较 合理 的备 份方 案。 制 定数 据库 备份 方案 我 们可 以选 择一 些常 用的 备份 方案 来适 应我 们的 各种 数据 库的 备份 需要 。可 以有 如下 的一 些 备份 组合 : (1) 完全 数据 库备 份配 合事 务日 志备 份 对 于数 据库 数据 比较 大 ,但 每天 的变 动的 内容 小 ,可 考虑 采用 此方 式 。可 定期 做一 次完 整 的 数据 库备 份 ,例如:每 周或 每月 做一 次 “完全”数 据库 备份 。然 后再 以比 较短 的周 期 ,如每 天 或每 两天 做一 次事 务日 志备 份 。这 样平 时备 份工 作负 担比 较轻 ,发 生意 外时 ,可 将数 据还 原 到最 近一 次备 份的 状态 。 (2) 完全 数据 库备 份配 合差 异式 备份 此 方式 是将 前一 种方 式中 的事 务日 志备 份方 式改 成差 异式 备份 。其 优点 是在 做还 原时 ,只 需 在做 完最 近一 次数 据库 备份 的还 原后 ,再 用前 一天 的差 异备 份来 还原 就可 以了 ,不 像使 用 事 务记 录备 份时 ,需 要按 天还 原 。但 是这 种方 式在 一段 长时 间间 隔内 ,每 次做 差异 备份 所需 的 时间 和空 间都 会增 加。 (3) 三种 备份 方式 的综 合使 用 由 于事 务记 录备 份和 差异 备份 各有 其优 缺点 ,因 此我 们可 以将 两种 方法 结合 起来 使用 。对 于 数据 信息 非常 重要 ,每 一到 两小 时备 份一 次, 可能 的损 失只 是一 到两 个小 时的 数据 。 (4) 当数 据库 过大 ,有 不易 备份 的问 题时 ,可 以采 用文 件或 文件 组备 份方 式, 可考 虑将 数 据库 分开 存于 不同 的文 件和 文件 组中 ,然 后以 文件 和文 件组 的方 式将 整个 数据 库分 数次 备 份。此外,如 果数 据库 中只 有部 分表 经常 变动 ,另 一部 分很 少变 动 ,也 可考 虑将 这两 部分 存 于 不同 的文 件和 文件 组中 ,然 后用 不同 的备 份频 率来 备份 其内 容 。采 用此 方式 备份 数据 的缺 点 是必 须经 过多 次操 作才 能将 备份 过程 完成 。 (5)使 用备 用服 务器 这 种方 法是 利用 备份 服务 器, 对原 服务 器做 双机 备份 。先 在原 服务 器上 做完 全的 备份 ,再 把 此备 份放 到备 份服 务器 上做 还原 ,使 两边 的数 据同 步 ,以 后可 以定 期对 原数 据库 做事 务日 志 备份 ,把 事务 日志 放到 备份 服务 器上 还原 。当 原服 务器 出现 问题 既可 使用 备份 服务 器接 上 网 络提 供服 务。 维 护数 据库 备份 系统 在 实际 工作 中 ,除 了对 数据 库制 订一 定的 备份 策略 ,我 们还 应该 在日 常的 维护 中进 行各 种 常 规的 检查 工序 ,保 证数 据库 的正 常运 行。 首 先数 据库 管理 员应 当每 日察 看数 据库 的备 份报 告 ,出 现问 题及 时检 查备 份文 件 ,保 障每 日 数据 库服 务器 的备 份正 常运 行。 当 主数 据库 服务 器出 现数 据库 错误 时 ,应 检查 数据 库的 工作 状态 。如 果工 作不 正常 应及 时 将 最新 的备 份数 据覆 盖当 前数 据库 的损 坏数 据 ,并 重新 启动 机器 ,检 验数 据库 系统 是否 能够 自 行恢 复运 行。 如 果重 新启 动后 数据 库系 统不 能正 常运 行 ,则 数据 库系 统文 件被 破坏 ,应 启用 紧急 恢复 方 案。如 果主 数据 库服 务器 出现 硬件 故障 时 ,应在1小 时内 更新 备份 数据 库为 最新 数据 ,并启 动 备份 数据 库服 务器 ,将 备份 数据 库服 务器 升级 为主 数据 库服 务器 。 对 于损 坏的 主数 据库 服务 器应 重新 安装 数据 库 ,并 启用 紧急 恢复 方案 。如 果是 备份 数据 库 服 务器 出现 数据 库错 误时 ,应 检查 数据 库的 工作 状态 ,及 时将 最新 的备 份数 据覆 盖当 前数 据 库 的损 坏数 据, 并重 新启 动机 器, 检验 数据 库系 统是 否能 够自 行恢 复运 行。 基 本上 每周 保证 三次 将备 份数 据转 移到 外部 存储 设备 中, 使备 份资 料可 以异 地保 存。
还剩4页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 15 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

891217

贡献于2010-10-22

下载需要 15 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf