【问题标题】:Backup of Oracle database from .net through code通过代码从 .net 备份 Oracle 数据库
【发布时间】:2012-05-24 12:50:46
【问题描述】:

我想通过 .Net 代码备份或恢复我的 oracle 数据库。 我搜索了很多,但没有找到任何正确的解决方案。 就像我们通过执行查询在 SQL Server 中进行备份一样。

backup database :DatabaseName to disk = ':DestinationPath

我想在 Oracle 中做同样的事情。

【问题讨论】:

  • 我很确定 Oracle 手册会告诉你什么是正确的命令。
  • 您可以使用 Oracle 数据泵:oracle-base.com/articles/10g/oracle-data-pump-10g.php。您可能必须从控制台脚本执行此操作,而不是 Oracle 中的数据库脚本。
  • @mservidio:dataPump 也可以通过 SQL 启动。这是与(过时的)exp/imp 工具相比的最大优势

标签: c# .net sql oracle setup-project


【解决方案1】:

您可以使用诸如 exp/imp 或更新的 Oracle 数据泵之类的 Oracle 实用程序来创建数据库导出(备份),但您必须在数据库之外的命令行/终端窗口中执行这些操作。更多信息请参见:http://www.oracle-base.com/articles/10g/oracle-data-pump-10g.php

更新:我的立场已得到纠正。数据泵作业可以通过 PL/SQL 启动。谢谢@a-horse-with-no-NAME。

本文展示了如何从 sql 启动数据泵作业:http://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_api.htm#i1006925

【讨论】:

  • 可以使用dbms_datapump 包通过SQL 启动数据泵导出:docs.oracle.com/cd/B28359_01/appdev.111/b28419/…
  • @a_horse_with_no_name - 只是为了迂腐,您可以通过 PL/SQL 而不是 SQL 来启动 DataPump 导出作业,对(好吧,禁止使用自主事务并从 SQL 调用的函数)。
  • @JustinCave:是的,好点。但通常一个让你运行 SQL 的接口/驱动程序也会让你运行 PL/SQL。
【解决方案2】:

小心:DataPump 或 Exp 导出不是 真正的 Oracle 备份,您应该进行测试以确保您可以从您正在创建的 Dump 文件中恢复。 Oracle 与 SQL Server 的 BACKUP DATABASE 命令最接近的是 RMAN,即便如此,它也完全不同。但是从批处理文件调用非常有用。我同时是 SQL Server 和 Oracle 的 DBA,每个引擎执行备份的方式是最大的区别之一。 Exp 和 Imp 更类似于 SQL 的 bcp 命令(但更强大)。 Exp 不会备份您的 Controlfile 或 AchiveLogs,在发生灾难时您可能需要这些。使用 Exp,请确保使用 CONSISTENT=Y 选项(FLASHBACK_TIME 用于较新的 DataPump 导出)。 SQL Server 备份更直接,更容易恢复。

【讨论】:

    【解决方案3】:

    我找到了一种通过代码备份 oracle 数据库的简单方法。 我通过代码从用户那里获取凭据,并动态地制作 exp/imp 命令的批处理文件。 并使用进程类运行此批处理命令。

    感谢大家的回复。

    【讨论】:

      【解决方案4】:
      OledbCommand cmd=new OledbCommand ("backup database databasename to disk ='C:\databasename.bak'",con);
      
      con.open();
      
      cmd.ExecutenonQuery();
      
      con.close();
      

      【讨论】:

      • 这不是问题。 backup database 命令对 Oracle 无效。
      • 谢谢哥们。我知道了... :)
      • 这家伙正在为Oracle寻求帮助。
      猜你喜欢
      • 2020-02-12
      • 2022-06-16
      • 2014-01-25
      • 1970-01-01
      • 1970-01-01
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多