由于工作需要,需要实现使用java程序控制备份整个oracle数据库(一个schme)以及将此备份restore。
在网上看到很多人的实现方式是:imp/exp;我想:exp确实能够将数据库对象全部以dmp文件的方式备份下来。但是‘恢复’时却需要将数据库所有对象全部删除。自己理解这种方式不好:
imp/exp本质上不是备份和恢复工具,而是一种导入导出工具,虽然它能完成功能,但是这不是他的本质工作。
当imp的时候需要删除所有对象,当数据库对象很多的时候操作很不方便。之前想过使用drop user cascade ,但是这样操作之后还需要重新创建用户并且进行赋权等操作,仍然不方便。
有经验的通知能否给提供一个比较正确的思路?感激不尽!
以前实现过一个运维系统,用java根据备份恢复策略动态生成shell脚本做的,可以参考下
oracle备份、恢复,正规方法是用rman,和java没什么关系,最多是java调用操作系统的shell脚本,然后执行rman的相关命令。