http://rockingtechnology.blogspot.co.uk/2011/06/oracle-backup-and-restore-code-in-cnet.html
根据上文中提出的代码,更具体地说:
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "C:/oracle/product/10.2.0/db_1/BIN/exp.exe";
Process process = Process.Start(psi);
process.WaitForExit();
process.Close();
一旦调用Process.Start(psi)并因此执行exp.exe,我怎么能期望数据库受到来自其他地方的CRUD操作中断的影响?
使用Oracle的exp.exe进程 - 例如,当前写入相关数据库的所有用户的会话是否会被终止?我想(或者至少希望)没有,但是我找不到证明这一点的文件。
答案 0 :(得分:1)
你真的在问这个(旧的)Oracle export tool (exp
)对数据库有什么影响。这是一个逻辑备份,因此您可以通过与对数据库运行多个SELECT
查询相同的方式来考虑效果。也就是说,其他会话不会被杀死,但正常的锁定机制可能会阻止他们访问数据,直到exp
完成,这可能会导致超时。
答案 1 :(得分:1)
EXP
是原始导出实用程序。它已停产,不支持最新版本(11g)。
您可以改为使用EXPDP
,但导出文件是在服务器而不是客户端计算机上写的。
两个实用程序都向数据库发出标准SELECT
命令,并且由于读者不会干扰Oracle中的并发性(编写器不会阻止读取器,读者不会阻止读取器),这不会阻止您的其他数据库操作。
但是,由于它会发出语句,因此可能会增加资源使用量,尤其是IO,这可能会影响并发活动的性能。
无论您使用哪种工具,都应花一些时间了解这些选项(因为您可能希望将其用作逻辑副本,请确保您测试相应的导入工具IMP和IMPDP )。还有一句警告:这些工具不是备份工具。你不应该依赖它们进行备份。
答案 2 :(得分:1)
EXP和IMP不是正确的备份和恢复工具。它们用于在Oracle数据库之间交换数据和数据结构。对于他们的替换数据泵(EXPDP和IMPDP)也是如此。
将卸载导出到文件,这样就不会影响系统上的任何用户。但是,如果您需要一组一致的数据,则在有任何其他用户连接到系统时,您需要使用CONSISTENT = Y参数。
有趣的是,Data Pump没有CONSISTENT参数。它将表(或表分区)卸载为单个事务,但保证所有数据库对象一致性的唯一方法是使用FLASHBACK_SCN参数(或将所有用户踢出系统)。
“这都是DR的帮助。”
作为DR解决方案,这将起作用,具有以下附带条件。
还要记住导出统计数据和数据。