【问题标题】:Backup/Restore database for oracle 10g testing using sqlplus or rman使用 sqlplus 或 rman 进行 oracle 10g 测试的备份/恢复数据库
【发布时间】:2010-09-09 05:18:24
【问题描述】:

将 Oracle 10g 与我们的测试服务器结合使用,将数据库备份和还原到静态点的最有效/最简单的方法是什么,假设您总是希望在创建备份后返回到给定点。

一个示例用例如下

  1. 安装和配置所有软件
  2. 将数据修改为基础测试点
  3. 以某种方式进行备份(这是问题的一部分,如何执行此操作)
  4. 做测试
  5. 回到第3步状态(恢复到备份点,这是问题的另一半)

最好通过 sqlplus 或 rman 或其他一些可编写脚本的方法来完成。

【问题讨论】:

  • 您是否最终为每个步骤运行了单独的 sqlcmd.exe 语句(步骤 4 除外)?
  • 我最后只得到了一个我相信的闪回命令,很抱歉我已经有一段时间没有这样做了。

标签: sql oracle backup oracle10g rman


【解决方案1】:

您无需在基准时间进行备份。只需启用闪回数据库,创建保证还原点,运行测试并闪回到之前创建的还原点。

具体步骤如下:

  1. 以挂载模式启动实例。

    启动强制挂载;

  2. 创建还原点。

    创建还原点 before_test 保证闪回数据库;

  3. 打开数据库。

    改变数据库打开;

  4. 运行您的测试。

  5. 关闭并装载实例。

    立即关机; 启动挂载;

  6. 闪回还原点。

    闪回数据库到还原点 before_test;

  7. 打开数据库。

    改变数据库打开;

【讨论】:

  • 如果数据库变化是结构变化呢?
【解决方案2】:

您可以使用 Oracle 中名为 Flashback 的功能,它允许您创建一个还原点,您可以在完成测试后轻松跳回到该位置。

引自网站,

闪回数据库就像“倒带” 按钮'为您的数据库。它提供 数据库时间点恢复 无需备份 首先要恢复的数据库。什么时候 你消除了花费的时间 从磁带恢复数据库备份, 数据库时间点恢复是 快。

【讨论】:

  • 对不起,我应该更具体一点,我正在寻找一种可编写脚本的方式。我已经更新了问题。
  • 它是可编写脚本的。使用 FLASHBACK DATABASE 命令可以从 RMAN 和 SQL*Plus 访问闪回。例如,闪回数据库到时间戳(2008 年 9 月 16 日,00:00:00);
【解决方案3】:

根据我的经验,导入/导出可能是要走的路。导出创建数据库的逻辑快照,因此您不会发现它对大型数据库或严格的性能要求有用。然而,它非常适合制作快照以及不能在许多机器上使用的东西。

我在 Rails 项目中使用它来获取产品快照,我们可以在开发人员之间交换以进行集成测试,并且我们在 rake 脚本中完成了这项工作。我们编写了一个小的 sqlplus 脚本,它破坏了数据库,然后在顶部导入了转储文件。

您可能想要查看的一些文章: OraFAQ Cheatsheet Oracle Wiki

Oracle 显然不再喜欢 imp/exp 支持data pump,当我们使用数据泵时,我们需要我们无法拥有的东西(即我们无法在共享环境中获得的 SYSDBA 权限)。所以看看,但如果数据泵不是你的包,请不要灰心,旧的 imp/exp 仍然存在 :)

我不能为这种事情推荐 RMAN,因为 RMAN 需要进行大量设置并且需要在数据库中进行配置(它还有自己的目录数据库用于备份,这在众所周知的裸机还原中很痛苦)。

【讨论】:

    【解决方案4】:

    如果您使用支持写时复制快照的文件系统,您可以将数据库设置为您想要的状态。然后关闭一切并拍摄文件系统快照。然后进行您的测试,当您准备好重新开始时,您可以回滚快照。假设您有一个支持快照的文件系统,这可能比其他选项更简单。

    【讨论】:

    • 对不起,我应该更具体一点,我正在寻找一种可编写脚本的方式。我已经更新了问题。
    【解决方案5】:

    @Michael Ridley 解决方案完全可以编写脚本,并且适用于任何版本的 oracle。

    这正是我所做的,我有一个每周运行的脚本

    1. 回滚文件系统
    2. 应用生产归档日志
    3. 拍摄新的“Pre-Data-Masking”FS 快照
    4. 重置日志
    5. 应用“预生产”数据屏蔽。
    6. 拍摄新的“Post-Data-Masking”快照(允许回滚以发布已屏蔽的数据)
    7. 打开数据库

    这使我们能够将开发数据库与生产数据库保持一致。

    为此,我使用 ZFS。

    此方法也可用于您的应用程序,甚至您的整个“环境”(例如,您可以使用单个(脚本)命令“回滚”整个环境。

    如果您运行的是 10g,您可能首先要研究的是 Flashback,因为它内置在数据库中。

    【讨论】:

      猜你喜欢
      • 2012-07-29
      • 2020-02-25
      • 2011-01-13
      • 2010-11-28
      • 2020-02-12
      • 2012-04-29
      • 2020-03-15
      • 1970-01-01
      相关资源
      最近更新 更多