我是靠谱客的博主 儒雅吐司,最近开发中收集的这篇文章主要介绍exp imp 命令使用问题汇总一、exp 二、imp  exp imp 命令的基本用法,和导出、导入容易遇到的问题,希望对你有所帮助!,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

        exp imp 是数据库导出、导入常用的命令,但是经常会有一些怪异的问题让人很苦恼,今天我把我遇到过的问题在此记录,希望对于我有相同困惑的人有所帮助。

        一版情况下我们都是从一台服务器上exp备份一个库,需要的时候imp到需要的数据库中。所以我们从exp开始。

 

一、exp

  1.  exp 导出基本命令的写法
    exp username/password@数据库 file=导出文件存放位置文件名.dmp log=导出文件时的log文件位置log文件名.txt
     
    exp test/test@orcl file=D:dmptest.dmp log=D:loglog.txt
    注意:orcl 指的是你连接数据库的服务名。那么问题来了,如果没有配置服务名怎么办。
    exp text/text@192.168.1.211:1521/orcltest file=D:test.dmp log=D:log.txt
     也就是说可以用ip:数据库端口号/数据库实例名   这种方式进行连接。

    温情提示,这里的log路径必须存在。否则会报无法打开这个文件的错误。


     
  2. 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;
     将生成的批量设置语句一起执行。然后在执行导出语句便可导出空表了。
  3. 需要注意的就是导出前看看该用户表空间的名字,以便于导入的时候提前创建对应的表空间,否则会报表空间不存在无法导入。
    select t.username,t.default_tablespace from dba_users t where t.username='TEST';
     

 二、imp 

  1. 导入前如果库中已经存在想要导入的用户需要先将这个用户删掉,提到删掉肯定会有人遇到提示该用户存在连接不让删。

     这个时候就得先杀掉连接的会话。
    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'
     批量杀掉会话后就可以删掉这个用户了,然后重新创建用户。以备导入使用
  2.  如果导出时发现需要特定的表空间,那么就得创建表空间
    create tablespace Test datafile 'test.dbf' size 50M autoextend on next 1G;
     
  3. imp 基本命令导入
    imp test/test@orcl file=D:/test.dmp log=D:/log.txt fromuser=test touser=test full=y
     

 exp imp 命令的基本用法,和导出、导入容易遇到的问题,希望对你有所帮助!

最后

以上就是儒雅吐司为你收集整理的exp imp 命令使用问题汇总一、exp 二、imp  exp imp 命令的基本用法,和导出、导入容易遇到的问题,希望对你有所帮助!的全部内容,希望文章能够帮你解决exp imp 命令使用问题汇总一、exp 二、imp  exp imp 命令的基本用法,和导出、导入容易遇到的问题,希望对你有所帮助!所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部