暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

如何针对Oracle并行运行我们的集成测试,每个测试都具有干净的状态

askTom 2018-02-02
192

问题描述

他有一堆与数据库交互的junit测试。众所周知,当您编写与db交互的测试时,您总是会遇到随机DB状态的问题,这会使这些类型的DB测试变得脆弱。我们的数据库非常大,有多个模式和许多存储的proc。我这样说是因为在每次测试之前简单地运行一个db干净的脚本对我们来说不是一个可行的选择。寻找更好的解决方案然后这个。

我们的部署:
-我们有3个oracle模式在同一数据库上运行

问题:
-需要一种快速的方法来将我们的模式恢复到设置状态。
-现在有1台服务器用我们的3个模式托管我们的oracle数据库。想要一种在给定的盒子上有这3个模式的许多实例的方法。也许是多个oracle数据库,或者在给定的Oracle数据库中有更好的方法来做到这一点。

目标:
-在给定的盒子上运行我们的3个oracle模式的许多实例。越多越好,因为我们的测试在oracle上的负载方面大多会变得非常容易。
-有一种方法可以快速将我们的数据库模式恢复到给定状态。




专家解答

“倒带” 数据库的最简单方法是使用闪回数据库。

在12c中,您可以将这些模式放入自己的可插拔数据库中,并在此级别进行闪回,但是由于您使用的是11g,因此您可以做的最好的事情就是整个数据库。

但你需要做的是:

测试开始前:
-创建保证的还原点ABC;

运行测试,收集数据:

测试后:
-将数据库置于挂载模式 (通常我会关机并重新启动,以确保我已经启动了任何连接)
-闪回数据库到ABC;
-打开数据库重置日志

您可以将一个实例的大小很小 (〜300MB的RAM),因此您应该能够在一个盒子上容纳许多实例。然后,您可以很好地设置12c中的可插拔数据库功能。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论