Oracle数据泵
一、数据泵技术的优点
原有的导出和导入技术基于客户机,而数据泵技术基于服务器。默认所有的转储,日志和其他文件都建立在服务器上。以下是数据泵技术的主要优点:
1、改进了性能
2、重新启动作业的能力
3、并行执行的能力
4、关联运行作业的能力
5、估算空间需求的能力
6、操作的网格方式
7、细粒度数据导入功能
8、重映射能力
二、数据泵导出和导入的用途
1、将数据从开发环境转到测试环境或产品环境
2、将数据从开发环境转到测试环境或产品环境
3、在修改重要表之前进行备份
4、备份数据库
5、把数据库对象从一个表空间移动到另一个表空间
6、在数据库直接移植表空间
7、提取表或其他对象的DDL
注意:数据库不建立完备的备份,因为在导出文件中没有灾难发生时的最新数据。但是对于较小的数据库和个别的表空间的导出,数据导出仍然是一个可行的备份工具。
三、数据泵的组成部分
数据泵技术主要有三个以下部件组成:
DBMS_DATAPUMP程序包。 这是驱动数据字段元数据装载和卸载的主要引擎。DBMS_DATAPUMP程序包包括数据泵技术的核心部分,此核心部分以过程的形式出现,实际驱动数据装载和卸载。
DBMS_METADATA。 为了提取并修改元数据,Oracle提供了DBMS_METADATA程序包。
命令行客户机。两个实用程序expdp和impdp进行导出和导入工作
四、数据泵文件
对于数据泵转储文件,可以使用三种类型的文件:
转储文件:此文件存储实际原数据
日志文件:记录数据泵操作的消息和结果
SQL文件:数据泵使用一种特殊的参数sqlfile,把导入作业中要执行的所有DDL语句写入一个文件中。数据泵并不实际执行SQL,它仅仅是将DDL语句写入由SQLFILE参数制定的文件中。
五、操作
chmod -R 777 /opt //root模式下开放/opt文件夹的权限
su - oracle //切换oracle用户
mkdir /opt/app/bak //创建数据泵备份文件目录
sqlplus / as sysdba //使用管理员身份登录
SQL> create directory dump_dir as '/opt/app/bak'; #新建目录对象dump_dir,将目录"/opt/app/bak"进行映射
SQL> create user c##tom identified by abc123 #创建"c##tom"测试用户并授权
2 default tablespace users
3 temporary tablespace temp
4 quota unlimited on users;
grant connect,resource,dba to c##tom; #授权连接、管理数据库以及dba管理员权限
grant read,write on directory dump_dir to c##tom; #授权用户对directory目录进行读、写执行权限
conn c##tom/abc123 #切换c##tom用户
用tom用户创建测试数据:info,grade两个表
create table info
(
id number(5),
name varchar(10)
);
insert into info values(1,'zhangsan'); #随便插入一条数据
create table grade
(
id number(5),
name varchar(10),
score varchar(5)
);
insert into grade values(1,'lisi','88'); #表grade中插入一条数据
导出数据
expdp c##tom/abc123 directory=dump_dir dumpfile=tom.dmp tables=info,grade
#导出c##tom用户下的表
解析:
directory #指定其路径映射的别名名称,导出数据的路径
dumpfile #指定转储文件的名称,默认名称为expdat.dmp
tables #指定表模式导出
查看导出的数据文件: ls /opt/app/bak/
导入数据
sqlplus c##scott/abc23 #使用"tom"用户登录
SQL> drop table info; #模拟故障删除其中一张表
恢复数据:
impdp c##tom/tom123 directory=dump_dir dumpfile=tom.dmp tables=info #恢复info表及其数据
sqlplus c##tom/tom123 #登录"scott"用户
SQL> select table_name from user_tables; #查看是否恢复成功
六、总结
数据泵使用EXPDP和IMPDP时应该注意的事项:
1、EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
2、EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。
3、IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件。
4、expdp或impdp命令时,可暂不指出用户名/密码@实例名 as 身份,然后根据提示再输入,如:
expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dir;