ORACLE exp/imp

 

一、关于数据泵的概述

      在Oracle 10g中,数据泵(Data Pump)的所有工作都有数据库实例来完成,数据库可以并行来处理这些工作,不仅可以通过建立多个数据泵工作进程来读/写正在被导出/导入的数据,也可以建立并行I/O服务器以更快地读取或插入数据,从而,单进程瓶颈被彻底解决。

 

      通过数据泵,以前通过EXP/IMP主要基于Client/Server的逻辑备份方式转换为服务器端的快速备份,数据泵主要工作在服务器端,可以通过并行方式快速装入或卸载数据,而且可以在运行过程中调整并行的程度,以加快或减少资源消耗。

 

      数据泵通过新的API来建立和管理,这些新的工作主要由DBMS_DATAPUMP来完成。新的导入/导出工具完全成为了一个客户端应用,通过IMPDP/EXPDP执行的命令实际上都是在调用Server端的API在执行操作,所以一旦一个任务被调度或执行,客户端就可以推出连接,任务会在server端继续执行,随后通过客户端实用程序从任何地方检查任务的状态和进行修改

 

二、数据泵的使用

 

示例: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp

 

注意到与EXP不同,EXPDP增加了一个主要的参数:DIRECTORY

 

这个参数是用来定义一个路径,前面已经提到,数据泵主要在Server端工作,导出文件需要写出到Server端本地目录,这个DIRECTORY就是对应的Server端的路径

 

如:

//创建目录

create or replace directory  expdir as 'd:/';

 

//给test赋予目录的读写权限

grant read,write on directory expdir to test;

 

//导出数据

C:/>expdp test/test@acf  dumpfile=test.dmp directory=expdir

 

 

三、EXPDP/IMPDP的停止与重启动

 

EXPDP和IMPDP的本质在于,通过API调用,把传统的EXP/IMP类交付式模式的操作,转变成数据库内部的job任务,从而实现了任务的可终止与重启动。

 

c:/expdp test/test@acf directory=dpdata dumpfile=full.dmp full=y job_name=expfull

 

在执行过程中,可以拿下Ctrl+C组合键,退出当前交互模式,退出之后,导出操作不会停止,这不同于Oracle以前的EXP。以前的EXP,如果退出交互式模式,就会出错终止导出任务。

 

在Oracle 10中,由于EXPDP是数据库内部定义的任务,已经与客户端无关。退出交互之后,会进入export的命令行模式,此时支持status等查看命令:

 

Export> status

 

如果想停止改任务,可以发出stop_job命令

 

Export> stop_job

 

接下来可以通过命令行再次连接到这个任务

 

c:/expdp test/test@acf attach=expfull

 

通过start_job命令重新启动导出

 

Export> start_job

 

4、EXPDP排出部分对象的导出

 

在EXPDP的帮助文件中,可以看到存在EXCLUDE和INCLUDE参数

这个两个参数文档中介绍的命令格式存在问题,这个两个参数的正确用法是:

 

EXCLUDE=OBJECT_TYPE[:name_clause][,...]

INCLUDE=OBJECT_TYPE[:name_clause][,...]

 

示例:

expdp  schema=scott exclude=sequence,table:"in('EMP','DEPT')"

impdp  schema=scott include=function,package,procedure,table:"='EMP'"

 

有了这些还不够,由于命令中包含了多个特殊字符,在不同的操作系统下需要通过转义字符才能使上面的命令顺利执行

如:EXCLUDE=TABLE:/"IN('BIGTALE')/"

 

oracle学习小结1

http://jackyrong.javaeye.com/blog/482724


7 导出表
   导出自己的表
   exp userid=scott/xxx@xxx tables=(a,b) file=c:/xxx.dmp;
导出其他的方案
   exp userid=system/xx@xxx tables=(scott.a,scott.b) file=c:/xxx.dmp
只导出表结构,不导数据
   exp userid=system/xx@xxx tables=(scott.a,scott.b) file=c:/xxx.dmp rows=n;
   如果要导出大表,则加参数direct=y
导出方案
  exp userid=system/xx@xxx owner=(scott,system) file=c:/xxxx.dmp;

 

Oracle 备份与恢复

http://www.oracle.com/technology/global/cn/obe/2day_dba/backup.htm
http://www.oracle.com.cn/viewthread.php?tid=33849

  • 脱机备份与恢复
  • OEM中导入导出数据
  • 提高数据可用性策略
  • 使用数据泵进行逻辑备份与恢复

 

故障类型:
    实例恢复:
        主要用于DB实例故障引起的DB停机,OS错误、意外掉电、进程故障、shutdown abort终止时故障
       
        实例恢复,在再次启动DB时,由DB根据重做日志文件记录的内容(如未提交的事务,已提交但未完成的事务)自动完成恢复。
   
    介质恢复:联机备份时发生实例故障,则需介质恢复,介质损坏引起介质恢复
   
脱机备份与恢复/冷备份与恢复、联机备份与恢复/热备份与恢复、逻辑备份与恢复、

脱机备份与恢复/冷备份与恢复

http://bbs.chinaunix.net/viewthread.php?tid=776954
    shutdown 默认为 normal
    shutdown normal           //快速关闭,做个检查点
                     不允许新的连接、不等待会话结束、事务结束、做个检查点并关闭数据文件。启动时不需要实例恢复。
    shutdown abort            //快速关闭,重启DB恢复
                     不允许新的连接、不等待会话结束、不等待事务结束、不做检查点且没有关闭数据文件.启动时自动进行实例恢复
                     不可联机备份与恢复,'不干净'关闭数据库方式,可能包含未提交事务和不一致数据.若执行abort,则应重启DB,由DB
                     对事务和不一致数据进行处理,然后执行shutdown normal、shutdown immediate或shutdown transaction,最后脱机备份与恢复
    shutdown immediate   //快速关闭,截断当前事务
                     不允许新的连接、不等待会话结束、不等待事务结束、做个检查点并关闭数据文件.没有结束的事务自动rollback.
                     启动时不需要实例恢复。
    shutdown transaction //快速关闭,等待事务结束
                     不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并关闭数据文件.启动时不需要实例恢复.

    对于ABORT,DB Buffer Cache的内容没有写入数据文件,没有提交的事务也没有回滚。数据库没有dismount和关闭,数据文件也没有关闭。当数据库启动时,需要通过redo log恢复数据,通过回滚段对事务回滚,对资源进行释放。

  对于NORMAL、TRANSACTIONAL、IMMEDIATE,DB Buffer Cache的内容写入了数据文件,没有提交的事务被回滚,所有的资源被释放,数据库被“干净”的关闭。
 
    STARTUP [FORCE] [RESTRICT] [PFILE= filename] [OPEN [RECOVER][ database] | MOUNT | NOMOUNT]
   
    startup open:
                    缺省参数为OPEN,打开数据库,允许数据库的访问.当前实例的控制文件中所描述的所有文件都已经打开.
    startup mount:
                    仅仅给DBA进行管理操作,不允许数据库的用户访问。仅仅只是当前实例的控制文件被打开,数据文件未打开。
    startup nomount:
                    仅仅通过初始化文件,分配出SGA区,启动数据库后台进程,没有打开控制文件和数据文件。不能任何访问数据库。
    STARTUP PFILE=filename:
                    以filename为初始化文件启动数据库,不是采用缺省初始化文件.
    STARTUP FORCE:
                    中止当前数据库的运行,并开始重新正常的启动数据库。
  STARTUP RESTRICT:
                  只允许具有RESTRICTED SESSION权限的用户访问数据库。
  STARTUP RECOVER:
                  数据库启动,并开始介质恢复。
    若执行shutdown abort则应重启DB,由DB对事物不一致数据进行处理,然后执行shutdown normal,shutdown immediate或shutdown transaction,最后执行脱机备份与恢复.脱机备份保证DB,脱机状态较长.
   
联机备份与恢复/热备份与恢复 7x24

    DB处于archirvelog(归档模式),好处:当数据文件或表空间处于备份与恢复时,用户仍可访问其他数据.
   
逻辑备份与恢复/数据备份

    客服端工具imp/exp 数据泵工具expdp/impdp
    特点:多种方式,DB级、方案(或用户)级/表级.
                不同OS间传输,oracle二进制文件存储.               
                不同oracle间传输
                    低>>>高版本间升级
                    高>>>低版本间升级
                   
提高DB可用性策略

    设计备份与恢复策略前考略的问题
        有多少数据需要保护,能承受多少数据丢失?
        DB那些数据常修改,何时载数据,何时改DB结构?
        备份可脱机多长时间,是否7x24小时,何时使用DB最频繁?
        恢复时间多快?
        备份/恢复所需要的资源?如:工具、人员、设备、时间等
        是否需要闪回技术逆向更改?
    周备份,短时停数据库,则热备.

防止故障   

        数据/存储故障
        逻辑/物理故障
   
    物理故障:数据文件、控制文件、重做日志文件和归档日志文件.
                     磁盘毁损,人为意外删除数据文件或改写配置文件
    逻辑故障:表、索引、或表记录.一般人为原因是最大原因
   
    人为逻辑故障:
                    误删文件、数据
                    update语句中不正确使用where子句更新过多行
    oracle10g flashback (闪回)技术支持航、事务、表、表空间和DB存储故障

    估计空间量
    设计布局、数据、归档文件分开,以免I/O竞争
    创建逻辑卷和文件系统
    定义和执行数据备份和恢复计划
    创建用户的数据库
    ASM(自动存储管理),内核中提供垂直集成文件系统和数据卷管理器
    ASM本地镜像机制扩展SAME(全部条带话和镜像)用于防治存储故障的选件.
            启动实现三倍镜像,支撑硬件辅助恢复技术能力、将强数据保护.
   
备份策略

    非7x24 noarchivelog下操作
        7x24 archivelog操作,2次/周、2次/月
    多个DB恢复目录的恢复管理器 RMAN

    控制文件
        SQL>select status,name from v$controlfile;
  数据文件
      SQL>select status,file_name form dba_data_files;
  联机重做日志文件
      SQL>select group#,status,member from v$logfile;
  脱机备份
      --不连DB方式启动sqlplus
      SQL>sqlplus /nolog
      SQL>connect system/password AS SYSDBA
      --脱机备份
      SQL>shutdown immediate
      --备份拷贝:控制文件、数据文件、重做日志文件 ok
      SQL>startup open
      --在改变DB结构(如改变参数设置:表空间、表及控制文件,数据文件,重做日志文件的位置和名称)后,都应脱机备份
     脱机恢复
         data pump(数据泵)进行逻辑备份与恢复
        
         expdp/impdp 服务端程序使用,可以解决:a.表  b.方案 c.数据库
         实现逻辑备份和恢复
         数据方案之间传输
         数据库之间传输
         数据库应用软件升级
         消除磁盘碎片
         SQL>connect sys/password  AS SYSDBA
         SQL>create directory dump_dir AS 'e:/dump';
         SQL>grant read,write on directory dump_dir to system,myuser;
        
         expdp username/password parameter1[,parameter2,...]
        
         C:/expdp system/password full=y estimate_only=y estimate=statistice nologfile=y
         导出表
         导出myuser方案的department和student表的过程
         c:/expdp myuser/password directory=dump_dir dumpfile=myusertab.dmp logfile=myusertab.log tables=department,student
         导出方案
         导出muyser方案的过程
         c:/expdp myuser/password directory=dump_dir dumpfile=myuser.dmp logfile=myuser.log schemas=myuser job_name=exp_myuser_schema
         导出数据库
         使用参数文件导出数据库
             文件:e:/dump/myparfile.txt
             内容:dumpfile=dump_dir:mydb_%U.dmp
                         logfile=dump_dir:mydb.log
                         filesize=100M
                         job_name=exp_full
                         full=y
     导出整个数据库过程,时间较长多则几个小时,不易完全成功,不建议使用
             c:/expdp system/password parfile=e:/dump/myparfile.txt
        
     使用impdp导入数据 impdp username/password parameter1[,parameter2,...]
     parameter如:sqlfile=[directory_object:]file_name sqlfile=目录对象名:sql脚本名
     
     导入数据
     SQL>connect myuser/password
     SQL>delete from student;
     SQL>commit;
     
     C:/impdp myuser/password directory=dump_dir dumpfile=myusertab.dmp logfile=myuser_imp.log conect=data_only table=student
     
     导入表
     SQL>drop table student cascade constraints;
     SQL>desc student;
     c:/impdp myuser/password directory=dump_dir dumpfile=myusertab.dmp logfile=myusertab_imp.log tables=student
     
     导入方案
     SQL>connect system/password
     SQL>drop user myuser cascade;
     SQL>grant connect,resource to myuser identified by password
     SQL>alter user myuser default tablespace myts01 temporary tablespace=temp;
              若导入前没有创建用户,则导入方案是会有错误提示信息
     c:/impdp system/password directory=dump_dir dumpfile=myuser.dmp logfile=myuser_imp.log schemas=myuser job_name=imp_schema
     
     在OEM中导出导入数据 集成impdp/expdp

---------------------------------------------------------------------------------------------------------------------

Oracle imp/exp 详解

Sql代码  
  1. 一、 EXP   
  2.   
  3. C:/>exp help=y   
  4.   
  5. 通过输入 EXP 命令和用户名 / 口令,您可以   
  6. 在用户 / 口令之后的命令 :   
  7.   
  8. 实例 : EXP SCOTT/TIGER   
  9.   
  10. 或者,您也可以通过输入跟有各种参数的 EXP 命令来控制 “ 导出 ” 的运行方式。   
  11. 要指定参数,您可以使用关键字 :   
  12.   
  13. 格式 : EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)   
  14. 实例 : EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)   
  15. 或 TABLES=(T1: P1,T1: P2) ,如果 T1 是分区表   
  16.   
  17. USERID 必须是命令行中的第一个参数。   
  18.   
  19.   
  20.   
  21. 关键字      说明      默认   
  22. USERID                         用户名 / 口令         
  23. FULL                             导出整个文件       (N)   
  24. BUFFER                        数据缓冲区的大小         
  25. OWNER                         所有者用户名列表         
  26. FILE                               输出文件     (EXPDAT.DMP)   
  27. TABLES                        表名列表         
  28. COMPRESS                  导入一个范围     (Y)   
  29. RECORDLENGTH       IO 记录的长度         
  30. GRANTS                       导出权限     (Y)   
  31. INCTYPE                      增量导出类型         
  32. INDEXES                      导出索引       (Y)   
  33. RECORD                       跟踪增量导出     (Y)   
  34. ROWS                            导出数据行     (Y)   
  35. PARFILE                       参数文件名         
  36. CONSTRAINTS            导出限制       (Y)   
  37. CONSISTENT               交叉表一致性         
  38. LOG                               屏幕输出的日志文件         
  39. STATISTICS                  分析对象 (ESTIMATE)         
  40. DIRECT                         直接路径     (N)   
  41. TRIGGERS                    导出触发器     (Y)   
  42. FEEDBACK                  显示每 x 行 (0) 的进度         
  43. FILESIZE                      各转储文件的最大尺寸         
  44. QUERY                          选定导出表子集的子句         
  45. 下列关键字仅用于可传输的表空间   
  46. TRANSPORT_TABLESPACE     导出可传输的表空间元数据     (N)   
  47. TABLESPACES     将传输的表空间列表         
  48.   
  49. 二、 IMP   
  50.   
  51. 1. 获取帮助   
  52. imp help=y   
  53. 2. 导入一个完整数据库   
  54. imp system/manager file=bible_db log=dible_db full=y ignore=y   
  55. 3. 导入一个或一组指定用户所属的全部表、索引和其他对象   
  56. imp system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)   
  57. 4. 将一个用户所属的数据导入另一个用户   
  58. imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy   
  59. imp system/manager file=tank log=tank fromuser=(seapark,amy)   
  60. touser=(seapark1, amy1)   
  61. 5. 导入一个表   
  62. imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)   
  63. 6. 从多个文件导入   
  64. imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)   
  65. log=paycheck, filesize=1G full=y   
  66. 7. 使用参数文件   
  67. imp system/manager parfile=bible_tables.par   
  68. bible_tables.par 参数文件:   
  69. #Import the sample tables used for the Oracle8i Database Administrator's   
  70. Bible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import   
  71. 8. 增量导入   
  72. imp system./manager inctype= RECTORE FULL=Y FILE=A   
  73. Oralce 数据泵   
  74. http://junmail.javaeye.com/blog/215780   
  75. 一、关于数据泵的概述   
  76.       在Oracle 10g中,数据泵(Data Pump)的所有工作都有数据库实例来完成,数据库可以并行来处理这些工作,不仅可以通过建立多个数据泵工作进程来读/写正在被导出/导入的数据,也可以建立并行I/O服务器以更快地读取或插入数据,从而,单进程瓶颈被彻底解决。   
  77.       通过数据泵,以前通过EXP/IMP主要基于Client/Server的逻辑备份方式转换为服务器端的快速备份,数据泵主要工作在服务器端,可以通过并行方式快速装入或卸载数据,而且可以在运行过程中调整并行的程度,以加快或减少资源消耗。   
  78.       数据泵通过新的API来建立和管理,这些新的工作主要由DBMS_DATAPUMP来完成。新的导入/导出工具完全成为了一个客户端应用,通过 IMPDP/EXPDP执行的命令实际上都是在调用Server端的API在执行操作,所以一旦一个任务被调度或执行,客户端就可以推出连接,任务会在 server端继续执行,随后通过客户端实用程序从任何地方检查任务的状态和进行修改   
  79. 二、数据泵的使用   
  80. 示例: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp   
  81. 注意到与EXP不同,EXPDP增加了一个主要的参数:DIRECTORY   
  82. 这个参数是用来定义一个路径,前面已经提到,数据泵主要在Server端工作,导出文件需要写出到Server端本地目录,这个DIRECTORY就是对应的Server端的路径   
  83. 如:   
  84. //创建目录   
  85. create or replace directory  expdir as 'd:/';   
  86. //给test赋予目录的读写权限   
  87. grant read,write on directory expdir to test;   
  88. //导出数据   
  89. C:/>expdp test/test@acf   dumpfile=test.dmp directory=expdir   
  90. 三、EXPDP/IMPDP的停止与重启动   
  91. EXPDP和IMPDP的本质在于,通过API调用,把传统的EXP/IMP类交付式模式的操作,转变成数据库内部的job任务,从而实现了任务的可终止与重启动。   
  92. c:/expdp test/test@acf directory=dpdata dumpfile=full.dmp full=y job_name=expfull   
  93. 在执行过程中,可以拿下Ctrl+C组合键,退出当前交互模式,退出之后,导出操作不会停止,这不同于Oracle以前的EXP。以前的EXP,如果退出交互式模式,就会出错终止导出任务。   
  94. 在Oracle 10中,由于EXPDP是数据库内部定义的任务,已经与客户端无关。退出交互之后,会进入export的命令行模式,此时支持status等查看命令:   
  95. Export> status   
  96. 如果想停止改任务,可以发出stop_job命令   
  97. Export> stop_job   
  98. 接下来可以通过命令行再次连接到这个任务   
  99. c:/expdp test/test@acf attach=expfull   
  100. 通过start_job命令重新启动导出   
  101. Export> start_job   
  102. 4、EXPDP排出部分对象的导出   
  103. 在EXPDP的帮助文件中,可以看到存在EXCLUDE和INCLUDE参数   
  104. 这个两个参数文档中介绍的命令格式存在问题,这个两个参数的正确用法是:   
  105. EXCLUDE=OBJECT_TYPE[:name_clause][,...]   
  106. INCLUDE=OBJECT_TYPE[:name_clause][,...]   
  107. 示例:   
  108. expdp   schema=scott exclude=sequence,table:"in('EMP','DEPT')"  
  109. impdp   schema=scott include=function,package,procedure,table:"='EMP'"  
  110. 有了这些还不够,由于命令中包含了多个特殊字符,在不同的操作系统下需要通过转义字符才能使上面的命令顺利执行   
  111. 如:EXCLUDE=TABLE:/"IN('BIGTALE')/"  

你可能感兴趣的:(oracle,数据库,任务,constraints,server,oracle10g)