【问题标题】:run Oracle RMAN scripts as a single entry将 Oracle RMAN 脚本作为单个条目运行
【发布时间】:2015-12-26 02:56:16
【问题描述】:

我想通过 12c 中的 rman 设置运行 oracle 在线备份。我有 3 个脚本需要运行,它们是:

  • rman target sys@[db_name]/[db_password] nocatalog
  • configure channel device type disk clear;
  • RUN {   ALLOCATE CHANNEL c1 DEVICE TYPE DISK FORMAT 'C:\Users\Administrator\Documents\Backup\%U';   BACKUP DATABASE PLUS ARCHIVELOG; }

我希望能够通过 c#Process 对象将它们作为单个条目运行。我想使用命令行而不是批处理文件进行模拟。

所以,我查看了一些问题/答案,并使用&& 尝试组合命令,但效果不佳。它使用了前两个命令并将我连接到 RMAN 中心,但 RUN 命令没有执行(很可能是因为脚本的那部分中的 ;)。

EDIT* - 实际上只运行了第一个命令。第二个没有执行。

我的问题:有没有办法可以将这 3 个脚本项合并为 1 个以运行 c#Process.Start() 方法?

【问题讨论】:

  • 您是否尝试将命令放入命令文件或使用存储的脚本?
  • 我当时没有。我永远无法让它在 C#Process 中作为一行运行。最终将第二个和第三个存储在 .rman 文件中,将第一个存储在 .bat 文件中,该文件调用了 .rman 文件并且有效,所以我就这样做了。

标签: c# oracle command-line rman


【解决方案1】:

创建了两个不同的文件。

第一个文件是一个批处理文件,其中包含:

  • rman target sys@[db_name]/[db_password] runRman.rman

第二个是名为runRman.rman 的 RMAN 文件,其中包含:

  • configure channel device type disk clear;
  • RUN { ALLOCATE CHANNEL c1 DEVICE TYPE DISK FORMAT 'C:\Users\Administrator\Documents\Backup\%U'; BACKUP DATABASE PLUS ARCHIVELOG; }

c# 进程调用了批处理文件,而批处理文件又调用了 rman 文件,之后一切都为我工作。

【讨论】:

    猜你喜欢
    • 2010-12-18
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多