[英]Backup/Restore database for oracle 10g testing using sqlplus or rman
将 Oracle 10g 与我们的测试服务器一起使用,将数据库备份和还原到 static 点的最有效/最简单的方法是什么,假设您总是想要 Z34D1F91FB2E514B8576FAB1A75A 备份到 A9 点。
示例用例如下
理想情况下,这将通过 sqlplus 或 rman 或其他一些可编写脚本的方法来完成。
您无需在基准时间进行备份。 只需启用闪回数据库,创建保证还原点,运行测试并闪回到之前创建的还原点。
这样做的步骤是:
启动力安装;
创建还原点 before_test 保证闪回数据库;
更改数据库打开;
立即关机; 启动挂载;
闪回数据库到还原点 before_test;
更改数据库打开;
您可以使用 Oracle 中称为Flashback的功能,它允许您创建一个还原点,您可以在完成测试后轻松跳回该还原点。
引自网站,
闪回数据库就像您的数据库的“倒带按钮”。 它提供数据库时间点恢复,而无需首先恢复数据库的备份。 当您消除从磁带恢复数据库备份所需的时间时,数据库时间点恢复速度很快。
根据我的经验,导入/导出可能是通往 go 的方式。 导出创建数据库的逻辑快照,因此您不会发现它对大型数据库或严格的性能要求有用。 然而,它非常适合制作快照以及不能在许多机器上使用的东西。
我在 Rails 项目中使用它来获取产品快照,我们可以在开发人员之间交换以进行集成测试,并且我们在 rake 脚本中完成了这项工作。 我们编写了一个小的 sqlplus 脚本,它破坏了数据库,然后在顶部导入了转储文件。
您可能想要查看的一些文章: OraFAQ Cheatsheet Oracle Wiki
Oracle 显然不再喜欢 imp/exp 支持数据泵,当我们使用数据泵时,我们需要我们无法拥有的东西(即我们无法在共享环境中获得的 SYSDBA 权限)。 所以看看,但如果数据泵不是你的包,请不要灰心,旧的 imp/exp 仍然存在:)
我不能为这种事情推荐 RMAN,因为 RMAN 需要进行大量设置并且需要在数据库中进行配置(它也有自己的目录数据库用于备份,这在众所周知的裸机还原中很痛苦)。
如果您使用支持写时复制快照的文件系统,您可以将数据库设置为您想要的 state。 然后关闭一切并拍摄文件系统快照。 然后 go 关于您的测试,当您准备好重新开始时,您可以回滚快照。 假设您有一个支持快照的文件系统,这可能比其他选项更简单。
@Michael Ridley 解决方案完全可以编写脚本,并且适用于任何版本的 oracle。
这正是我所做的,我有一个每周运行的脚本
这使我们能够将我们的开发数据库保持在我们的生产数据库附近。
为此,我使用 ZFS。
此方法也可用于您的应用程序,甚至您的整个“环境”(例如,您可以使用单个(脚本)命令“回滚”整个环境。
但是,如果您运行的是 10g,那么您可能首先要研究的是 Flashback,因为它内置在数据库中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.