前言:努力的人最后一定不会太差!!关注博客或者加Q:1445696451一起努力!~~~~~~~~分割~~~~~~~~~
一、简介
1、逻辑备份:是创建数据库对象的逻辑副本,并存入一个二进制转储文件的过程。逻辑备份和逻辑恢复从本质上来讲,就是数据的导出和导入。
2、数据泵:是一中在数据库之间或者在数据库域操作系统之间高速传输数据的技术。可以把比作水流,那么数据泵就像水泵一样,可以将数据抽取出来存到其他的位置。数据泵工具运行与服务器之上,数据库管理员需要指定数据库操作目录用来保存这些转储的二进制数据。
二、操作
1、建立物理存储目录
mkdir -p /opt/datapump
chown -R oracle:oinstall /opt/datapump
chmod -R 775 /opt/datapump
2、创建操作目录
conn sys/123456 as sysdba
create directory dump_dir as ‘/opt/datapump/’;
3、授权scott对dump_dir可读、可写
grant read,write on directory dump_dir to scott;
4、建立测试用户
create user zhangsan identified by 123456;
grant connect,resource to zhangsan;
grant read,write on directory dump_dir to zhangsan;
5、操作部分
语法格式
impdp/expdp user/password directory=operating_directory_name
dumpfile=dumpfile_name tables/schemas/tablespaces/full
注释:
impdp :导入
expdp :导出
directory=operating_directory_name :指定操作目录
dumpfile=dumpfile_name :指定转储文件
tables :操作表
schemas :操作用户
tablespaces :操作表空间
full :操作全部/整个数据库
##还有其他很多参数,不详细解释了,只列出这几个最常用的
1)将用户的表导出/导出(备份/恢复)
expdp scott/tiger directory=dump_dir dumpfile=scott_emp.dmp tables=emp;
:导出scott的emp表命名为 scott_emp.dmp
impdp scott/tiger directory=dump_dir dumpfile=scott_emp.dmp tables=emp;
:将scott_emp.dmp中的emp 信息导入到scott下
2)将用户的表导给其他用户
impdp system/123456 directory=dump_dir dumpfile=scott_emp.dmp
tables=scott.emp remap_schema=scott:zhangsan;
:将scott的emp表通过数据泵 导给zhangsan。这时候的操作需 要使用具有dba权限的用户进 行操作
3)导出用户模式(相当于用户的属性)
expdp scott/tiger directory=dump_dir dumpfile=scottschema.dmp schemas=scott;
:导出用户scott模式
impdp system/123456 directory=dump_dir dumpfile=scottschema.dmp
schemas=scott remap_schema=scott:zhangsan
:将scott的用户模式导给 zhangsan;该操作可用于批量部 署Oracle用户。假如说scott拥 有了一个权限,那么zhangsan 同样获得该权限,某种情况可以 说相对于给zhangsan进行授权 操作,所以同样的该操作需要 具有权限才可以。
4)导入导出表空间
conn scott/tiger :连接到scott用户
create tablespace qwe datafile ‘/opt/oracle/oradata/orcl/qwe1.dbf’ size 10M
autoextend on;
:在scott下创建一个表空间qwe, 大小10M,自动增长
expdp system/123456 directory=dump_dir dumpfile=scott_qwe.dmp
tablespaces=scott
:导出scott的表空间qwe
impdp system/123456 directory=dump_dir dumpfile=scott_qwe.dmp
tablespaces=scott :导入(就把expdp替换为impdp)
5)导入导出整个库
expdp system/123456 directory=dump_dir dumpfile=orclfull.dmp full=y :导出整个数据库命名为 orclfull.dmp;在full=y的意思就 是备份整个库。
impdp system/123456 directory=dump_dir dumpfile=orclfull.dmp full=y
:导入整个数据库(同样是替换 expdp为impdp)
三、总结
1、想要通过数据泵进行导入导出操作首先要有一个数据库操作目录
2、必须对操作目录具有读取、写入的权限
3、如果需要导入的数据会影响到其他用户需要具有dba权限
4、对表空间、整个数据库操作需要具有dba权限
5、数据泵可以操作(导入导出)的对象有表、表空间、用户模式、整个数据库。
原文地址:http://blog.51cto.com/13434336/2126619