第20章 数据的移动

1. Oracle导出程序从oracle数据库中抽取数据,之后将这些数据存在二进制格式的操作系统文件中。这种格式的数据文件只有导入程序能够读取,导入程序将其中的数据装入oracle数据库。

2. 利用导出应用程序,可以使用以下的方式进行数据的导出:

  1)表方式:只导出某一用户下制定的表,而不是导出该用户所有的表。赋予权限的用户可以导出其他用所拥有的表;

  2)用户方式:导出某一用户下所有的对象。赋予权限的用户可以导出其他用户所拥有的所有对象;

  3)表空间方式:导出指定表空间中所有的对象;

  4)全库方式“可以导出整个数据库中所有的对象,但并不包括sys用户中的对象,数据字典无法导出;

3. 利用导入应用程序,可以使用以下的方式进行数据的导入:

  1)表方式;

  2)用户方式;

  3)表空间方式;

  4)全库方式;

4. 获取有关目录对象全部信息

  select * from dba_directories;

 1)将目录DATA_PUMP_DIR的读权限和写权限授予scott用户

  grant read,write on directory data_pump_dir to scott;

 2)利用数据泵导出数据

  a)创建导出参数文件 scott_par.txt

    directory=data_pump_dir -- 存放导出文件的目录为data_pump_dir所以定的操作系统目录

    table=(emp,dept)            -- 要导出的表为emp和dept

    dumpfile=scott.dmp        -- 导出操作系统文件的名

    query=scott.emp:"where job<>'ANALYST' and sal >1250 " -- 只输出某个表中满足某些特定条件的数据的子集

  b)导出scott用户emp和dept表

    expdp scott/tiger@kxbin parfile=scott_par.txt

  c)导入scott用户emp和dept表

    impdp scott/tiger@kxbin parfile=scott_par.txt

注意:expdp-help和impdp -help获得帮助信息

5. 不同用户及不同表空间之间数据的移动

1). 使用数据泵进行数据导出的准备工作,将参数保存在一个名为exp_par.txt的正文参数文件

  directory=data_pump_dir   -- 导出的二进制物理文件存在data_pump_dir对象所定义的操作系统目录中

  schemas=scott                   -- 导出scott用户下的对象

  dumpfile=schema_scott.dat  -- 导出的二进制物理文件名为schema_scott.dat

  exclude=package                -- 不导出package(软件包)

  exclude=view                     -- 不导出view

  exclude=table:"like '%dump' "  --不导出dump结尾的表

注意:include含义是包含,与exclude互斥,即二者只能用其一

2). 导出命令

  expdp system/manager@kxbin parfile=exp_par.txt

3). 使用数据泵进行数据导入的准备工作,将参数保存在一个名为imp_par.txt的正文参数文件

  directory=data_pump_dir          --  导入的二进制物理文件存在data_pump_dir对象所定义的目录中

  dumpfile=schema_scott.dat       -- 导入的二进制物理文件名为schema_scott.dat

  remap_schema=scott:xiaoming  -- 将文件中原来scott用户下的所有对象导入xiaoming用户中

  remap_tablespace=users:xiaoming  --将文件中原来存在于users表空间的所有对象导入到xiaoming表空间中

4). 导入命令

  impdp system/manager@kxbin parfile=imp_par.txt;

6. 将Oracle的数据传给其他软件(EXCEL)

  1)创建emp.sql文件

    set line 120

    set pagesize 100

    set feedback off

    spool d:\excel\emp

    select * from emp;

    spool off

  2)登录scott用户

    sqlplus scott/tiger@kxbin

  3)执行sql

    @d:\orcl\mgt\emp.sql -- 执行完毕后会生成emp.lst的正文文件

  4)打开EXCEL文件,将数据导入Excel文件中

    

7. 数据泵操作的自动化

  1)创建一个名为data_dump的directory对象,该目录用来存放导出的数据文件

    create directory data_dump as 'd:\orcl\mgt\exportdump';

  2)创建名为log_dump的directory对象,用来存放导出数据时生成的日志文件

    create directory log_dump as 'd:\orcl\mgt\exportdump';

  3)将data_dump和log_dump目录对象的读写权限授予xiaoming用户

    grant read,write on directory data_dump to xiaoming;

    grant read,write on directory log_dump to xiaoming;

  4)查看

    select * from dba_directories;

  5)创建xiaoming_par.txt

    directory=data_dump

    schemas=xiaoming

    dumpfile=schema_xiaoming.dat

    exclude=package

    exclude=view

    exclude=procedure

    exclude=function

    exclude=index:"like 'PK_%' "
  6)创建bat文件

    D:\oracle\product\11.2.0\dbhome_1\BIN\expdp xiaoming/xiaoming@kxbin parfile=d:\orcl\mgt\xiaoming_par.txt

posted on 2013-01-31 14:59  kangxuebin  阅读(482)  评论(0编辑  收藏  举报

导航