尝试生成一些活动来生成存档

  • 本文关键字:活动 database oracle
  • 更新时间 :
  • 英文 :


我正在测试一些与Oracle DB 19c一起工作的备份实用程序,我试图生成一些存档日志,以便能够在一定大小后删除。

是否有一些方法可以通过人工创建负载来快速生成重做日志,以便将它们推送到归档日志?

生成重做的一种方法如下

  • 确保使用logging模式的表空间或使用logging选项创建的表。如果创建表空间时没有指定任何日志模式,则默认模式是日志模式。表也一样
  • 为避免存储问题,只需在每个主循环中截断表。
  • 确保你有足够的空间至少一个循环迭代,因此你不会得到任何错误。

在下面的示例中,我们将表空间置于force logging模式,尽管这不是必需的。然后我创建了一个只有三个字段的测试表,但是您可以使用任意多个字段,只要记住您至少需要一次迭代的存储空间。

我使用dbms_random生成随机字符串值。

例子
alter tablespace users force logging; -- if the tablespace has nologging 
create table x ( c1 number, c2 varchar2(50), c3 varchar2(50) ) logging tablespace users ; -- table in logging mode 
declare
num_loops pls_integer := 10; -- use as many iterations as you want. 
begin
for r in 1..num_loops
loop
for h in 1 .. 100000 -- I just define 100k for main loop to avoid undo issues
loop
insert into x values ( h , dbms_random.string('X',50), dbms_random.string('X',50) ) ;
end loop;
commit;
execute immediate ' truncate table x reuse storage ' ;
end loop;
end;
/

最新更新