导入不同表空间的数据

以前在导入表空间的时候,为了保证表导入完成,需要先创建一个与数据来源相同的表空间名,这样造成很麻烦。在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;

 查询表的数据是否一样

猜你喜欢

转载自jilin.iteye.com/blog/1917525