exp/imp导入导出技术是基于客户机的,而数据泵是基于服务器的,因此效率比前者快15-45倍。
用途:
将数据从开发环境转到测试或生产环境
在不同操作系统上的数据库之间传递数据
在修改重要的表之前进行备份
备份数据库
把数据对象从一个表空间移到另一个表空间
在数据库之间移动表空间
重新组织零散的表数据
提取表和其他对象(process、程序包)的dll
数据泵组成部分:
DBMS_DATAPUMP程序包
DBMS_METADATA程序包
命令行客户机
Directory(目录对象)
从安全的角度讲,不能让用户在服务器上制定绝对路径,避免读取、覆盖不该操作的文件。oracle自动创建一个目录DATA_PUMP_DIR,使用select * from dba_directories可以查看目录。
只要拥有sys和system的用户才能使用DATA_PUMP_DIR,因此可以使用system进行数据库作业。
创建目录:create directory data_dump_dir2 as '/u01/app/orcl/dump',这样就可以创建一个目录,然后使用export将指保存到DATA_PUMP_DIR。export DATA_PUMP_DIR=DATA_PUMP_DIR2。 拥有CREATE ANY DIRECTORY权限的用户可以创建directory。
执行数据泵的导出
命令行:
expd system/system directory=data_dump_dir dumpfile=data.bmp
也可以使用参数文件的方式:
myfile.txt:
SCHEMA=HR
DIRECTORY=DATA_DUMP_DIR
DUMPFILE=DATA.DMP
调用myfile:expdp parfile=myfile.txt
数据泵导出方式:
全导出 导出整个数据库,使用full参数。需要EXPORT_FULL_DATABASE角色
模式导出 导出单独用户的数据和对象,使用SCHEMA参数 这是默认方式 expdp system/passwd dumpfile=data.dmp schema=scott
表空间方式 使用TABLESPACE参数,导出一个活多个表空间中的全部表。
表方式 使用tables参数,导出一个活多个表
导出参数:
directory :转存文件盒日志文件的目录对象
dumpfile :转存文件名称
filesize: 转存文件大小 ,若转存文件大小不够,则转存文件达到此限制时,则导出作业将停止。
parfile :参数文件
logfile和nologfile :日志参数
reuse_dumpfiles :可以使用此参数覆盖一个转存文件。
compression:允许用户指定在将导出数据写入转储文件前,压缩哪些数据。默认情况下,所有数据压缩。可以指定NONE值禁止压缩。参数值(ALL,data_only ,etadata_only ,none)
与导出方式有关的参数:full schema ,tablespace transport_tablespace,transport_full_check
导出过滤参数
connec:过滤要写入导出转储文件中的内容,ALL:同时导出表数据和其他对象的定义(元数据),data_only :只导出表行 metadata_only 只导出元数据
exclude /include 执行元数据过滤。例如exclude=table:“LIKE 'EMP'” 排除emp开头的所有表。
pemap_data :允许用一个新值替换某个列中的多个值
data_options
query :借助sql语句导出数据 query=oe.orders:"where order_id>100000"
对导出数据加密: ENCRYPTION :all 加密所有数据,data_only:只加密写到转存文件的数据 encrypted_columns_only :对使用tde特性的加密咧进行加密 metadata_only:只对元数据加密 none:不加密
ENCRYPTION_ALGORITHM 指定加密算法。
ENCRYPTION_MODE 安全类型 。
ENCRYPTION_PASSWORD