10gocm-)session4-)数据仓库(二)

2014-11-24 11:34:56 · 作者: · 浏览: 7
ernal Tables –> 14 The ORACLE_DATAPUMP Access Driver
外部表:把数据保存在操作 系统层面上,并不保存在表空间上,即可以把数据写入外部表又可以读取外部表到数据库(只读到内存里)。外部表就是操作系统上的一个二进制文件不是纯文本文件。可用strings查看

场合:导出的数据可用于二次开发。数据迁移

要求使用oracle数据泵导出外部表并跨库加载
过程:ocm01卸载数据,传输到ocm02加载数据

外部表实验规划
步骤 ocm01 ocm02 说明
1 创建dir_dmp 位置:ocm01:/home/oracle
2 导出t2_part1.dat,t2_part2.dat到dir_dmp
3 创建dir_dmp 位置:ocm02:/home/oracle
4 拷贝t2_part1.dat,t2_part2.dat到dir_dmp scp把文件从ocm01拷贝到ocm02
5 加载到数据库

创建directory
sqlplus / as sysdba@ocmdb
create user ext identified by ext;
grant dba to ext;
conn ext/ext
create directory dir_dmp as '/home/oracle';
grant read,write on directory dir_dmp to public; 授予读/写权限给目录对象,把目录对象给所有用户
创建外部表,使用数据泵工具卸载数据,使用2个cup并行卸载,加快速度
create table t2
organization external
(type oracle_datapump
default directory dir_dmp
location ('t2_part1.dat','t2_part2.dat')
)
parallel 2
as
select owner,object_id,object_name from dba_objects where owner='SYSTEM';
strings命令可以读取卸载得到的二进制文件内容

strings t2_part1.dat

在ocm02创建外部表t3读取t2_part1.dat和t2_part2.dat
scp t2_part1.dat t2_part2.dat ocm02:/home/oracle
sqlplus / as sysdba@ocmdb02
create user ext identified by ext;
grant dba to ext;
conn ext/ext
create directory dir_dmp as '/home/oracle';
grant read,write on directory dir_dmp to public;
加载数据到t3
create table t3 (owner varchar2(100),object_id varchar2(100),object_name varchar2(100))
organization external
(type oracle_datapump
default directory dir_dmp
location ('t2_part1.dat','t2_part2.dat'));
select count(*) from t3;
到此我们的外部表方式数据迁移完成。