数据迁移

来源:互联网 发布:网络节点度 编辑:程序博客网 时间:2024/05/18 01:05

一、使用exp/imp导出导入

       1、exp导出    

              1)导出某个用户下的一个或多个指定的表

                                  exp  hr/hr   file=table.dmp   tables=(employees,department)    indexes=y     log=table.log

                                   参数   file   导出后生成的名字           tables    要导出的表      indexes    导出索引    log    记录日志

               2)导出hr用户下的所有对象

                                    exp  hr/hr    file=user.dmp  owner=hr   grants=y    log=user.log    statistics=none    rows=n

                                     参数   owner    所有者下的所有对象       grants  导出权限             statistics    导出时忽略报错      row   导出数据行

               3)导出整个数据库

                                    exp   hr/hr   file=data.dmp   full=y   log=data.log       direct=y

                                    参数   full   导出所有      direct     直接导出

               4)使用参数文件 parfile

                                     先创建参数文件par.txt,内容如下

                                      hr/hr    file=data.dmp    full=y     log=data.log    direct=y     statistics=none

                                      执行  exp  parfile=   par.txt

      2、imp导入 

                1)导入一张指定的表

                                   imp   hr/hr   file=emp.dmp   tables=emp   log=tables.log   ignore=y

                                   参数     ignore   忽略导入错误  

            2)导入某个用户下的所有对象

                                   imp  hr/hr   file=user.dmp   fromuser=hr   touser=scott   log=user.log

                                   参数  fromuser    导出文件的用户       touser   导入到那个用户

            3)导入整个数据库

                                    imp  system/oracle    file=data.dmp  full=y

二、使用数据泵expdp导出        

                 使用expdp/impdp数据泵,必须先创建目录对象

       1、创建目录对象

                       a.      在系统上创建文件存储目录  

                                mkdir /home/oracle/dir

                       b.     在数据库中创建对象

                               create directory dir as ‘/home/oracle/dir’;

c.    授权

grant write,read directory to hr;

        2、导出某个指定的表

                          expdp   hr/hr  directory=dir   dumpfile=exp%U.dmp   tables=(employees)

                         directory为导出的存放目录

                         dumpfile为导出后命名的文件

                         tables     为要导出的文件

        3、导出某个或几个用户

                        expdp  system/oracle   directory=dir   dumpfile=users%U.dmp  schemas=(hr,scott)

                        schemas 为要导出的用户名

       4、导出整个数据库

                      expdp system/oracle    directory=dir   dumpfile=data%U.dmp    full=y   parallel=4  filesize=2G

                      full=y  为导出整个数据库

                      parallel 为并行进程

                     filesize为生成多的2G的文件

       5、指定不导出的对象

                     expdp  system/oracle   directory=dir  dumpfile=users%U.dmp   parfile=exp_par.txt

                           参数文件内容如下

                    exclude=table:”like ‘exmp%’ ”

                    exclude=table:”= ‘exmp‘”

                    schemas=hr

                    parfile为调用参数文件

                    exclude为排除以外的导出(大小写敏感)

      6、导出指定类型的对象

                   使用该选项的时候必须使用参数文件

                  expdp   system/oracle  directory=dir  dumpfile=sch.dmp  parfile=exp_par.txt

                  参数文件内容如下

                  include = function

                  include = procedure

                  include = package

                  include = view:”like ‘PRODUCT%’ “

                  schemas = (hr,scott)

      7、指导处数据,不导出表的定义

                    expdp  system/oracle  directory=dir  dumpfile=a%U.dmp  schemas=hr  content=data_onle

                    content导出的内容

                          三个参数值

                            metadata_only 只导出对象的定义信息,不导出数据

                            data_only            只导出实际数据

                            all                             定义和数据都导出

      8、只导出符合指定条件的数据行

                     必须通过参数文件完成

                     expdp   hr/hr   directory=dir   dumpfile=a%U.dmp    parfile=exp_par.txt

                     我们先编辑好exp_par.txt参数文件内容如下

                      tables=(emp)

                      query=emp:”where department_id = 40 ”

                       query指定条件

三、使用impdp导入                    

                 使用expdp/impdp数据泵,必须先创建目录对象

       1、创建目录对象

                           a.      在系统上创建文件存储目录  

                                    mkdir /home/oracle/dir

                           b.     在数据库中创建对象

                                   create directory dir as ‘/home/oracle/dir’;

       2、导入某个指定的表

                        impdp   hr/hr  directory=dir  dumpfile=exp01.dmp    table=(emp)  remap_schema=scott:hr   remap_tablespace=user01:user01

                      将之前在scottemp表用expdp导出的表到exp01.dmp文件后,在通过impdp命令导入到hr用户下同时在源数据库中emp位 于user01表空间中,导入到目标数据库的user02表空间中。

       3、导入某个或某几个用户

                     impdp  system/oracle   directory=dir   dumpfile=user01.dmp   remap_schemas=scott:hr

       4、导入整个数据库

                      impdp  system/oracle  director=dir  dumpfile=data01.dmp   full=y

       5、也可以使用exclude,inclued,query

 

 

 

 

0 0