我想通过.Net代码备份或恢复我的oracle数据库。 我搜索了很多,但没有找到任何正确的解决方案。 就像我们通过执行查询在SQL服务器中进行备份一样。
backup database :DatabaseName to disk = ':DestinationPath
我想在Oracle中做同样的事情。
答案 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();