我想通过.Net代码来备份或恢复我的oracle数据库。 我搜索了很多,但没有找到任何正确的解决方案。 像我们通过执行查询在SQL服务器中备份。从.net通过代码备份Oracle数据库
backup database :DatabaseName to disk = ':DestinationPath
同样我想在Oracle中做。
我想通过.Net代码来备份或恢复我的oracle数据库。 我搜索了很多,但没有找到任何正确的解决方案。 像我们通过执行查询在SQL服务器中备份。从.net通过代码备份Oracle数据库
backup database :DatabaseName to disk = ':DestinationPath
同样我想在Oracle中做。
我发现一个简单的方法把oracle数据库虽然代码的备份。 我通过代码从用户获取凭证并动态创建exp/imp命令的批处理文件。 并使用进程类运行此批处理命令。
谢谢大家的回复。
你能给我解决这个问题的代码吗 – GowthamanSS
您可以像使用EXP/IMP或较新的Oracle数据泵的Oracle工具创建数据库导出(备份),但是,你必须执行这些数据库之外,在命令行/终端窗口。有关详细信息,请参阅此处:http://www.oracle-base.com/articles/10g/oracle-data-pump-10g.php
更新:我站好了。数据泵作业可以通过PL/SQL启动。谢谢@马匹不带姓名。
本文介绍如何从SQL启动数据泵作业:http://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_api.htm#i1006925
您可以使用'dbms_datapump'软件包通过SQL启动数据泵导出:http://docs.oracle.com/cd/B28359_01/appdev.111/ b28419/d_datpmp.htm#i1007277 –
@a_horse_with_no_name - 只是为了迂回,您可以通过PL/SQL而不是SQL来启动DataPump导出作业(对于使用自治事务并从SQL中调用的函数,除外)。 –
@JustinCave:是的,好点。但是通常可以运行SQL的接口/驱动程序也可以运行PL/SQL。 –
OledbCommand cmd=new OledbCommand ("backup database databasename to disk ='C:\databasename.bak'",con);
con.open();
cmd.ExecutenonQuery();
con.close();
这不是问题。 Oracle备份数据库命令无效。 –
谢谢哥们..我知道了...... :) – Abhi
小心:a DataPump或Exp Export不是real Oracle备份,您应该测试以确保您可以从您正在创建的转储文件进行恢复。 Oracle对SQL Server的BACKUP DATABASE命令最接近的是RMAN,即便如此,情况也完全不同。但从批处理文件中调用是非常有用的。我既是SQL Server和Oracle的DBA,每个引擎执行备份的方式也是最大的差异之一。 Exp和Imp更类似于SQL的bcp命令(但功能更强大)。 Exp不会备份您的控制文件或AchiveLogs,并且在发生灾难时您可能需要这些文件。使用Exp时,确保使用CONSISTENT = Y选项(FLASHBACK_TIME用于更新的DataPump导出)。 SQL Server备份更直截了当,并且更容易恢复。
我很确定Oracle手册能够告诉你什么是正确的命令。 – Filburt
您可以使用Oracle Data Pump:http://www.oracle-base.com/articles/10g/oracle-data-pump-10g.php。您可能必须从控制台脚本执行此操作,而不是使用Oracle中的数据库脚本。 – mservidio
@mservidio:dataPump也可以通过SQL启动。这是(过时的)exp/imp工具的最大优势 –