欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

导入不同表空间的数据 博客分类: oracle  

程序员文章站 2024-03-16 12:12:46
...

以前在导入表空间的时候,为了保证表导入完成,需要先创建一个与数据来源相同的表空间名,这样造成很麻烦。在oracle 10g后新加了impdp和expdp两种数据泵,可以实现不同表空间数据的导入。

1、在源数据库需要导入的用户中创建directory,这个是必须有的。我的用户名和密码都是alarm

 

SQL> conn alarm/alarm;
SQL> create directory test as 'd:\dirc';

 2、使用expdp导出

 

 

expdp alarm/alarm@orcl schemas=alarm directory=test dumpfile=alarm1.dmp

 这时会在d:\dirc目录下生成所需的dmp文件和日志文件

如果要指定不导出某些表,可以用exclude属性

expdp alarm/alarm@orcl schemas=alarm directory=test dumpfile=alarm1.dmp exclude=table:\"in('sk_data')\"

3、在目标数据库用户中也创建directory,名字可以不同.

SQL> conn alarm/alarm;
SQL> create directory dump as 'd:\test';

 4、使用impdp导入数据

impdp alarm/alarm directory=dump dumpfile=ALARM1.DMP remap_schema=alarm:alarm remap_tablespace=ALARM:XCC

 remap_schema=来源用户名:目标用户名

remap_tablespace=来源表空间名:目标表空间名

5、导入后使用

SQL> select count(1) from tabs;

 查询表的数据是否一样