平日里经常使用impdp、expdp命令,今天做个总结,便于以后回顾。
--安装 oracle
数据文件dmp大于4G的请安装企业版(10201_database_win32.zip),体验版(OracleXEUniv.exe)有限制。
我安装的是企业版,因为我的数据在300万。
数据库配置文件已经安装到 c:\oracle\product\10.2.0,同时其他选定的安装组件也已经安装到 c:\oracle\product\10.2.0\db_1。
-------------------------------------------------START-----------------------------------------------------------------
用户名:sys
口令: 123456
...
---连接oracle
C:> sqlplus /nolog
SQL> conn sys/123456 as sysdba
SQL> drop tablespace iteye_space;
--建立表空间(默认大小为10G,当超过10G后以50M增长,没用大小限制)
SQL> create tablespace iteye_space logging datafile 'C:\oracle\product\10.2.0\oradata\orcl\iteye.DBF' size 10000M autoextend on next 50M maxsize UNLIMITED extent management local segment space management auto;
--删除用户
SQL> drop user iteye cascade;
--建立用户
SQL> create user iteye identified by iteye default tablespace iteye_space;
--授权
SQL> grant connect, dba to iteye;
--查询目录对象
SQL> select * from dba_directories;
-----------------------------方法一-----------------------------------
--导入dmp,Directory为系统存在目录对象,将xxx.dmp放入目录对象中
SQL> impdp iteye/iteye DIRECTORY=DATA_PUMP_DIR DUMPFILE=xxx.dmp SCHEMAS=iteye
-----------------------------------------------------------------------
------------------------------方法二-----------------------------
create or replace directory dmp as 'd:\DataBase\'
grant read,write on directory dmp to public;
impdp iteye/iteye DIRECTORY=dmp DUMPFILE=xxx.dmp SCHEMAS=iteye
----------------------------------------------------------------------
------------------------------------------------------END-----------------------------------------------------
Unix平台上打包的dmp文件在windows平台上解压后无法成功导入到oracle数据库中,因为二进制问题,需要在unix平台上解压后传到windows平台上,然后在使用 impdp 命令导入,方可成功。