1

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

backup database :DatabaseName to disk = ':DestinationPath

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

4

4 回答 4

5

您可以使用诸如 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

于 2012-05-24T13:28:14.260 回答
1

小心: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 备份更直接,更容易恢复。

于 2012-07-25T09:40:07.397 回答
0

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

谢谢大家的回复。

于 2012-06-16T11:23:06.857 回答
-2
OledbCommand cmd=new OledbCommand ("backup database databasename to disk ='C:\databasename.bak'",con);

con.open();

cmd.ExecutenonQuery();

con.close();
于 2012-05-24T13:29:36.750 回答