重置oracle数据库进行测试的最快方法

时间:2017-04-25 14:34:33

标签: oracle testing oracle11g automated-tests

我正在使用Oracle数据库对我的应用程序进行自动化测试,我希望在某些步骤之间重置/重新创建数据库。

哪种方法是重置Oracle数据库的最佳/最快方法?

1 个答案:

答案 0 :(得分:3)

由于您说要重置整个数据库,因此Flashback数据库可能就是您的工具。闪回数据库使用归档日志(因此您必须首先处于归档日志模式)和闪回日志,以便撤消数据库上的所有内容,以将数据库还原到特定时间点或命名还原点。

闪回日志设置是您配置保留时间(以分钟为单位)以及日志位置的最大大小。

配置快速恢复区以存储闪回日志:

alter system set db_recovery_file_dest='L:\Oracle\FRA' scope=both;
alter system set db_recovery_file_dest_size=100G scope=both;
alter system set db_flashback_retention_target = 1440 scope=both; --1 day

启用闪回数据库:

alter database flashback on;

创建一个还原点,它只不过是指向还原点时SCN的指针:

create restore point before_changes;

您可以根据需要创建任意数量的还原点,并且它们不会占用任何额外空间,因为它们仅仅是指针。也就是说,如果达到db_flashback_retention_target或db_recovery_file_dest_size参数(以先到者为准),恢复点将会滚动。

您可以通过创建闪回保证还原点来阻止这些还原点的滚动。但是,必须注意保证闪回数据库还原点,因为如果达到任一参数,您的数据库将无法访问(在这种情况下,您必须删除保证闪回数据库还原点,或者增加这些参数的值。

运行测试后,您可以通过以下方式闪回:

shutdown immediate;
startup mount;
flashback database to restore point before_changes;
alter database open resetlogs;

您可以从Oracle 11.2 docs了解闪回数据库和还原点。