【问题标题】:Oracle: one or more scripts to provoke a failure on instanceOracle:一个或多个脚本引发实例失败
【发布时间】:2021-04-05 02:31:46
【问题描述】:

出于教育目的,我需要一个或多个脚本来引发当前 Oracle 实例(例如 orcl)的故障。这样我可以确定我的备份正在相应地工作。是的,我需要脚本..所以...在查询或类似奇怪的事情期间没有手动关闭我的计算机。

为了提供更多背景信息,我使用的是 19.x.x 版本的 oracle,并且主要使用 SQLPLUS 和 RMAN。

感谢您的宝贵时间。而且,如果我能得到不止一种类型的脚本,那就更好了。

编辑 1:

因为我被告知“离题”,所以我澄清一下。如果我参加“确认考试”,我想通过跳过整个学期来节省一笔财富。我要问的是班级“摘要”的一个要点(或目标)。它的字面意思是:“学生应该编写一个或多个脚本,以便实例失败并进行适当的备份”。

现在还没有收到老师的答复。

【问题讨论】:

  • 什么是“失败”?另外,问题是 off-topic 用于 SO
  • 如果重点是验证您的备份——这可以通过 RMAN 备份过程本身来完成——那么数据文件或其他文件如何损坏或丢失真的很重要如何 ? RMAN 不会就地修复文件,它会从备份集中替换它。只需删除一个文件,确定数据库已关闭和/或无法使用,然后从备份中恢复。根据经验,您的 RMAN 还原本质上是一个手动过程——设置还原点,观察过程以处理出现的任何错误;为什么必须编写失败场景的脚本?
  • 什么是失败? 不知道,我想得到同样的结果。但我想一个例子是在一个或多个表上插入数据时关闭实例的脚本;或通过重载实例产生错误;等等,但我坚持,我不确定。 为什么要编写脚本?这就是“课程摘要”所说的。
  • 请注意,您在此处获得的任何答案都将拥有CC BY-SA 4.0 的许可证,因此当您提交作业时,法律要求您在复制解决方案的地方提供这些答案的归属。

标签: oracle database-backups


【解决方案1】:

只需提出适当的例外情况:

DECLARE
  tns_listener_not_found EXCEPTION;
  PRAGMA EXCEPTION_INIT( tns_listener_not_found, -12154 );
BEGIN
  RAISE tns_listener_not_found;
END;
/

BEGIN
  RAISE_APPLICATION_ERROR( -20000, 'User specified error.' );
END;
/

【讨论】:

    【解决方案2】:

    只需编写一个删除系统数据文件的 SQL*Plus 脚本。数据库将失败,实例很可能也会失败。

    SELECT file_name FROM dba_data_files WHERE file_name LIKE '%system%';
    

    您将文件名存储在变量中并在操作系统上删除文件,例如在 Unix 上:

    rm /opt/oracle/oradata/.../system01.dbf
    

    HOST命令说明here,文件名here怎么存放,剩下的事情我相信你自己搞定!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-05
      • 2021-02-06
      相关资源
      最近更新 更多