oracle 数据的导入导出

一、数据导出

1、为输出路径建立一个数据库的directory对象。

    create or replace directory dumpdir as 'd:\';

    可以通过:select * from dba_directories;查看。

2、给将要进行数据导出的用户授权访问。

    grant read,write on directory dumpdir to test_expdp;

3、将数据导出

    expdp test_expdp/test_expdp directory=dumpdir dumpfile=full.dmp logfile=test_expdp_bak.log schemas=test_expdp

    注意:这句话在cmd窗口中运行,并且最后不要加分号,否则会提示错误。因为这句话是操作系统命令而不是SQL。

 

二、数据导入

1、创建表空间

create tablespace user_data 
logging 
datafile 'Q:\oracle\product\10.2.0\oradata\Test\xyrj_data.dbf'
size 50m 
autoextend on 
next 50m maxsize 20480m 
extent management local;

2、创建用户并指定表空间
create user username identified by password 
default tablespace user_data 
temporary tablespace user_temp;  

3、给用户授予权限
grant connect,resource,dba to username;

 4、数据导入到数据库

impdb username/password DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;

 

 

 

还有更详细的方案

 

    Oracle数据泵导入导出是日常工作中常用的基本技术之一,它相对传统的逻辑导入导出要高效,这种特性更适合数据库对象数量巨大的情形,因为我日常运维的数据库对象少则几千,多则几万甚至几十万,所以传统exp/imp就会非常耗时,而数据泵方式就因此脱引而出,下面就详细总结一下数据泵的使用方法,希望能给初学者带来帮助。

一、新建逻辑目录

       最好以system等管理员创建逻辑目录,Oracle不会自动创建实际的物理目录“D:\oracleData”(务必手动创建此目录),仅仅是进行定义逻辑路径dump_dir;

     sql> conn system/123456a?@orcl as sysdba;

     sql>create directory dump_dir as 'D:\oracleData';

二、查看管理员目录(同时查看操作系统是否存在该目录,因为oracle并不关心该目录是否存在,假如不存在,则出错)

     sql>select * from dba_directories;

三、用expdp导出数据

1)导出用户及其对象 expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp directory=dump_dir;

2)导出指定表 expdp scott/tiger@orcl tables=emp,dept dumpfile=expdp.dmp directory=dump_dir;

3)按查询条件导 expdp scott/tiger@orcl directory=dump_dir dumpfile=expdp.dmp tables=empquery='where deptno=20';

4)按表空间导 expdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmptablespaces=temp,example;

5)导整个数据库 expdp system/manager@orcl directory=dump_dir dumpfile=full.dmp full=y;

四、用impdp导入数据

   在正式导入数据前,要先确保要导入的用户已存在,如果没有存在,请先用下述命令进行新建用户

--创建表空间 create tablespace tb_name datafile 'D:\tablespace\tb_name.dbf' size 1024m AUTOEXTEND ON;

--创建用户 create user user_name identified by A123456a default tablespace tb_name temporary tablespace TEMP;

--给用户授权

sql>grant read,write on directory dump_dir to user_name;

sql>grant dba,resource,unlimited tablespace to user_name;

1)导入用户(从用户scott导入到用户scott) impdp scott/tiger@orcl directory=dump_dir dumpfile=expdp.dmp schemas=scott;

2)导入表(从scott用户中把表dept和emp导入到system用户中) impdp system/manager@orcl directory=dump_dir dumpfile=expdp.dmptables=scott.dept,scott.emp remap_schema=scott:system;

3)导入表空间 impdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmp tablespaces=example;

4)导入数据库 impdb system/manager@orcl directory=dump_dir dumpfile=full.dmp full=y;

5)追加数据 impdp system/manager@orcl directory=dump_dir dumpfile=expdp.dmp schemas=systemtable_exists_action

    以上是日常工作中实际工作中用到的,希望能够给你得到帮助。

posted @ 2017-09-11 16:59  爱生活,爱代码  阅读(177)  评论(0编辑  收藏  举报