数据库导入过慢,可以由如下步骤和方面进行分析解决:
1、使用top查看当前导入源和导入目的机器的系统资源使用情况,看看是否CPU占用率太高,可用内存和Swap空间太小,或者使用vmstat查看磁盘的负荷是否很大?这些因素都有可能从系统的层面造成导入速度的瓶颈;
2、导出确认系统正常,资源充分后,就要检查Oracle的一些相关参数配置了。
首先确认所使用的dmp文件是正常无警告并可用的;源库和目的库的字符集都要一致;其次导入导出遵循的基本原则就是使用低版本(包括大版本,也包括小版本)的导入导出工具进行操作;如果能将数据库的归档关闭,也可以使速度得到提升;目的库的表空间(包括导入涉及到的用户表空间、临时表空间和undo表空间)是否够用。
3、导入语句也很重要。buffer给大一些,ignore=y buffer=40960000, 一秒至少应该是10w记录;先导表结构,再导数据(在源库中创建新的表空间和用户即可,没必要为用户创建表和各种约束条件、索引等等);必要的时候,加上commit=y参数(在回滚段够大的情况下,不用加commit=y参数,频繁提交会影响效率);如果是按用户导入,前后用户名不相同,那么注意要限制用户对表空间的使用配额;最后加入feedback选项,可以以一个点一个点的显示插入的行数,可以看出来是不是死了或者是不是很慢。
阅读(1674) | 评论(0) | 转发(0) |