Oracle数据库数据泵导入导出

由于开发过程中有时候无法直接连数据库,这时候需要将数据库导入开发环境中,故此总结一个完整的数据库导入导出过程。

注意expdp和impdp命令末尾都不能加分号

  • 1 导出某个用户的所有数据库对象

  • 1.1 Linux导出

su - oracle

授权用户grant exp_full_database to <源数据库用户名>;
exp <源数据库用户名>/<源数据库用户密码>@<实例名> file=/srv/db/temp.dmp

  • 1.2 Windows机器导出

进入sqlplus命令行sqlplus /nolog

用dba用户登录 conn system/a123@localhost/orcl as sysdba

创建目录create or replace directory dump_dir as 'D:\oracle\datafile\';

授权grant read,write on directory dump_dir to <源数据库用户名>;

授权 grant exp_full_database to <源数据库用户名>;

退出sqlplus exit

导出expdp <源数据库用户名>/<源数据库用户密码> directory=dump_dir dumpfile=<数据库文件名dmp后缀> logfile=<日志文件名> schemas=<源数据库用户名>

 

  • 2 导入(以Windows机器为例)

进入命令行sqlplus /nolog

用dba用户登录 conn system/a123@localhost/orcl as sysdba

创建表空间 create tablespace orcltbs datafile 'e:\orcltbs1.dbf' size 50M autoextend on next 5M maxsize 1024M
 extent management local autoallocate segment space management auto;

创建用户create user <目标用户名> identified by <目标用户密码> default tablespace <表空间名>

授权 grant dba to <目标用户名>

创建目录create or replace directory dump_dir as 'D:\oracle\datafile\';

退出sqlplus exit

导入数据库impdp <目标用户名>/<目标用户密码>@<目标数据库机器ip>/<目标实例名> directory=dump_dir dumpfile=<数据库文件名> remap_schema=<源用户名>:<目标用户名> remap_tablespace=<源表空间>:<目标表空间>

 

你可能感兴趣的:(Oracle)