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

C# 通过代码从.net备份Oracle数据库,c#,.net,sql,oracle,setup-project,C#,.net,Sql,Oracle,Setup Project,我想通过.Net代码备份或还原oracle数据库。 我找了很多,但没有找到正确的解决办法。 就像我们在SQL server中通过执行查询进行备份一样 backup database :DatabaseName to disk = ':DestinationPath 我想在Oracle中执行同样的操作。您可以使用Oracle实用程序(如exp/imp)或较新的Oracle Data Pump)来创建数据库导出(备份),尽管您必须在数据库之外的命令行/终端窗口中执行这些导出(备份)。有关更多信息,

我想通过.Net代码备份或还原oracle数据库。 我找了很多,但没有找到正确的解决办法。 就像我们在SQL server中通过执行查询进行备份一样

backup database :DatabaseName to disk = ':DestinationPath

我想在Oracle中执行同样的操作。

您可以使用Oracle实用程序(如exp/imp)或较新的Oracle Data Pump)来创建数据库导出(备份),尽管您必须在数据库之外的命令行/终端窗口中执行这些导出(备份)。有关更多信息,请参见此:

更新:我被纠正了。数据泵作业可以通过PL/SQL启动。谢谢你,一匹没有名字的马


本文介绍如何从sql启动数据泵作业:

您可以使用Oracle实用程序(如exp/imp)或较新的Oracle数据泵来创建数据库导出(备份),尽管您必须在命令行/终端窗口中的数据库外部执行这些导出(备份)。有关更多信息,请参见此:

更新:我被纠正了。数据泵作业可以通过PL/SQL启动。谢谢你,一匹没有名字的马


本文展示了如何从sql启动数据泵作业:

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


谢谢大家的回复。

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



感谢大家的回复。

小心:DataPump或Exp导出不是真正的Oracle备份,您应该进行测试,以确保可以从正在创建的转储文件还原。Oracle最接近SQL Server的备份数据库命令的是RMAN,尽管如此,它还是截然不同。但是从批处理文件调用是非常有用的。我是SQL Server和Oracle的DBA,每个引擎执行备份的方式是最大的区别之一。Exp和Imp与SQL的bcp命令更相似(但功能更强大)。Exp不会备份您的控制文件或AchiveLogs,在发生灾难时您可能需要这些。对于Exp,确保使用CONSISTENT=Y选项(对于较新的数据泵导出,闪回时间)。SQL Server备份更直接,更易于恢复。

小心:DataPump或Exp导出不是真正的Oracle备份,您应该进行测试以确保可以从正在创建的转储文件中恢复。Oracle最接近SQL Server的备份数据库命令的是RMAN,尽管如此,它还是截然不同。但是从批处理文件调用是非常有用的。我是SQL Server和Oracle的DBA,每个引擎执行备份的方式是最大的区别之一。Exp和Imp与SQL的bcp命令更相似(但功能更强大)。Exp不会备份您的控制文件或AchiveLogs,在发生灾难时您可能需要这些。对于Exp,确保使用CONSISTENT=Y选项(对于较新的数据泵导出,闪回时间)。SQL Server备份更直接,更易于恢复。

我确信Oracle手册将能够告诉您执行此操作的正确命令。您可以使用Oracle Data Pump:。您可能必须通过控制台脚本来执行此操作,而不是Oracle中的数据库脚本。@mservidio:dataPump也可以通过SQL启动。这是相对于(过时的)exp/imp工具的最大优势。我非常确信Oracle手册将能够告诉您对此的正确命令。您可以使用Oracle数据泵:。您可能必须通过控制台脚本来执行此操作,而不是Oracle中的数据库脚本。@mservidio:dataPump也可以通过SQL启动。这是相对于(过时的)exp/imp工具的最大优势。您可以使用
dbms\u datapump
包通过SQL启动数据泵导出:@a\u horse\u with_no\u name-只是为了学究,您可以通过PL/SQL而不是SQL启动数据泵导出作业,对不对(好吧,除非使用自治事务并从SQL调用的函数)@JustinCave:是的,说得好。但是,通常一个允许您运行SQL的接口/驱动程序也允许您运行PL/SQL。您可以使用
dbms\u datapump
包通过SQL启动数据泵导出:@a_horse\u with_no_name-只是为了学究,您可以通过PL/SQL而不是SQL启动数据泵导出作业,对吗(好吧,禁止使用自治事务并从SQL调用的函数)。@JustinCave:是的,这一点很好。但通常让您运行SQL的接口/驱动程序也会让您运行PL/SQL。这不是问题所在。
backup database
命令对Oracle无效。谢谢老兄..我知道了…:)这家伙在向Oracle寻求帮助。这不是问题所在。
backup database
命令对Oracle无效。谢谢。。我知道了……:)这家伙正在向Oracle寻求帮助。
OledbCommand cmd=new OledbCommand ("backup database databasename to disk ='C:\databasename.bak'",con);

con.open();

cmd.ExecutenonQuery();

con.close();