精华内容
下载资源
问答
  • 导出数据库整库但是数据库整库大小在250G左右,通过exp system/password@...命令导出到20多G后停止增长,无任何报错,需要如何导出才能顺利通过exp命令完成导出,不接受expdp导出方式.
  • oracle11g数据库导入导出方法教程

    万次阅读 多人点赞 2018-03-04 15:03:09
    oracle11g数据库导入导出: ①:传统方式——exp(导出)和(imp)导入: ②:数据泵方式——expdp导出和(impdp)导入; ③:第三方工具——PL/sql Develpoer;一、什么是数据库导入导出oracle11g数据库的导入/导出,...

    oracle11g数据库导入导出:

    ①:传统方式——exp(导出)和(imp)导入:
    ②:数据泵方式——expdp导出和(impdp)导入;
    ③:第三方工具——PL/sql Developer;

    一、什么是数据库导入导出?
    oracle11g数据库的导入/导出,就是我们通常所说的oracle数据的还原/备份。
    数据库导入:把.dmp 格式文件从本地导入到数据库服务器中(本地oracle测试数据库中);
    数据库导出:把数据库服务器中的数据(本地oracle测试数据库中的数据),导出到本地生成.dmp格式文件。
    .dmp 格式文件:就是oracle数据的文件格式(比如视频是.mp4 格式,音乐是.mp3 格式);

    二、二者优缺点描述:
    1.exp/imp:
    优点:代码书写简单易懂,从本地即可直接导入,不用在服务器中操作,降低难度,减少服务器上的操作也就                                         保证了服务器上数据文件的安全性。
    缺点:这种导入导出的速度相对较慢,合适数据库数据较少的时候。如果文件超过几个G,大众性能的电                                       脑,至少需要4~5个小时左右。
    2.expdp/impdp:
    优点:导入导出速度相对较快,几个G的数据文件一般在1~2小时左右。
    缺点:代码相对不易理解,要想实现导入导出的操作,必须在服务器上创建逻辑目录(不是真正的目录)。我们                                       都知道数据库服务器的重要性,所以在上面的操作必须慎重。所以这种方式一般由专业的程序人员来完                                           成(不一定是DBA(数据库管理员)来干,中小公司可能没有DBA)。
    3.PL/sql Develpoer:
    优点:封装了导入导出命令,无需每次都手动输入命令。方便快捷,提高效率。
    缺点:长时间应用会对其产生依赖,降低对代码执行原理的理解。

    三、特别强调:
    目标数据库:数据即将导入的数据库(一般是项目上正式数据库);
    源数据库:数据导出的数据库(一般是项目上的测试数据库);
    1.目标数据库要与源数据库有着名称相同的表空间。
    2.目标数据在进行导入时,用户名尽量相同(这样保证用户的权限级别相同)。
    3.目标数据库每次在进行数据导入前,应做好数据备份,以防数据丢失。
    4.使用数据泵时,一定要现在服务器端建立可用的逻辑目录,并检查是否可用。
    5.弄清是导入导出到相同版本还是不同版本(oracle10g版本与oracle11g版本)。
    6.目标数据导入前,弄清楚是数据覆盖(替换),还是仅插入新数据或替换部分数据表。
    7.确定目标数据库磁盘空间是否足够容纳新数据,是否需要扩充表空间。
    8.导入导出时注意字符集是否相同,一般Oracle数据库的字符集只有一个,并且固定,一般不改变。
    9.导出格式介绍:
       Dmp格式:.dmp是二进制文件,可跨平台,还能包含权限,效率好; 
       Sql格式:.sql格式的文件,可用文本编辑器查看,通用性比较好,效率不如第一种,
    适合小数据量导入导出。尤其注意的是表中不能有大字段 (blob,clob,long),如果有,会报错; 
       Pde格式:.pde格式的文件,.pde为PL/SQL Developer自有的文件格式,只能用PL/SQL Developer工具
    导入导出,不能用文本编辑器查看;
    10.确定操作者的账号权限。

    四、二者的导入导出方法:
    1、传统方法:
    通用命令:exp(imp)  username/password@SERVICENAME:1521 file="e:\temp.dmp" full = y;
    数据库导出举例:

    exp xinxiaoyong/123456@127.0.0.1:1521 file="e:\temp.dmp" full = y;

    exp:导出命令,导出时必写。
    imp:导入命令,导入时必写,每次操作,二者只能选择一个执行。
    username:导出数据的用户名,必写;
    password:导出数据的密码,必写;
    @:地址符号,必写;
    SERVICENAME:Oracle的服务名,必写;
    1521:端口号,1521是默认的可以不写,非默认要写;
    file="e:\temp.dmp" : 文件存放路径地址,必写;
    full=y :表示全库导出。可以不写,则默认为no,则只导出用户下的对象;
    方法细分:
    1.完全导入导出:
    exp(imp)  username/password@SERVICENAME:1521 file="e:\temp.dmp" full = y;
    2.部分用户表table导入导出:
    exp(imp)  username/password@SERVICENAME:1521 file="e:\temp.dmp" tabels=                                                                  (table1,table2,table3,...);
    3.表空间tablespaces导入导出:
    //一个数据库实例可以有N个表空间(tablespace),一个表空间下可以有N张表(table)。
    exp(imp)  username/password@SERVICENAME:1521 file="e:\temp.dmp" tablespaces=                                                         (tablespace1,tablespace2,tablespace3,...);
    4.用户名username对象导入导出:
    exp(imp)  username/password@SERVICENAME:1521 file="e:\temp.dmp"                                                                                owner(username1,username2,username3);

    2、数据泵方法:
    创建directory:
    expdp(impdp) username/password@SERVICENAME:1521 schemas=username                                                                       dumpfile=file1.dmp logfile=file1.log directory=testdata1 remap_schema=test:test;
    数据库导出举例:
    expdp xinxiaoyong/123456@127.0.0.1:1521 schemas=xinxiaoyong dumpfile=test.dmp 
    logfile=test.log directory=testdata1;

    exp:导出命令,导出时必写。
    imp:导入命令,导入时必写,每次操作,二者只能选择一个执行。
    username:导出数据的用户名,必写;
    password:导出数据的密码,必写;
    @:地址符号,必写;
    SERVICENAME:Oracle的服务名,必写;
    1521:端口号,1521是默认的可以不写,非默认要写;
    schemas:导出操作的用户名;
    dumpfile:导出的文件;
    logfile:导出的日志文件,可以不写;
    directory:创建的文件夹名称;
    remap_schema=源数据库用户名:目标数据库用户名,二者不同时必写,相同可以省略;
    1.查看表空间:
    select * from dba_tablespaces;
    2.查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存                                                    在,则出错)。
    select * from dba_directories;
    3.创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。 
    create directory testdata1 as 'd:\test\dump';
    4.给xinxiaoyong用户赋予在指定目录的操作权限,最好以system等管理员赋予。
    //xinxiaoyong 是用户名(123456是用户密码)
    grant read,write on directory testdata1 to xinxiaoyong;
    5.导出数据

    1)按用户导 expdp xinxiaoyong/123456@orcl schemas=xinxiaoyong                                                                                           dumpfile=expdp.dmp directory=testdata1;

    2)并行进程parallel expdp xinxiaoyong/123456@orcl directory=testdata1                                                                                    dumpfile=xinxiaoyong3.dmp parallel=40 job_name=xinxiaoyong3
    3)按表名导 expdp xinxiaoyong/123456@orcl tables=emp,dept dumpfile=expdp.dmp                                                                directory=testdata1;
    4)按查询条件导 expdp xinxiaoyong/123456@orcl directory=testdata1                                                                                            dumpfile=expdp.dmp tables=emp query='WHERE deptno=20';
    5)按表空间导 expdp system/manager directory=testdata1 dumpfile=tablespace.dmp                                                                    tablespaces=temp,example;
    6)导整个数据库 expdp system/manager directory=testdata1 dumpfile=full.dmp FULL=y;
    6.还原数据
    1)导到指定用户下 impdp xinxiaoyong/123456 directory=testdata1 dumpfile=expdp.dmp                                                              schemas=xinxiaoyong;
    2)改变表的owner impdp system/manager directory=testdata1 dumpfile=expdp.dmp                                                               tables=xinxiaoyong.dept remap_schema =xinxiaoyong:system;
    3)导入表空间 impdp system/manager directory=testdata1 dumpfile=tablespace.dmp                                                         tablespaces=example;
    4)导入数据库 impdb system/manager directory=dump_dir dumpfile=full.dmp FULL=y;
    5)追加数据 impdp system/manager directory=testdata1 dumpfile=expdp.dmp                                                         schemas=system  table_exists_action;

    3、PLSQL方法:
    登录plsql工具,所使用用户为源数据库有导出权限(exp_full_database,dba等)的用户。 
      1.导出建表语句(包括存储结构) 

      导出步骤tools ->export user object,选择要导出的对象,导出.sql格式文件并等待导出完成,如 下图:

                                                

    导出数据文件 ;
       2.导出步骤tools ->export tables,选择要导出的表及导出的格式进行导出。 

       导出为dmp格式,如下图:

    导出为sql格式,如下图: 

    导出为pde格式,如下图: 

                提示说明:采用第三方工具导出导入整个数据库的话,耗时较长,一定要有足够

                            的时间来操作(数据量大的话需要好几个小时)。

    3.导入建表语句 
       导入步骤tools->import tables->SQL Inserts 导入.sql文件 
    4.导入数据; 
       tools->import talbes,然后再根据导出的数据格式选择导入dmp文件,或者sql文件,
    或者pde文件。 
       提示说明:导入之前最好把以前的表删除,当然导入另外数据库除外。 
          另外导入时当发现进度条一直卡在一个点,而且导出的文件不再增大时,甚至是提示程序
    未响应,千万不要以为程序卡死了,这个导入导出就是比较缓慢,只要没有提示报错,

    或者导入完成就不要停止程序。

    提示:创建数据库,表空间这里略过,本文主要讨论数据的导入导出,如果对此感觉稍有遗漏,尽请见谅。由于水平有限,本文档仅提供参考。如代码有错误之处,请见谅。如果有更好的开发经验,感谢回复。谢谢观看!!!;

    展开全文
  • 一、Oracle数据库几种启动方式 1、startup nomount  非安装启动,这种方式下启动可执行:重建控制文件、重建数据库,读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。 2、...

    一、Oracle数据库几种启动方式

    1、startup nomount

      非安装启动,这种方式下启动可执行:重建控制文件、重建数据库,读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。

    2、startup mount (dbname)

      安装启动,这种方式启动下可执行:数据库日志归档、数据库介质恢复、使数据文件联机或脱机、重新定位数据文件、重做日志文件。

      执行“nomount”,然后打开控制文件,确认数据文件和联机日志文件的位置,但此时不对数据文件和日志文件进行校验检查。

    3、startup open (dbname)

      先执行“nomount”,然后执行“mount”,再打开包括Redo log文件在内的所有数据库文件,这种方式下可访问数据库中的数据。

    4、startup 等于以下三个命令

      startup nomount

      alter database mount

      alter database open

    5、startup restrict

      约束方式启动,这种方式能够启动数据库,但只允许具有一定特权的用户访问,非特权用户访问时,会出现以下提示:

      ERROR:ORA-01035: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用

    6、startup force

      强制启动方式,当不能关闭数据库时,可以用startup force来完成数据库的关闭,先关闭数据库,再执行正常启动数据库命令

    7、startup pfile=参数文件名

      带初始化参数文件的启动方式,先读取参数文件,再按参数文件中的设置启动数据库

      例:startup pfile=E:\Oracle\admin\oradb\pfile\init.ora

    8、startup EXCLUSIVE

      独占和共享启动

     

    二、Oracle三种关闭方式

    1、shutdown normal
      正常方式关闭数据库

    2、shutdown immediate

      立即方式关闭数据库,在SVRMGRL中执行shutdown immediate,数据库并不立即关闭,而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),当使用

      shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。

    3、shutdown abort

      直接关闭数据库,正在访问数据库的会话会被突然终止,如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间。

     


     

    三、详解

      Oracle数据库提供了几种不同的数据库启动和关闭方式,本文将具体介绍这些启动和关闭方式之间的区别以及它们各自不同的功能。

      一、启动和关闭Oracle数据库

        对于大多数Oracle DBA来说,启动和关闭Oracle数据库最常用的方式就是在命令行方式下的Server Manager。从Oracle 8i以后,系统将Server Manager的所有功能都

      集中到了SQL*Plus中,也就是说从8i以后对于数据库的启动和关闭可以直接通过SQL*Plus来完成,而不再另外需要Server Manager,但系统为了保持向下兼容,依旧保留了

      Server Manager工具。另外也可通过图形用户工具(GUI)的Oracle Enterprise Manager来完成系统的启动和关闭,图形用户界面Instance Manager非常简单,这里不再

      详述。要启动和关闭数据库,必须要以具有Oracle 治理员权限的用户登陆,通常也就是以具有SYSDBA权限的用户登陆。一般我们常用INTERNAL用户来启动和关闭数据库

      (INTERNAL用户实际上是SYS用户以SYSDBA连接的同义词)。Oracle数据库的新版本将逐步淘汰INTERNAL这个内部用户,所以我们最好还是设置DBA用户具有SYSDBA

      权限。

      二、数据库的启动(STARTUP)

      启动一个数据库需要三个步骤:

      1、 创建一个Oracle实例(非安装阶段)

      2、 由实例安装数据库(安装阶段)

      3、 打开数据库(打开阶段) 

      在Startup命令中,可以通过不同的选项来控制数据库的不同启动步骤。

      1、STARTUP NOMOUNT

      NONOUNT选项仅仅创建一个Oracle实例。读取init.ora初始化参数文件、启动后台进程、初始化系统全局区(SGA)。Init.ora 文件定义了实例的配置,包括内存结构的大小

      和启动后台进程的数量和类型等。实例名根据Oracle_SID设置,不一定要与打开的数据库名称相同。当实例打开后,系统将显示一个SGA内存结构和大小的列表,如下所示:

      SQL> startup nomount
        ORACLE 例程已经启动。
        Total System Global Area 35431692 bytes
        Fixed Size 70924 bytes
        Variable Size 18505728 bytes
        Database Buffers 16777216 bytes
        Redo Buffers 77824 bytes

      2、STARTUP MOUNT

      该命令创建实例并且安装数据库,但没有打开数据库。Oracle系统读取控制文件中关于数据文件和重作日志文件的内容,但并不打开该文件。这种打开方式常在数据库维护操

      作中使用,如对数据文件的更名、改变重作日志以及打开归档方式等。在这种打开方式下,除了可以看到SGA系统列表以外,系统还会给出\"数据库装载完毕\"的提示。

      3、STARTUP

      该命令完成创建实例、安装实例和打开数据库的所有三个步骤。此时数据库使数据文件和重作日志文件在线,通常还会请求一个或者是多个回滚段。这时系统除了可以看到前

      面Startup Mount方式下的所有提示外,还会给出一个\"数据库已经打开\"的提示。此时,数据库系统处于正常工作状态,可以接受用户请求。假如采用STARTUP NOMOUNT

      或者是STARTUP MOUNT的数据库打开命令方式,必须采用ALTER DATABASE命令来执行打开数据库的操作。例如,假如你以STARTUP NOMOUNT方式打开数据库,也就

      是说实例已经创建,但是数据库没有安装和打开。这是必须运行下面的两条命令,数据库才能正确启动。

        ALTER DATABASE MOUNT;
        ALTER DATABASE OPEN;

      而假如以STARTUP MOUNT方式启动数据库,只需要运行下面一条命令即可以打开数据库:

      ALTER DATABASE OPEN.

      4、其他打开方式

      除了前面介绍的三种数据库打开方式选项外,还有另外其他的一些选项。

      (1) STARTUP RESTRICT

      这种方式下,数据库将被成功打开,但仅仅答应一些特权用户(具有DBA角色的用户)才可以使用数据库。这种方式常用来对数据库进行维护,如数据的导入/导出操作时不希

      望有其他用户连接到数据库操作数据。

      (2) STARTUP FORCE

      该命令其实是强行关闭数据库(shutdown abort)和启动数据库(startup)两条命令的一个综合。该命令仅在关闭数据库碰到问题不能关闭数据库时采用。

      (3) ALTER DATABASE OPEN READ ONLY;

      该命令在创建实例以及安装数据库后,以只读方式打开数据库。对于那些仅仅提供查询功能的产品数据库可以采用这种方式打开。

    展开全文
  • oracle之——oracle数据库数据导入导出步骤(入门)

    万次阅读 多人点赞 2017-04-18 16:38:59
    oracle数据库数据导入导出步骤(入门)说明: 1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL 2.如果熟悉命令,建议用exp/imp命令导入导出,避免第三方工具...

    oracle数据库数据导入导出步骤(入门)

    说明:
    1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL
    2.如果熟悉命令,建议用exp/imp命令导入导出,避免第三方工具版本差异引起的问题,同时效率更高,但特别注意:采用命令时要注意所使用的用户及其权限等细节。
    3.在目标数据库导入时需要创建与导出时相同的用户名(尽量一致),并赋予不低于导出时用户的权限;同时还需创建与原数据库相同的表空间名,若本地数据库已存在相同的表空间,则只能进行表空间扩充。

    一、导入前准备工作(在目标数据库操作)

    知识补充:
    表空间
      Oracle数据库是通过表空间来存储物理表的,一个数据库实例可以有N个表空间,一个表空间下可以有N张表。
      表空间(tablespace)是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。为了便于管理和提高运行效率,可以使用一些附加表空间来划分用户和应用程序。例如:USER表空间供一般用户使用,RBS表空间供回滚段使用。一个表空间只能属于一个数据库。

    1. 登录服务器

     用Xshell或者secureCRT工具都可

    2. 查询磁盘空间是否足够大

     执行df -h或者df -H命令进行查询,若可用空间不足则更换新的目标环境再继续其他操作。

    [oracle@orac ~]$ df -h
    

    3. 查询表空间详情

     ①使用终端登录,依次执行命令:

     在/home/oracle/app/oradata 目录下新建一个文件夹,后面创建表空间需要用到,该路径不唯一,根据目标数据库存放数据文件位置而定。

     [oracle@orac ~]$  /home/oracle/app/oradata  
     [oracle@orac ~]$  mkdir snail
    

      ②登录数据库

     (注意/与as之间要有空格)
      [oracle@orac ~]$ sqlplus / as sysdba 
              			
    

       执行sql语句

    SQL> select a.tablespace_name,a.bytes/1024/1024 "sum MB",  (a.bytes-b.bytes)/1024/1024 "used MB",b.bytes/1024/1024 "free MB",round (((a.bytes-b.bytes)/a.bytes)*100,2) "used%" from (select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a, (select tablespace_name,sum(bytes) bytes,max (bytes) largest from dba_free_space group by tablespace_name)b where a.tablespace_name=b.tablespace_name order by ((a.bytes-b.bytes)/a.bytes) desc;
    

    即可得到当前数据库的表空间情况,如下图:

    这里写图片描述

      也可以通过第三方工具登录数据库执行上述sql语句(以下几步也同样可以)
    注: 如果要导入的数据库表空间名与当前已有表空间名相同,则无需新建表空间(也不可以再建),但是必须确定已有表空间大小充足,或者已经设置为自动增加并且自动增加的最大值足够大,那么就不需要进行表空间扩充,直接使用该表空间级即可,跳过第四步。
     反之如果没有该名称的表空间,或者表空间大小不足以存放要导入的数据时,需要对该表空间进行扩充,执行第四步。

    4. 表空间扩充

     对表空间进行扩充有多种方法,简单介绍其中几个常用方法:
     ① 直接增大表空间的大小:
       先查看表空间中数据文件存放的位置

    SQL> select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name;
    

      确定数据文件位置后,执行命令:
      alter database datafile ‘数据文件路径’ resize 要增大的大小
      例如:

    SQL> alter database datafile '/home/oracle/oradata/SPS_DATA.DBF' resize 4000m
    

       注意:此法在增大存在表数据的表空间时会报错,提示增加失败,建议用下一种方法
     ② 增加数据文件的个数
      alter tablespace 表空间名 add datafile ‘新增加的数据文件路径’ size 数据文件的大小
      例如:

    SQL> alter tablespace SPS_DATA add datafile '/home/oracle/app/oradata/snail/SPS_DATA02.dbf' size 2000m 
    

     ③ 设置表空间自动扩展
      alter database datafile ‘要扩展的表空间’ autoextend on next 扩展单元大小 maxsize 最大扩展大小
      例如:

    SQL> alter database datafile '/home/oracle/app/oradata/snail/SPS_DATA.dbf' autoextend on next 100m maxsize 10000m
    

    备注:方法可以结合使用,尤其当不确定导入文件最终大小时建议使用,如:

    SQL> alter tablespace SPS_DATA add datafile '/home/oracle/app/oradata/snail/SPS_DATA02.dbf' size 2000m autoextend on next 200M maxsize 12000M;
    
    

      对表空间扩充之后可再次执行3.步中查看表空间大小的sql,确认表空间扩充成功。

    5. 创建临时表空间与数据表空间

     创建用户前必须要先创建临时表空间和数据库表空间两个表空间,否则用系统默认的表空间,会引起其他问题。
     ①创建临时表空间
      create temporary tablespace 临时表空间名 tempfile ‘临时表空间位置’ size 临时表空间大小autoextend on next 100m maxsize 10240m extent management local;
      例如:

    SQL> create temporary tablespace SPS_DATA_temp tempfile'/home/oracle/app/oradata/snail/SPS_DATA_temp.dbf' size 1024m autoextend on next 100m maxsize 10240m extent management local;
    

     ②创建数据表空间
      参数大致同创建临时表空间
      例如:

    SQL> create tablespace SPS_DATA logging datafile'/home/oracle/app/oradata/snail/SPS_DATA01.dbf' size 1024m autoextend on next 100m maxsize 10240m extent management local;
    

      注意:如果是执行4.步之后,即表空间为扩充而来而不是新建的,则不需要创建数据表空间(但是临时表空间还需要创建——个人观点)

    6. 创建数据库用户并指定表空间

      该用户用于管理即将导入的数据,导入时也切换到该用户进行导入操作(如果用imp命令进行导入,最好此用户名与导出时采用的用户名为同样的用户名,不同的话可能还需要做映射),格式为:
      create user 用户名identified by 用户密码default tablespace 所指定的表空间名 temporary tablespace 临时表空间名;
      例如:

    SQL> create user abc identified by ABC default tablespace SPS_DATA temporary tablespace SPS_DATA_temp;
    

    7. 赋予用户权限

     因为要用该用户进行导入操作,故应给予用户的权限至少包括dba、IMP_FULL_DATABASE权限,也有人建议应与导出数据库数据时用户的权限一致。
     授权sql:(视具体情况而定)

    grant dba,imp_full_database,exp_full_database,connect,resource,create session to 用户名;
    

     例如:

    SQL> grant create user,drop user,alter user ,create any view ,drop any view,exp_full_database,imp_full_database,dba,connect,resource,read,write,create session to abc;
    

    二、采用exp/imp命令

    知识扩充:
     数据泵导出导入(EXPDP和IMPDP)的作用
      1、实现逻辑备份和逻辑恢复。
      2、在数据库用户之间移动对象。
      3、在数据库之间移动对象
      4、实现表空间搬移。
     数据泵导出导入与传统导出导入的区别:
      在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IMPDP时应该注意的事项:
      EXP和IMP是客户段工具程序,它们既可以在客户端使用,也可以在服务器段使用。
       EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用
      IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件。

    1. 导出命令

     导出与导入分别都有三种方式:
     ①完全模式导出(导入):
      将整个数据库内容导出,但是操作时需要有特殊权限,
      exp 用户名/密码buffer=32000file=导出的目录 full=y
      例如:

    exp system/manager buffer=32000 file=d:\iom.dmp full=y 
    

     ②用户模式导出(导入)
      将指定用户的所有对象进行导出,例如:

     exp iom/iom   buffer=32000 file=d:\iom.dmp owner=iom
    

     ③表模式导出(导入)
      将用户的所有表数据进行导出,例如:

    exp iom/iom    buffer=32000 file=d:\iom.dmp owner=iom tables=(iom) 
    

    备注:可以执行exp help=y、imp help=y查看帮助命令,以及执行exp或者imp查看对应版本号。

    导出步骤:
     首先切换到oracle用户(数据库超级管理员)

    [oracle@orac ~]$ su - oracle   
    

     根据所需要采用的导出模式进行导出

    [oracle@orac~]$exp iom/iom file=iom.dmp log=oradb.log full=y compress=y direct=y   
    

      COMPRESS参数将在导出的同时合并碎块,尽量把数据压缩到initial的EXTENT里,默认是N,一般建议使用。DIRECT参数将告诉EXP直接读取数据,而不像传统的EXP那样,使用SELECT来读取表中的数据,这样就减少了SQL语句处理过程。一般也建议使用。不过有些情况下DIRECT参数是无法使用的。
    其他参数可参照帮助命令,或者其他资料进行学习。在此不一一赘述。

    2. 导入命令

     登录服务器,切换到oracle用户。

    [oracle@orac ~]$ su - oracle 
    

     执行导入命令:
      导入时需要用准备工作中创建的新用户,如:用户名abc,密码ABC
      imp 用户名/密码 file=dmp文件路径 log=输出日志路径full=y ignore=y;
      例如:

    [oracle@orac ~]$imp abc/ABC file=/home/oracle/iom.dmp log=/home/oracle/iom.log full=y ignore=y;
    

    温馨提示:采用数据泵导入过程经常会遇到问题,建议多查阅资料,总有方法解决。相信每一件事物都有它存在的必要性,问题只是暂时的,成功才是必然的!

    三、采用第三方工具(以PLSQL为例)

    1. 导出格式介绍

     ① Dmp格式:.dmp是二进制文件,可跨平台,还能包含权限,效率好,
     ② Sql格式:.sql格式的文件,可用文本编辑器查看,通用性比较好,效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段 (blob,clob,long),如果有,会报错
     ③ Pde格式:.pde格式的文件,.pde为PL/SQL Developer自有的文件格式,只能用PL/SQL Developer工具导入导出,不能用文本编辑器查看。
    备注: 虽然dmp格式为最优选,但是不容易实现,原因有俩点:首先此格式需要安装oracle完整版,因为导出时需要选择对应exp.exe与imp.exe,而且导出是安装的版本要与要导出数据的数据库版本一致,同理导入时也要对应,否则会出现版本不一致的问题(查阅资料中介绍的,个人没有证实);其次此格式的导出经常会遇到导出过程一闪而过,但是导出不成功的情况,原因未知(可以查阅环境变量配置ORACLE_HOME配置正确,个人尝试多次,仍有问题,最后无奈选取导出为pde格式)。

    2. 导出方法

    登录plsql工具,所使用用户为源数据库有导出权限(exp_full_database,dba等)的用户。
     ①导出建表语句(包括存储结构)
     导出步骤tools ->export user object,选择要导出的对象,导出.sql文件,如下图:
    这里写图片描述
      等待导出完成

     ②导出数据文件
      导出步骤tools ->export tables,选择要导出的表及导出的格式进行导出。
      导出为dmp格式,如下图:

    这里写图片描述

      导出为sql格式,如下图:

    这里写图片描述

      导出为pde格式,如下图:

    这里写图片描述
    备注:采用第三方工具导出导入整个数据库的话,耗时较长,一定要有足够的时间来操作(数据量大的话需要好几个小时)

    3. 导入方法

    登录plsql工具,使用之前准备工作所创建的用户。
     步骤类似导出方法
     ①导入建表语句
      导入步骤tools->import tables->SQL Inserts 导入.sql文件
     ②导入数据
       tools->import talbes,然后再根据导出的数据格式选择导入dmp文件,或者sql文件,或者pde文件。
      备注:导入之前最好把以前的表删除,当然导入另外数据库除外。
         另外导入时当发现进度条一直卡在一个点,而且导出的文件不再增大时,甚至是提示程序未响应,千万不要以为程序卡死了,这个导入导出就是比较缓慢,只要没有提示报错,或者导入完成就不要停止程序。




    参考文献:

    1. Oracle - 数据库的实例、表空间、用户、表之间关系:
      http://www.cnblogs.com/adforce/p/3312252.html
      2.PL/SQL Developer导入导出数据库方法:
      http://jingyan.baidu.com/article/d5a880eb69ff7313f047cc5f.html
      3.linux下创建oracle表空间:
      http://blog.sina.com.cn/s/blog_62192aed01018aep.html
      4.plsql连接64位数据库及plsql导出表闪现错误:
      http://201405221449.iteye.com/blog/2241714
      5.oracle安装包官网下载:
      http://www.oracle.com/technetwork/topics/winsoft-085727.html
      6.ORACLE 表空间扩展方法:
      http://www.2cto.com/database/201110/109669.html
      7.Exp/imp命令详解:
      http://blog.csdn.net/caijing3210/article/details/7528788
      http://www.cnblogs.com/yugen/archive/2010/07/25/1784763.html
      http://www.cnblogs.com/whsa/p/3975817.html


    备注:该博客为学习交流之用,有内容为参考其他博客,如有侵权请速与本人联系,本人将第一时间处理,谢谢合作!

    展开全文
  • 1.oracle导出表结构到sql文件  需要登陆oralce用户: sqlplus 用户名/密码@实例名 SQL> set serveroutput on SQL> set long 999999 SQL> set feedback off SQL> spool temp.sql SQL> SELECT DBMS_...

    1.oracle导出表结构到sql文件

     需要登陆oralce用户: sqlplus 用户名/密码@实例名

         SQL> set serveroutput on
         SQL> set long 999999
         SQL> set feedback off
         SQL> spool temp.sql
         SQL> SELECT DBMS_METADATA.GET_DDL('TABLE',table_name)  FROM USER_TABLES;
         SQL> spool off

    1.数据库导出功能:

      1).将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
        exp system/manager@TEST file=d:\daochu.dmp full=y

      2).将数据库中system用户与sys用户的表导出
        exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)

      3).将数据库中的表table1 、table2导出
        exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)

      4).将数据库中的表table1中的字段filed1以"00"打头的数据导出
        exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"

    如果是导出远程数据库,需要在Test前加上ip,如system/manager@192.168.1.123/test

    2.数据的导入

      1).将D:\daochu.dmp 中的数据导入 orcl数据库中。
        imp system/manager@127.0.0.1:1521/orcl file=d:\daochu.dmp  full=y  ignore=y

      2).将d:\daochu.dmp中的表table1 导入
        imp system/manager@TEST file=d:\daochu.dmp tables=(table1)

    数据泵文件
    expdp介绍

    EXPDP命令行选项
    1. ATTACH
    该选项用于在客户会话与已存在导出作用之间建立关联.语法如下
    ATTACH=[schema_name.]job_name
    Schema_name用于指定方案名,job_name用于指定导出作业名.注意,如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何其他选项,示例如下:
    Expdp scott/tiger ATTACH=scott.export_job

    2. CONTENT
    该选项用于指定要导出的内容.默认值为ALL
    CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
    当设置CONTENT为ALL时,将导出对象定义及其所有数据.为DATA_ONLY时,只导出对象数据,为METADATA_ONLY时,只导出对象定义
    Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dumpCONTENT=METADATA_ONLY

    3. DIRECTORY
    指定转储文件和日志文件所在的目录
    DIRECTORY=directory_object
    Directory_object用于指定目录对象名称.需要注意,目录对象是使用CREATEDIRECTORY语句建立的对象,而不是OS目录
    Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump

    4. DUMPFILE
    用于指定转储文件的名称,默认名称为expdat.dmp
    DUMPFILE=[directory_object:]file_name [,….]
    Directory_object用于指定目录对象名,file_name用于指定转储文件名.需要注意,如果不指定directory_object,导出工具会自动使用DIRECTORY选项指定的目录对象
    Expdp scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp

    5. ESTIMATE
    指定估算被导出表所占用磁盘空间分方法.默认值是BLOCKS
    ESTIMATE={BLOCKS | STATISTICS}
    设置为BLOCKS时,oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间,设置为STATISTICS时,根据最近统计值估算对象占用空间
    Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICS DIRECTORY=dumpDUMPFILE=a.dump

    6. ESTIMATE_ONLY
    指定是否只估算导出作业所占用的磁盘空间,默认值为N
    EXTIMATE_ONLY={Y | N}
    设置为Y时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为N时,不仅估算对象所占用的磁盘空间,还会执行导出操作.
    Expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y

    7. EXCLUDE(具体见2、Exclude导出用户中指定类型的指定对象)
    该选项用于指定执行操作时释放要排除对象类型或相关对象
    EXCLUDE=object_type[:name_clause] [,….]
    Object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象.EXCLUDE和INCLUDE不能同时使用
    Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dupEXCLUDE=VIEW

    8. FILESIZE
    指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制)

    9. FLASHBACK_SCN
    指定导出特定SCN时刻的表数据
    FLASHBACK_SCN=scn_value
    Scn_value用于标识SCN值.FLASHBACK_SCN和FLASHBACK_TIME不能同时使用
    Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmpFLASHBACK_SCN=358523

    10. FLASHBACK_TIME
    指定导出特定时间点的表数据
    FLASHBACK_TIME=”TO_TIMESTAMP(time_value)”
    Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmpFLASHBACK_TIME=“TO_TIMESTAMP(’25-08-2004 14:35:00’,’DD-MM-YYYYHH24:MI:SS’)”

    11. FULL
    指定数据库模式导出,默认为N
    FULL={Y | N}
    为Y时,标识执行数据库导出.

    12. HELP
    指定是否显示EXPDP命令行选项的帮助信息,默认为N
    当设置为Y时,会显示导出选项的帮助信息.
    Expdp help=y

    13. INCLUDE(具体见1、Include导出用户中指定类型的指定对象)
    指定导出时要包含的对象类型及相关对象
    INCLUDE = object_type[:name_clause] [,… ]

    14. JOB_NAME
    指定要导出作业的名称,默认为SYS_XXX
    JOB_NAME=jobname_string
    SELECT * FROM DBA_DATAPUMP_JOBS;--查看存在的job

    15. LOGFILE
    指定导出日志文件文件的名称,默认名称为export.log
    LOGFILE=[directory_object:]file_name
    Directory_object用于指定目录对象名称,file_name用于指定导出日志文件名.如果不指定directory_object.导出作用会自动使用DIRECTORY的相应选项值.
    Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmplogfile=a.log

    16. NETWORK_LINK
    指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项.
    如:expdp gwm/gwm directory=dir_dp NETWORK_LINK=igisdbtables=p_street_area dumpfile =p_street_area.dmplogfile=p_street_area.log    job_name=my_job
    igisdb是目的数据库与源数据的链接名,
    dir_dp是目的数据库上的目录
    而如果直接用使用连接字符串(@fgisdb),expdp属于服务端工具,expdp生成的文件默认是存放在服务端的

    17. NOLOGFILE
    该选项用于指定禁止生成导出日志文件,默认值为N.

    18. PARALLEL
    指定执行导出操作的并行进程个数,默认值为1
    注:并行度设置不应该超过CPU数的2倍,如果cpu为2个,可将PARALLEL设为2,在导入时速度比PARALLEL为1要快
       而对于导出的文件,如果PARALLEL设为2,导出文件只有一个,导出速度提高不多,因为导出都是到同一个文件,会争抢资源。所以可以设置导出文件为两个,如下所示:
        expdpgwm/gwm directory=d_test dumpfile=gwmfile1.dp,gwmfile2.dpparallel=2

    19. PARFILE
    指定导出参数文件的名称
    PARFILE=[directory_path] file_name

    20. QUERY
    用于指定过滤导出数据的where条件
    QUERY=[schema.] [table_name:] query_clause
    Schema用于指定方案名,table_name用于指定表名,query_clause用于指定条件限制子句.QUERY选项不能与CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等选项同时使用.
    Expdp scott/tiger directory=dump dumpfile=a.dmp Tables=empquery=’WHERE deptno=20’

    21. SCHEMAS
    该方案用于指定执行方案模式导出,默认为当前用户方案.

    22. STATUS
    指定显示导出作用进程的详细状态,默认值为0

    23. TABLES
    指定表模式导出
    TABLES=[schema_name.]table_name[:partition_name][,…]
    Schema_name用于指定方案名,table_name用于指定导出的表名,partition_name用于指定要导出的分区名.

    24. TABLESPACES
    指定要导出表空间列表

    25. TRANSPORT_FULL_CHECK
    该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式,默认为N.
    当设置为Y时,导出作用会检查表空间直接的完整关联关系,如果表空间所在表空间或其索引所在的表空间只有一个表空间被搬移,将显示错误信息.当设置为N时,导出作用只检查单端依赖,如果搬移索引所在表空间,但未搬移表所在表空间,将显示出错信息,如果搬移表所在表空间,未搬移索引所在表空间,则不会显示错误信息.

    26. TRANSPORT_TABLESPACES
    指定执行表空间模式导出

    27. VERSION
    指定被导出对象的数据库版本,默认值为COMPATIBLE.
    VERSION={COMPATIBLE | LATEST | version_string}
    为COMPATIBLE时,会根据初始化参数COMPATIBLE生成对象元数据;为LATEST时,会根据数据库的实际版本生成对象元数据.version_string用于指定数据库版本字符串.调用EXPDP

    数据泵工具导出的步骤:

    SQL> conn /as sysdba

    1、创建DIRECTORY
    #1、创建DIRECTORY,注意,也在指定的位置手工创建这个目录!!
    SQL> CREATE OR REPLACE DIRECTORY my_dir AS 'e:/oracle/my_dir';
    2、授权
    SQL> GRANT read,write ON DIRECTORY my_dir TO cf2g;
    --查看目录及权限
    SELECT privilege, directory_name, DIRECTORY_PATH FROMuser_tab_privs t, all_directories d
     WHERE t.table_name(+) = d.directory_name ORDER BY2, 1;
    3、执行导出
    expdp cf2g/cf2g@orcl directory=my_dir dumpfile=20160914.dmp schemas=cf2g logfile=20160914.log

    连接到: Oracle Database 10g Enterprise Edition Release10.2.0.1
    With the Partitioning, OLAP and Data Mining options
    启动 "LTTFM"."SYS_EXPORT_SCHEMA_01": lttfm
    备注:
      1、directory=dir_dp必须放在前面,如果将其放置最后,会提示 ORA-39002:操作无效
                                                                ORA-39070: 无法打开日志文件。
                                                                ORA-39087: 目录名 DATA_PUMP_DIR; 无效
        
      2、在导出过程中,DATA DUMP 创建并使用了一个名为SYS_EXPORT_SCHEMA_01的对象,此对象就是DATADUMP导出过程中所用的JOB名字,如果在执行这个命令时如果没有指定导出的JOB名字那么就会产生一个默认的JOB名字,如果在导出过程中指定JOB名字就为以指定名字出现
        如下改成:
        expdp lttfm/lttfm@fgisdb schemas=lttfm directory=dir_dp dumpfile=expdp_test1.dmplogfile=expdp_test1.log,job_name=my_job1;
      3、导出语句后面不要有分号,否则如上的导出语句中的job表名为‘my_job1;’,而不是my_job1。因此导致expdplttfm/lttfm attach=lttfm.my_job1执行该命令时一直提示找不到job表
       4、创建的目录一定要在数据库所在的机器上。
    否则也是提示:

    ORA-39002:操作无效
     ORA-39070:无法打开日志文件。
    ORA-39087: 目录名DATA_PUMP_DIR; 无效

     

     

    导出的相关命令使用:
      1)Ctrl+C组合键:在执行过程中,可以按Ctrl+C组合键退出当前交互模式,退出之后,导出操作不会停止
       2)Export>status              --查看当前JOB的状态及相关信息
       3)Export>stop_job            --暂停JOB(暂停job后会退出expor模式)
       4)重新进入export模式下:C:\Documentsand Settings\Administrator>expdp lttfm/lttfmattach=lttfm.my_job1 --语句后面不带分号
       5)Export>start_job           --打开暂停的JOB(并未开始重新执行)
       6)Export>continue_client     --通过此命令重新启动 "LTTFM"."MY_JOB":
       7)Export>kill_job            --取消当前的JOB并释放相关客户会话(将job删除同时删除dmp文件)
       8)Export>exit_client         --通过此命令退出export模式(通过4)可再进入export模式下)
     注:导出完成后job自动卸载

    数据泵导出的各种模式:
    1、按表模式导出:
    expdp lttfm/lttfm@fgisdb tables=lttfm.b$i_exch_info,lttfm.b$i_manhole_info dumpfile=expdp_test2.dmp logfile=expdp_test2.log directory=dir_dpjob_name=my_job

    2、按查询条件导出:
    expdp lttfm/lttfm@fgisdb tables=lttfm.b$i_exch_info dumpfile =expdp_test3.dmplogfile=expdp_test3.log directory=dir_dp job_name=my_jobquery='"where rownum<11"'

    3、按表空间导出:
    Expdp lttfm/lttfm@fgisdb dumpfile=expdp_tablespace.dmptablespaces=GCOMM.DBF logfile=expdp_tablespace.log directory=dir_dpjob_name=my_job

    4、导出方案
    Expdp lttfm/lttfm DIRECTORY=dir_dp DUMPFILE=schema.dmpSCHEMAS=lttfm,gwm

    5、导出整个数据库:
    expdp lttfm/lttfm@fgisdb dumpfile =full.dmp full=y logfile=full.logdirectory=dir_dp job_name=my_job


    使用exclude,include导出数据 
    1、Include导出用户中指定类型的指定对象
    --仅导出lttfm用户下以B开头的所有表,包含与表相关的索引,备注等。不包含过程等其它对象类型:
    expdp lttfm/lttfm@fgisdb dumpfile=include_1.dmplogfile=include_1.log directory=dir_dp job_name=my_jobinclude=TABLE:\"LIKE \'B%\'\"

    --导出lttfm用户下排除B$开头的所有表:
    expdp lttfm/lttfm@fgisdb schemas=lttfm dumpfile=include_1.dmplogfile=include_1.log directory=dir_dp job_name=my_jobinclude=TABLE:\"NOT LIKE \'B$%\'\"

    --仅导出lttfm用户下的所有存储过程:
    expdp lttfm/lttfm@fgisdb schemas=lttfm dumpfile=include_1.dmplogfile=include_1.log directory=dir_dp job_name=my_jobinclude=PROCEDURE;   

    2、Exclude导出用户中指定类型的指定对象
    --导出lttfm用户下除TABLE类型以外的所有对象,如果表不导出那么与表相关的索引,约束等与表有关联的对象类型也不会被导出:
    expdp lttfm/lttfm@fgisdb schemas=lttfm dumpfile=exclude_1.dmplogfile=exclude_1.log directory=dir_dp job_name=my_jobexclude=TABLE;

    --导出lttfm用户下排除B$开头的所有表:
    expdp lttfm/lttfm@fgisdb dumpfile=include_1.dmplogfile=include_1.log directory=dir_dp job_name=my_jobexclude=TABLE:\"LIKE\'b$%\'\";

    --导出lttfm用户下的所有对象,但是对于表类型只导出以b$开头的表:
    expdp lttfm/lttfm@fgisdb dumpfile=include_1.dmplogfile=include_1.log directory=dir_dp job_name=my_jobexclude=TABLE:\"NOT LIKE \'b$%\'\";


    IMPDP介绍

    IMPDP命令行选项与EXPDP有很多相同的,不同的有:
    1、REMAP_DATAFILE
    该选项用于将源数据文件名转变为目标数据文件名,在不同平台之间搬移表空间时可能需要该选项.
    REMAP_DATAFIEL=source_datafie:target_datafile

    2、REMAP_SCHEMA
    该选项用于将源方案的所有对象装载到目标方案中.
    REMAP_SCHEMA=source_schema:target_schema


    3、REMAP_TABLESPACE
    将源表空间的所有对象导入到目标表空间中
    REMAP_TABLESPACE=source_tablespace:target:tablespace

    4、REUSE_DATAFILES
    该选项指定建立表空间时是否覆盖已存在的数据文件.默认为N
    REUSE_DATAFIELS={Y | N}

    5、SKIP_UNUSABLE_INDEXES
    指定导入是是否跳过不可使用的索引,默认为N

    6、SQLFILE
    指定将导入要指定的索引DDL操作写入到SQL脚本中
    SQLFILE=[directory_object:]file_name
    Impdp scott/tiger DIRECTORY=dump DUMPFILE=tab.dmpSQLFILE=a.sql

    7、STREAMS_CONFIGURATION
    指定是否导入流元数据(Stream Matadata),默认值为Y.

    8、TABLE_EXISTS_ACTION
    该选项用于指定当表已经存在时导入作业要执行的操作,默认为SKIP
    TABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE | FRPLACE}
    当设置该选项为SKIP时,导入作业会跳过已存在表处理下一个对象;当设置为APPEND时,会追加数据,为TRUNCATE时,导入作业会截断表,然后为其追加新数据;当设置为REPLACE时,导入作业会删除已存在表,重建表病追加数据,注意,TRUNCATE选项不适用与簇表和NETWORK_LINK选项

    9、TRANSFORM
    该选项用于指定是否修改建立对象的DDL语句
    TRANSFORM=transform_name:value[:object_type]
    Transform_name用于指定转换名,其中SEGMENT_ATTRIBUTES用于标识段属性(物理属性,存储属性,表空间,日志等信息),STORAGE用于标识段存储属性,VALUE用于指定是否包含段属性或段存储属性,object_type用于指定对象类型.
    Impdp scott/tiger directory=dump dumpfile=tab.dmpTransform=segment_attributes:n:table

    10、TRANSPORT_DATAFILES
    该选项用于指定搬移空间时要被导入到目标数据库的数据文件
    TRANSPORT_DATAFILE=datafile_name
    Datafile_name用于指定被复制到目标数据库的数据文件
    Impdp system/manager DIRECTORY=dump DUMPFILE=tts.dmp
    TRANSPORT_DATAFILES=’/user01/data/tbs1.f’调用IMPDP


    impdp导入模式:
    1、按表导入
    p_street_area.dmp文件中的表,此文件是以gwm用户按schemas=gwm导出的:
    impdp gwm/gwm@fgisdb  dumpfile =p_street_area.dmplogfile=imp_p_street_area.log directory=dir_dp tables=p_street_areajob_name=my_job

    2、按用户导入(可以将用户信息直接导入,即如果用户信息不存在的情况下也可以直接导入)
    impdp gwm/gwm@fgisdb schemas=gwm dumpfile =expdp_test.dmplogfile=expdp_test.log directory=dir_dp job_name=my_job

    3、不通过expdp的步骤生成dmp文件而直接导入的方法:
    --从源数据库中向目标数据库导入表p_street_area
    impdp gwm/gwm directory=dir_dp NETWORK_LINK=igisdbtables=p_street_area logfile=p_street_area.log job_name=my_job
    igisdb是目的数据库与源数据的链接名,dir_dp是目的数据库上的目录

    4、更换表空间
     采用remap_tablespace参数 
      --导出gwm用户下的所有数据
    expdp system/orcl directory=data_pump_dir dumpfile=gwm.dmpSCHEMAS=gwm
    注:如果是用sys用户导出的用户数据,包括用户创建、授权部分,用自身用户导出则不含这些内容
    --以下是将gwm用户下的数据全部导入到表空间gcomm(原来为gmapdata表空间下)下
    impdp system/orcl directory=data_pump_dir dumpfile=gwm.dmpremap_tablespace=gmapdata:gcomm 


    exp与imp
    exp的关键字说明:

    关键字   说明(默认值)       
    ------------------------------
    USERID  用户名/口令           
    BUFFER  数据缓冲区大小        
    FILE    输出文件 (EXPDAT.DMP)  
    COMPRESS  导入到一个区(Y)     
    GRANTS    导出权限(Y)         
    INDEXES   导出索引(Y)         
    DIRECT    直接路径(N) --直接导出速度较快       
    LOG     屏幕输出的日志文件     
    ROWS     导出数据行(Y)       
    CONSISTENT 交叉表的一致性 (N)  
    FULL       导出整个文件 (N)
    OWNER     所有者用户名列表
    TABLES    表名列表
    RECORDLENGTH   IO记录的长度
    INCTYPE    增量导出类型
    RECORD      跟踪增量导出 (Y)
    TRIGGERS    导出触发器 (Y)
    STATISTICS   分析对象 (ESTIMATE)
    PARFILE     参数文件名
    CONSTRAINTS  导出的约束条件 (Y)
    OBJECT_CONSISTENT   只在对象导出期间设置为只读的事务处理 (N)
    FEEDBACK            每 x 行显示进度 (0)
    FILESIZE            每个转储文件的最大大小
    FLASHBACK_SCN       用于将会话快照设置回以前状态的 SCN
    FLASHBACK_TIME      用于获取最接近指定时间的 SCN 的时间
    QUERY               用于导出表的子集的 select 子句
    RESUMABLE           遇到与空格相关的错误时挂起 (N)
    RESUMABLE_NAME      用于标识可恢复语句的文本字符串
    RESUMABLE_TIMEOUT   RESUMABLE 的等待时间
    TTS_FULL_CHECK      对 TTS 执行完整或部分相关性检查
    TABLESPACES         要导出的表空间列表
    TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)
    TEMPLATE            调用 iAS 模式导出的模板名

    常用的exp关键字

    1、full用于导出整个数据库,在rows=n一起使用,导出整个数据库的结构。
       如:exp userid=gwm/gwmfile=/test.dmp log=test.log full=y rows=n direct=y
    2、OWNER和TABLES,用于定义exp导出的对象,可加上query条件设置导出的行数
       如:exp userid=gwm/gwmfile=/test.dmp log=test.log owner=gwmtable=(table1,table2)  query="'whererownum<11'"
    3、buffer和feedback 若导出数据较大,考虑使用这两个参数。
       如:exp userid=gwm/gwmfile=/test.dmp log=test.log feedback=10000 buffer=100000000tables=(table1,table2)
    4、file和log 用于指定备份的dmp名称和log名称
    5、compress 不压缩导出数据的内容,默认y
    6、filesize 若导出的数据文件大,应该用该参数,限制文件大小不要超过2g
       如:exp userid=gwm/gwmfile=/test1,test2,test3,test4,test5 filesize=2Glog=test.log 
          这样将创建test1.dmp,test2.dmp等,每个文件大小为2g。

     

     imp关键字说明
    关键字   说明(默认值)       关键字     说明 (默认值)
    -------------------------------------------------------------
    USERID  用户名/口令          FULL      导入整个文件 (N)
    BUFFER  数据缓冲区大小       FROMUSER   所有者用户名列表
    FILE    输入文件 (EXPDAT.DMP) TOUSER    用户名列表
    SHOW    只列出文件内容(N)    TABLES     表名列表
    IGNORE   忽略创建错误(N)   RECORDLENGTH  IO 记录的长度
    GRANTS   导入权限(Y)         INCTYPE    增量导入类型
    INDEXES   导入索引(Y)        COMMIT      提交数组插入 (N)
    ROWS    导入数据行(Y)       PARFILE     参数文件名
    LOG    屏幕输出的日志文件   CONSTRAINTS   导入限制 (Y)

    DESTROY               覆盖表空间数据文件 (N)
    INDEXFILE             将表/索引信息写入指定的文件
    SKIP_UNUSABLE_INDEXES  跳过不可用索引的维护 (N)
    FEEDBACK              每 x 行显示进度 (0)
    TOID_NOVALIDATE       跳过指定类型 ID 的验证
    FILESIZE              每个转储文件的最大大小
    STATISTICS            始终导入预计算的统计信息
    RESUMABLE             在遇到有关空间的错误时挂起 (N)
    RESUMABLE_NAME        用来标识可恢复语句的文本字符串
    RESUMABLE_TIMEOUT     RESUMABLE 的等待时间
    COMPILE               编译过程, 程序包和函数 (Y)
    STREAMS_CONFIGURATION  导入流的一般元数据 (Y)
    STREAMS_INSTANTIATION  导入流实例化元数据 (N)

    下列关键字仅用于可传输的表空间
    TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)
    TABLESPACES 将要传输到数据库的表空间
    DATAFILES 将要传输到数据库的数据文件
    TTS_OWNERS 拥有可传输表空间集中数据的用户

     备注:

    INCTYPE        增量导入类型 该参数到9i已废弃,我使用的是oracle11g做的实验,发现该参数已无法使用。如下实验所示:
    C:\Users\thinkpad>imp fyzh_ora/FYZH_ORAfile=rm_trs_seg.dmp log=rm_trs_seg.log f
    romuser=ltwebgis  inctype=restore

    Import: Release 11.1.0.7.0 - Production on 星期二 1月 10 22:18:142012
    Copyright (c) 1982, 2007, Oracle.  All rightsreserved.
    连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 -Production
    With the Partitioning, OLAP, Data Mining and Real ApplicationTesting options
    经由常规路径由 EXPORT:V10.02.01 创建的导出文件
    警告: 这些对象由 LTWEBGIS 导出, 而不是当前用户
    已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
    IMP-00021:INCTYPE 参数已废弃
    IMP-00083:转储文件中不包含增量导出
    IMP-00000: 未成功终止导入【转自蓝紫】

    展开全文
  • Linux下oracle数据库常用命令 Oracle用户下执行: $ sqlplus system/manager @ file.sql 执行sql脚本文件 $ sqlplus system/manager 登录sqlplus,使用system用户 $ sqlplus /nolog 以不连接数据库的方式启动sqlplus...
  • Oracle数据库备份与还原命令

    千次阅读 2018-07-11 17:40:08
    数据导出: 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中 exp system/manager@TEST file=d:\daochu.dmp full=y 2 将数据库中system用户与sys用户的表导出 exp system/manager@TEST...
  • Oracle导入导出数据库(exp/imp和expdp/impdp的区别) 目录索引 1、exp和expdp的区别 2、expdp导出数据库流程   一、↓↓exp和expdp的区别↓↓ 1、exp和expdp最明显的区别就是导出速度的不同。expdp导出是并行...
  • Linux下启动和关闭Oracle数据库的方法

    万次阅读 2019-05-06 09:45:53
    1.因为Oracle运行在Linux系统下,首先,要连接Linux系统  2.切换到oracle安装用户下。 我的是 ora12。  3.运行oracle的环境变量, 以便输入相关命令。  4.... 关闭数据库, 输入命令: sh...
  • 常用命令 EXPDP USERID=’scott/tiger@orcl as sysdba’ schemas=scott directory=DATA_PUMP_DIR dumpfile=dp.dmp logfile=dp.log version=10.2.0.1.0 create tablespace houqin_tablespace datafile ‘D:\dzj\...
  • oracle11g数据库导入导出: ①:传统方式——exp(导出)和(imp)导入: ②:数据泵方式——expdp导出和(impdp)导入; ③:第三方工具——PL/sql Develpoer; 一、什么是数据库导入导出oracle11g数据库的导入/导出,...
  • linux Oracle常用数据库操作命令

    千次阅读 2014-11-07 00:56:48
    博客专家福利 公告:CSDN下载频道11月4日-5日维护 Qualcomm博客征文...Linux下oracle数据库常用操作及命令 分类: 数据库2011-06-01 11:55 3628人阅读 评论(0) 收藏 举报 数据库oraclelinuxsqluserec
  • Oracle数据库日常维护命令

    千次阅读 2017-03-31 11:19:38
    一、启动、关闭数据库 1、启动实例的各种模式 1)启动实例,装载并...启动实例接着从默认的服务器参数文件位置读取初始化参数,然后通过STARTUP命令来装载和打开数据库: SQL> STARTUP   2)启动实
  • 导出表数据。只需在命令行里加一个参数 rows=n 即可。表示不导出表数据。 exp file=d:databak.dmp owner=(user)rows=n 导出数据 exp file=d:\dmp\qns.dmp full=y...用cmd命令启动Oracle 监听启动: ne...
  • Oracle数据库备份与恢复基本命令 1、 获取帮助 $ exp help=y $ imp help=y 2、三种工作方式 (1)交互式方式 $ exp 然后按提示输入所需要的参数 (2)命令行方式 $ exp user/pwd@dbname file=/oracle/test....
  • 用shell命令操作oracle数据库

    千次阅读 2017-06-27 15:03:30
    启动步骤:注意$代表shell命令提示符,这里的oracle是9.0以上版本。   1.$ su - oracle  2.$ sqlplus / nolog  3.sql> conn / as sysdba  4.sql> startup (一般不需要加参数,只要设置好环境变量)  5....
  • 昨晚又是一个晚睡之夜,Oracle数据库,真是不熟,操作也仅限简单的导出导入,建库等!其实只是一个很简单的问题,却一度让我沉思..下面就写下处理过程,供大家参考!事情的原委是这样:用户的库,要在一个表里面进行...
  • Oracle 中用 imp 和 exp 命令导入导出数据库 (转自:http://www.cnblogs.com/yugen/archive/2010/07/25/1784763.html) 注: 在splplus环境下执行时,在命令前加 ! 号,这样 SQL> !exp ... 和 SQL> !imp ... ...
  • 如果是txt文件的数据导入oracle中,数据量大的话用pl/sql会卡死,那么就要用到sqlload命令。 前两天在做一个不算任务的任务,用shell脚本将数据库中的数据导出到文件,在万能的百度上找了一些资料,自己亲手实践了...
  • oracle导出序列的几种办法

    千次阅读 2018-09-14 09:46:00
    oracle导出序列的几种办法注:本文来源于《oracle导出序列的几种办法》方法一: select 'create sequence ' ||sequence_name|| ' minvalue ' ||min_value|| ' maxvalue ' ||max_value|| ' ...
  • 需求:把几个视图,按照某种条件导出数据,导入到Oracle数据库。 一、通过exp和imp命令来处理 需要具备exp和imp命令的权限,视图用户一般不具备这样的权限。 二、在PLSQL中,用文本导入工具——推荐 ...
  • 创建数据库 方法一:使用DatabaseConfiguration Assistant创建 打开DatabaseConfiguration Assistant 选择创建数据库————&gt;单击下一步 选择一般用途————&gt;单击下一步 输入...
  • 该选项用于在客户会话与已存在导出作用之间建立关联.语法如下 ATTACH=[schema_name.]job_name Schema_name用于指定方案名,job_name用于指定导出作业名.注意,如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项...
  • oracle数据库数据导入导出步骤(入门) 说明:1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL2.如果熟悉命令,建议用exp/imp命令导入导出,避免第三方工具版本...
  • 要对同一内网下装有Oracle的两台服务器数据迁移(导出与导入),使用exp和imp命令 1、将服务器A内数据库中的数据使用exp导出到服务器B数据库目录下 2、将导入到服务器B目录下的dmp文件使用imp导入服务器B上的...
  • Oracle数据库命令整理--持续更新
  • Oracle数据库的备份 一、非归档模式下的冷备份和恢复 1、检查数据库是否为归档模式 命令:Archive log list 2、冷备份 数据库处于非归档模式只能做冷备份(脱机备份) 冷备份:指数据库关闭状态下所做的物理拷贝,做...
  • 注:有些命令是否通过没有验证。在imp 还原数据库的时候出现问题如下; 这个问题是 你用 expdp导出的 却用客户端的 imp 导入;换成impdp导入即可。 当用impdp 导入 (impdp EMMS/EMMS123 directory=expdir dumpfile=...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,670
精华内容 3,468
关键字:

停止oracle导出数据库命令