通过代码从.net备份Oracle数据库

时间:2012-05-24 12:50:46

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

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

backup database :DatabaseName to disk = ':DestinationPath

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

4 个答案:

答案 0 :(得分:5)

您可以使用Oracle实用程序(如exp / imp)或较新的Oracle Data Pump来​​创建数据库导出(备份),但必须在命令行/终端窗口中在数据库外部执行这些操作。有关详情,请参阅此处: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

启动数据泵作业

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

谢谢大家的回复。

答案 3 :(得分:-1)

OledbCommand cmd=new OledbCommand ("backup database databasename to disk ='C:\databasename.bak'",con);

con.open();

cmd.ExecutenonQuery();

con.close();