oracle导入导出常见问题及解决方案
一、导出
1.导出命令 exp 用户名/密码@实例名 file=路径
2.出现问题:空表不能导出,
解决方案:
--查找空表
SELECT TABLE_NAME FROM USER_TABLES WHERE NUM_ROWS=0
--批量生成“构建针对空表分配空间的命令语句”
SELECT 'ALTER TABLE '||TABLE_NAME||' ALLOCATE EXTENT;' FROM USER_TABLES WHERE NUM_ROWS=0 OR NUM_ROWS IS NULL;
批量执行完上面生成的语句后重新导出便可以。
二、导入
1、
前期条件:用system 新建一个用户,赋予 connect dba权限。
遇见的问题:用这个用户在ob11 中已normal的权限可以登录成功,但是用pl/sql中用normal权限无法登录 提示“ora 01017 用户名 口令无效 登录被拒绝” 但是可以用dba的权限登录,
问题原因:解除了用户的锁定,
解决方案: 使用 system 重置改用过的密码(密码可以也修改前一直)
修改密码:alter user 用户名 identified by 新密码;
扩展:不知是不是pl/sql的bug???
2、
今天要导入一个人有别人发过来的数据库备份,结果出现如下问题:
百度了一下原因,主要是一个DBA用户权限问题,导出数据的用户拥有DBA权限,而我要导入的用户没有这个权限而已
解决的办法由两个,一个是把导出的用户DBA权限去掉,重新导出,另一个就是给要导入的用户加上DBA权限啊。我们在这边当然是要解决第二种了
方法如下:
先用 sqlplus,填写用户和密码,然后 grant dba to username;(username是用户名)
这样授权成功,在重新导入,即可
导入DMP步骤
cmd下 imp 用户名/密码@orcl file=路径\文件名.DMP full=y