exp imp 命令使用问题汇总
2016-09-03 20:50
239 查看
exp imp 是数据库导出、导入常用的命令,但是经常会有一些怪异的问题让人很苦恼,今天我把我遇到过的问题在此记录,希望对于我有相同困惑的人有所帮助。
一版情况下我们都是从一台服务器上exp备份一个库,需要的时候imp到需要的数据库中。所以我们从exp开始。
一、exp
- exp 导出基本命令的写法
exp username/password@数据库 file=导出文件存放位置\文件名.dmp log=导出文件时的log文件位置\log文件名.txt
exp test/test@orcl file=D:\dmp\test.dmp log=D:\log\log.txt
注意:orcl 指的是你连接数据库的服务名。那么问题来了,如果没有配置服务名怎么办。exp text/text@192.168.1.211:1521/orcltest file=D:\test.dmp log=D:\log.txt
也就是说可以用ip:数据库端口号/数据库实例名 这种方式进行连接。
温情提示,这里的log路径必须存在。否则会报无法打开这个文件的错误。
- exp 空表并没有导出
从导出的log中可能会发现导出的表要少于导出用户所拥有的表,这是因为这个表是个空表。select t.SEGMENT_CREATED,t. * from user_tables t where num_rows = 0 or num_rows is null;
SEGMENT_CREATED 单独列出来正是因为它表示了表是否分配了segment,没有分配便导不出来。
其中TEST3便是空表,导出的时候是导不出来的。
此时就需要设置表,给表分配空间。alter table tableName allocate extent;
因为如果空表比较多,所以如何批量设置呢。select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows = 0 or num_rows is null;
将生成的批量设置语句一起执行。然后在执行导出语句便可导出空表了。 - 需要注意的就是导出前看看该用户表空间的名字,以便于导入的时候提前创建对应的表空间,否则会报表空间不存在无法导入。
select t.username,t.default_tablespace from dba_users t where t.username='TEST';
二、imp
-
导入前如果库中已经存在想要导入的用户需要先将这个用户删掉,提到删掉肯定会有人遇到提示该用户存在连接不让删。
这个时候就得先杀掉连接的会话。
select t.sid,t.serial# from V$session t where t.username='TEST'; 结果: sid serial# ---------- -------- 1 63 115 alter system kill session 'sid,serial#'; alter system kill session '63,115';
如果查出此用户存在很多会话那就批量删除吧。
select 'alter system kill session ',''''||trim(sid)||','||trim(serial#)||''';' from v$session where username='TEST'
批量杀掉会话后就可以删掉这个用户了,然后重新创建用户。以备导入使用
-
如果导出时发现需要特定的表空间,那么就得创建表空间
create tablespace Test datafile 'test.dbf' size 50M autoextend on next 1G;
-
imp 基本命令导入
imp test/test@orcl file=D:/test.dmp log=D:/log.txt fromuser=test touser=test full=y
exp imp 命令的基本用法,和导出、导入容易遇到的问题,希望对你有所帮助!
相关文章推荐
- ORACLE EXP/IMP的使用详解 (解决9i(window)导入到10G的乱码问题)
- 使用Oracle 的 imp ,exp 命令实现数据的导入导出
- oracleimp/exp命令使用
- oracle_imp/exp命令使用
- Oracle使用imp命令导入.dmp文件遇到的几个问题
- Oracle数据库exp/imp 命令使用
- Oracle 使用exp&imp备份恢复数据库空问题
- Oracle中使用expimp时涉及的字符集问题
- exp和imp命令使用
- Oracle数据导入导出(imp/exp)命令的使用
- Oracl的exp和imp命令使用详解
- 使用Oracle 的 imp ,exp 命令实现数据的导入导出
- 使用Oracle 的 imp ,exp 命令实现数据的导入导出
- 尽管使用了很多次impexp及impdpexpdp但是使用起来还是会遇到很多问题(转载他人的)
- Oracle 中用 imp 和 exp 命令导入导出数据库(附问题及解决办法)
- Oracle 11gR2 使用exp,imp命令导入与导出
- oracle11g r2版本使用exp命令导出时不能导出空表问题
- oracle数据库中使用imp和exp命令
- Oracle数据导入导出imp/exp命令使用
- Oracle 中用 imp 和 exp 命令导入导出数据库(附问题及解决办法)