跳转至

Oracle 11g 导入导出基本操作

Source

1. oracle 11g 数据库的导入导出

  • *

  • oracle11g 数据库的导入/导出,就是我们通常所说的oracle数据的还原/备份。

  • 数据库导入:把.dmp 格式文件从本地导入到数据库服务器中。
  • 数据库导出:把数据库服务器中的数据导出到本地生成.dmp格式文件。

2. oracle 11g 数据库导入导出的3种方式

  • *

  • 传统方式:exp(导出)和imp(导入);

  • 数据泵方式:expdp导出和impdp(导入);
  • 第三方工具:PL/sql Develpoer,Navicat等;

3. 3种方法的优缺点

  • *

3.1 exp/imp:

  • 优点:代码书写简单易懂,从本地即可直接导入,不用在服务器中操作,降低难度,减少服务器上的操作也就 保证了服务器上数据文件的安全性。
  • 缺点:这种导入导出的速度相对较慢,合适数据库数据较少的时候。如果文件超过几个G,大众性能的电 脑,至少需要4~5个小时左右。

3.2 expdp/impdp

  • 优点:导入导出速度相对较快,几个G的数据文件一般在1~2小时左右。
  • 缺点:代码相对不易理解,要想实现导入导出的操作,必须在服务器上创建逻辑目录(不是真正的目录)。我们 都知道数据库服务器的重要性,所以在上面的操作必须慎重。所以这种方式一般由专业的程序人员来完 成(不一定是DBA(数据库管理员)来干,中小公司可能没有DBA)。

3.3 PL/sql Develpoer:

  • 优点:封装了导入导出命令,无需每次都手动输入命令。方便快捷,提高效率。
  • 缺点:长时间应用会对其产生依赖,降低对代码执行原理的理解。

4.导入导出方法与实例

  • *

4.1 传统方式(exp/imp)

4.1.1 通用命令

  • exp(imp) username/password@servicename:1521 file=”d:\temp.dmp” full = y;

4.1.2 参数解释

  • exp:导出命令,导出时必写。
  • imp:导入命令,导入时必写,每次操作,二者只能选择一个执行。
  • username:导出数据的用户名,必写;
  • password:导出数据的密码,必写;
  • @:地址符号,必写;
  • servicename:Oracle的服务名,必写;
  • 1521:端口号,1521是默认的可以不写,非默认要写;
  • file=”e:\temp.dmp” : 文件存放路径地址,必写;
  • full=y :表示全库导出。可以不写,则默认为no,则只导出用户下的对象

4.1.3 导出导入实例

  • 按全库导 exp(imp) system/wisense@orcl file=”e:\temp.dmp” full = y;
  • 按用户导 exp(imp) system/wisense@orcl file=”e:\temp.dmp” owner(username1,username2,username3,…);
  • 按表名导 exp(imp) system/wisense@orcl file=”e:\temp.dmp” tabels= (table1,table2,table3,…);
  • 按表空间导 exp(imp) system/wisense@orcl file=”e:\temp.dmp” tablespaces= (tablespace1,tablespace2,tablespace3,…);

4.2 数据泵方式(expdp/impdp)

4.2.1 通用命令 expdp(impdp) username/password@servicename:1521 schemas=username directory=dumpdir dumpfile=temp.dmp [remap_schema=origin_username:target_username] [remap_tablespace=origin_tablespace:target_tablespace] [logfile=file1.log];

4.2.2 参数解释

  • exp:导出命令,导出时必写;
  • imp:导入命令,导入时必写,每次操作,二者只能选择一个执行;
  • username:导出数据的用户名,必写;
  • password:导出数据的密码,必写;
  • @:地址符号,必写;
  • servicename:Oracle的服务名,必写;
  • 1521:端口号,1521是默认的可以不写,非默认要写;
  • schemas:导出操作的用户名;
  • remap_schema=源数据库用户名:目标数据库用户名,二者不同时必写,相同可以省略;
  • remap_tablespace=源数据库表空间:目标数据库表空间,二者不同时必写,相同可以省略;
  • directory:创建的文件夹名称;
  • dumpfile:导出的文件;
  • logfile:导出的日志文件,可以不写;

4.2.3 导出导入实例

  • 按全库导 expdp(impdp) system/wisense@orcl directory=data_pump_dir dumpfile=temp.dmp FULL=y;
  • 按用户导 expdp(impdp) system/wisense@orcl schemas=username directory=data_pump_dir dumpfile=temp.dmp;
  • 按表名导 expdp(impdp) system/wisense@orcl tables=emp,dept directory=data_pump_dir dumpfile=temp.dmp;
  • 按表空间导 expdp(impdp) system/wisense@orcl tablespaces=temp,example directory=data_pump_dir dumpfile=temp.dmp;
  • 按查询条件导 expdp(impdp) system/wisense@orcl tables=emp query=’sqlwhere’ directory=data_pump_dir dumpfile=temp.dmp;
  • 改变用户和表空间导入 impdp system/wisense@orcl schemas=username directory=data_pump_dir dumpfile=temp.dmp remap_schema=origin_username:target_username remap_tablespace=origin_tablespace:target_tablespace
  • 追加数据 impdp system/wisense@orcl schemas=system table_exists_action directory=data_pump_dir dumpfile=temp.dmp ;

4.2.4 其他命令

  • 连接登录 sqlplus /nolog conn system/wisense
  • 查看表空间 select * form dba_tablespaces;
  • 创建表空间 create tablespace ‘wisense’ datafile ‘d:\app\Administrator\oradata\orcl\wisense.dbf’ size 100M autoextend on next 1M maxsize 20480M(unlimited) extent management local;
  • 创建逻辑目录 create directory dumpdir as ‘d:\oracle_dump_dir';
  • 创建用户 create user username identified by username default tablespace ts_username;
  • 给用户赋予在指定目录的操作权限 grant read,write on directory dumpdir to username;