经常常有人会问:原本的数额在USEMuranoS表空间里面,小编想把它IMP进APP表空间,笔者一度校订了目标顾客的暗中同意表空间,为何结果或许IMP到USELANDS表空间中了呢。

 

本文内容

  • 数据泵与古板的 IMP/EXP 工具的界别
  • 起头接收 datapump 导出
  • 开创数据库目录
  • 重新尝试导出
  • 导入另二个数据库
  • 互连网导入
  • 从 PL/SQL 调用
  • Oracle 11g Release 1 (11.1卡塔尔国 Data Pump 导出和导入概述
  • Oracle 11g Release 1 (11.1卡塔尔(قطر‎ Data Pump 导出和导入方式
  • 参考资料
  • 改善记录

导出/导入是逻辑备份,用于数据迁移,不能够跟冷备份和热备份比较。

从 Oracle 10 g 初始,Oracle 引进了三个新的导入和导出工具数据泵(Oracle
Data pump),是一个劳务,基于大体量数据迁移的布局,用来代表古板的
IMP/EXP 工具。数据泵与古板的导入/导出工具完全两样。古板的 IMP/EXP 是
Oracle 最古老的三个命令行工具,但不扶助全数的 Oracle 10g 和 11g
的意义。这么些新的工具名称为 expdp 和 impdp。

在Oracle数据库管理体系中,创造库表时要分配一个表空间,借使未钦赐表空间,则运用系统客户确省的表空间。

至于此难点,作如下解释:

纵然如此是依据顾客的方法导出的,但导入从前,还是必必要有同样的顾客存在,删除客商以往,是无能为力开展导入的
–重新创造回zlm客商 SQL> create user zlm identified by zlm;

数据泵与历史观的 IMP/EXP 工具的界别


  • 历史观的 IMP/EXP
    工具,都作为客商端程序运维,如果在导出进度中产生网络中断或顾客端程序卓殊,都会引致导出操作失利;而数据泵首要专门的学业在劳动器端,通过新的
    API 来树立和治本,主要由 DBMS_DATAPUMP
    来达成。数据泵完全成为三个客商端应用,IMPDP/EXPDP
    实践的吩咐实际上都以在调用服务器端的 API
    在奉行操作,一旦三个职责被调节或实践,顾客端就可以脱离连接,职分会在服务端继续运转。
  • 古板的 IMP/EXP
    工具,是单线程操作,那在广大境况下产生三个瓶颈;而数据泵二十四线程的,创建四个数据泵工作进程来读/写正在被导出/导入的数额,也得以创制相互影响IO服务器实行。
  • 其余,数据泵还应该有别的优势。其实,它们的不同都归属结构的差别。传统的
    IMP/EXP 完结是在顾客端进行,而数据泵是在调用服务端的 API。

在Oracle实际运用中,我们兴许会赶过这么的难题。处于品质依然另一方面包车型大巴杜撰,须求退换某些表也许是某些顾客的全数表的表空间。通常的做法就是第一将表删除,然后再次建表,在新建表时将表空间钦定到大家须要更换的表空间。假使该客户已经保存了汪洋数据,这种方法就就突显不是很有利,因为有巨量数量供给超前备份出来。下边介绍一种接纳数据库的导出/导入功效来贯彻再一次组织数据库表空间的法门。

Oracle并未提供哪些参数来钦赐要导入哪个表空间,数据暗中同意将导入到原来导出时数据所在的表空间中,然而大家能够通过以下的点子来促成导入到分化的表空间。

即便zlm客户的暗许表空间是USE锐界S,不过用imp导入后的表依然会去找原本的表空间开展回复,即“ZLM”,那么大家把本来的表空间也删除掉,会什么啊?
–删除ZLM表空间后测量试验复苏意况 SQL> drop tablespace zlm including
contents;

 

下边是三个简易的事例,假定要将客户oa下的整个表从表空间A调换来表空间B,具体步骤如下:

1.在IMP时候利用INDEXFILE参数

只顾,使用including
contents只是把可决定文件中相应的信息删除,物理上依然存在于OS的磁盘上的,要是要会同文件一同删除,那么快要动用including
contents and datafiles,那么就连渣渣也不剩了

开始用 datapump 导出


$ expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp

 

Export: Release 10.2.0.1.0 - 64bit Production on Friday, 31 March,  2006 11:36:07

Copyright (c) 2003, 2005, Oracle.  All rights reserved.

 

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production

With the Partitioning, OLAP and Data Mining options

 

ORA-39002: invalid operation

ORA-39070: Unable to open the log file.

ORA-39087: directory name DMPDIR is invalid

说明:

  • “dmpdir” 为导出目录;
  • “scott.dmp” 为导出的 datadump 文件;
  • scott 客商下的表在暗许表空间 USE大切诺基S 和一时表空间 TEMP
    下。所以那个命令将 scott 客商把本人的表(对象)导出来;
  • 因为,Oracle
    已经有那七个表空间,所以,直接导入就能够。但是,要是是和睦创建的表空间,就先要创立这几个表空间,然后再导入。

导出失利了!因为,我们必要先创设目录!

 

1.1. 导出db_zgxt下的全部表 导出db_zgxt下的全体表1.
导出db_zgxt下的全数表

当给此参数钦点了某一文件名,IMP的时候具有的index将不会一向导入到表空间中,而是在内定的文书中变化创设index的脚本。
然后用文本编辑器张开此文件,直接编辑脚本中的storage参数,修正为想要导入的表空间名称。
然后重新奉行IMP,使用INDEXS=n参数将除Index之外的Objects导入。
最后步入SQL*PLUS,直接运维刚才编辑的本子,生成索引。
该方法适用于将index以致constraints导入钦赐的表空间。
2.更换目的顾客的暗中同意表空间
那正是地点说的经常有人提问的主意。不过上述的标题因而未有中标,是因为相当不够了上面包车型地铁几步。
首先,收回指标客商的”UNLIMITED TABLESPACE”权限: revoke unlimited
tablespace from username;
其次,打消指标客户在原数据导出表空间中的分配的定额,那样才具反逼IMP把数据导入到客户的暗许表空间中去。
然后,将希望导入的表空间设为目标顾客的暗中同意表空间,并加上分配的定额。

当大家把本来zlm客商导出时的表空间ZLM删除未来再倒入,当时会开掘imp会把顾客导到数据库缺省的USE奥迪Q5S表空间上去,基于这种规律,当我们做逻辑导入导出的时候,尽量保证源端与对象端有相仿的情形,当然还包罗字符集(这里未有做测量检验)等。不然在导入数据后,恐怕会发生意料之外市气象,比方说源库的表空间是非常大的,可是出于在对象库中从未开创相应的表空间,暗许放到了USE安德拉S表空间中,蒙受和源库发生了分化,大概导入的时候就径直报错了。当然了,字符集更是二个要注意的主题素材。

创办数据库目录


实践如下命令,创制三个数据库导出目录。该目录必得指向贰个同三个服务器的可行目录作为数据库:

SQL> CREATE DIRECTORY dmpdir AS '/opt/oracle';

Directory created.

 

SQL> GRANT read, write ON DIRECTORY dmpdir TO scott;

Grant succeeded.

说明:

  • “dmpdir” 为导出目录,”/opt/oracle”
    为数据库路线(也得以操作系统的相对路线,如”d:\db_backup”);
  • 导出目录授权。让 scott 客户对该目录可读写。这样,scott
    客商工夫不荒谬访谈该目录,将数据库内容和导出的日记文件放在此。

备考:Oracle 从 Oracle 10g Wrangler2 最初,引进了三个称为 “DATA_PUMP_DI昂科雷”
的暗中认可目录,如下所示:

SQL> SELECT directory_path FROM dba_directories WHERE directory_name = 'DATA_PUMP_DIR';

 

DIRECTORY_PATH

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

/app/oracle/product/10.2.0/rdbms/log/

 

EXP oa/password@pararmount_server FILE=d:10_27_oa.dmp
LOG=d:10_27_oa.LOG

admin

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注