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

本文关键字:备份 Oracle 数据库 net 代码 | 更新日期: 2023-09-27 18:35:17

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

backup database :DatabaseName to disk = ':DestinationPath

我想在甲骨文中做同样的事情。

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

您可以使用 Oracle 实用程序(如 exp/imp)或较新的 Oracle Data Pump 来创建数据库导出(备份),尽管您必须在数据库外部的命令行/终端窗口中执行这些导出(备份)。有关详细信息,请参阅以下内容:http://www.oracle-base.com/articles/10g/oracle-data-pump-10g.php

更新:我站正了。数据泵作业可以通过PL/SQL启动。谢谢@a无名马。

本文介绍如何从 sql 启动数据抽取作业: http://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_api.htm#i1006925

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

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

谢谢大家的回复。

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