利用第三方工具进行数据库转移―导入导出、备份还原(二)

2014-11-24 09:44:17 · 作者: · 浏览: 1
数据库
这些脚本可以理解为数据库的备份,而且还不是不可修改的硬备份,而是随时可以查看修改任你处置的软备份。
脚本执行
接下来,就可以通过执行这些脚本来创建新的数据库。
1, 从菜单进入[脚本执行]界面
从右侧目录中选择脚本所在文件夹或脚本文件,需要执行的脚本文件或文件夹可以整体移动到左侧,作为脚本执行对象。
2, 点击[执行]按钮,在确认对话框中可以设置是否在执行后删除该脚本文件,是否在发生错误时中断处理。
这里特殊说一下,
在执行就很多脚本文件的时候经常因为错误而中断,绝大多数都是因为执行顺序的原因。
比如在创建VIEW的时候,他参照的TABLE还没有被创建,就会出错误。
这种情况下,我们选中[将正确完成的SCRIPT从列表中删除]的话,就可以反复执行,直到列表被清空时就说明所有脚本都被正确执行了。
如何选择用那种方式?
上面我们已经介绍了以DMP和脚本两种方式进行的导入导出。实际操作的时候,有人会问“我该用哪一种方法呢?“
我们把两种方法的优缺点总结一下:
最主要的区别就是二进制还是SQL文本。二进制存储,占用空间小;SQL文本形式查看编辑更方便。
如果数据库中存在LOB型的数据时(SQLServer为BINARY型),就只能使用DMP导入导出方式了。
但是,因为Oracle自身的导入导出功能并不保证向下兼容,因此当导入导出的两个数据库版本不同时经常发生问题。
SQLServer也有一样的版本兼容问题,“SQL Server2005向2008转移”的时候往往会发生错误。
因此当导出和导入的数据库版本不一致的时候,推荐使用脚本输出/脚本执行的方式进行。
关于DataPump
从Oracle10g开始,除了传统的exp/imp的DMP文件之外,家族里来了个新家伙,叫做DataPump(数据泵)。
自出生以来就备受争议,而经过实际使用发现,他与exp/imp并没有本质意义上的不同。
主要区别如下:
1,exp/imp是基于Oracle客户端的。而DataPump是基于Oracle服务端的。
在这一点上,它只解决了Oracle服务器端不需要装客户端的问题…却导致了DataPum导出的文件只能保存在服务器端。
为了解决这个尴尬的情况,Oracle让它支持了网络传输…
2,DataPump导出的数据虽然也是.dmp,但是他与exp/imp导出的.dmp文件并不完全兼容。
3,DataPump号称的支持并行线程,支持挂起重启,支持空间估算等…让高贵的,配置强大的Oracle服务器们情何以堪。
4,非要找出一个优点的话,那就是DataPump允许对导入导出对象进行版本控制,解决了上面说到的DMP版本向下不兼容的问题。
因为DataPump的基本使用方法与exp/imp几乎一样,只是在更多的参数上会有问题。