ITPub博客

首页 > 数据库 > Oracle > exp,imp/expdp,impdp

exp,imp/expdp,impdp

原创 Oracle 作者:xj951423274 时间:2015-10-22 20:43:41 0 删除 编辑
一、EXP\IMP
导出和导入数据库对象的四种模式是: 

1,数据库模式:导出和导入整个数据库中的所有对象

2,表空间模式:导出和导入一个或多个指定的表空间中的所有对象

3,用户模式:导出和导入一个用户模式中的所有对象

4,表模式:导出和导入一个或多个指定的表或表分区

注意:两个不同版本的oracle之间传输数据客户端版本不能高于服务器版本。

导指定表------exp  'sys/pwd@orcl as sysdba'  file=d:\demo.dmp  tabless=(scott.t1,scott.t2) 
                    imp  'sys/pwd@orcl as sysdba'  file=d:\demo.dmp  fromuser=scott 

导自己所有对象-----exp scott/pwd@orcl  file=d:\scott.dmp owner=scott
                            imp 'sys/pwd@orcl  as sysdba' file=d:\scott.dmp  fromuser=scott  touser=scott
                                (也可导入到其他用户)
SYS用户可以exp/imp其他用户的object,是因为SYS含有EXP_FULL_DATABASE和IMP_FULL_DATABASE角色。

sys用户导出的不能用非DBA用户导入。


导表空间-------------- 1,win  表空间设为只读:alter tablespace  xxx read only;
                              2,win exp  '/ as sysdba'  tablespaces=xxx  transport_tablespace=y  file=d:\A.dmp
                                  (导出整个表空间结构)
                              3,将A.dmp文件和表空间的B.dbf文件传入linux系统上的数据库
                              4,linux:imp    userid=\'/ as sysdba \' tablespaces=xxx  transport_tablespace=y    
                                            file=
 /u01/oradata/prod/A.dmp   datafiles=/u01/oradata/prod/B.dbf 
                                           (验证:select  tablespace_name,status from dba_tablespaces)
                              5,win:  alter tablespace  xxx read write;
                                    可传输表空间满足前提条件:                              

                                    1)原库和目标库字符集要一致,若不一致可以通过转换环境变量NLS_LANG解决。

                                     2)字符序有大端(big endian)和小端(little endian)之分,
                                          可以通过
SQL> select * from v$transportable_platform; 查看,如果不一致可以使用rman转换。

                                     3)compatible 10.0.0.或更高

                                     4)迁移的表空间要自包含 (没有索引什么的在别的表空间里)

导数据库对象-------------exp  'sys/pwd@orcl as sysdba '  file=d:\xxx.dmp   full=y


二, EXPDP/IMPDP
        优点:1,比exp、imp速度快1-2个级别;2,重启作业能力;3,并行执行能力;
                  4,并行运行;5,估算空间需求能力;6,操作网络方式

        以sys或system用户完成数据泵导入导出时,可使用缺省的目录data_pump_dir                     
        若设置了环境变量ORACLE_BASE,则data_pump_dir缺省位置是:
        $ORACLE_BASE/admin/数据库名/dpdump否则是:$ORACLE_HOME/admin/库名/dpdump
         select  * from dba_directories;
        

        1)server端先建好一个存放的物理目录

        [oracle@prod ~]$mkdir -p /u01/oradata/prod/dir1     

        2)server端用SYS建立目录对象:

        SQL> create directory MY_DIR as '/u01/oradata/prod/dir1';    

        3)为scott授予目录权限

        SQL> grant read,write on directory MY_DIR to scott;

        4
)导出scott的emp detp的数据,但不导出结构

         expdp scott/scott   directory=MY_DIR dumpfile=expdp_scott1.dmp tables=emp,dept content=data_only          reuse_dumpfiles=y

         impdp scott/scott   directory=MY_DIR dumpfile=expdp_scott1.dmp

        5)导出scott用户

         expdp scott/scott  directory=MY_DIR dumpfile=expdp1.dmp schemas=scott 
          //
注意与exp的区别,schemas代替了owner的写法,由A用户导入B 用户 REMAP_SCHEMA=A:B

        impdp scott/scott  directory=MY_DIR dumpfile=expdp1.dmp 

        6)可传输表空间

        建directory  dir1

        C:\Users\Administrator>expdp '/ as sysdba' directory=dir1 dumpfile=tb1.dmp  transport_tablespaces=tb1

        建directory dir1

        [oracle@linux dir1]$ impdp userid=\'/ as sysdba\' DIRECTORY=dir1 DUMPFILE='TB1.DMP'         TRANSPORT_DATAFILES='/u01/oradata/prod/MYTB1.DBF'





来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28275505/viewspace-1815732/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-07-29

  • 博文量
    22
  • 访问量
    35517