一、10g或以前
1、导出指定表
exp 'sys/pwd@server1 as sysdba' file=c:\wang\tables.dmp tables=(schema1.table1,schema1.table2)
2、导入指定表
imp 'sys/pwd@server2 as sysdba' file=c:\wang\tables.dmp fromuser=schema1 touser=schema1 tables=(table1,table2) ignore=Y
二、11g或12c
1、导出指定表
expdp 'sys/pwd@server1 as sysdba' directory=databak dumpfile=tables.dmp logfile=tables.log tables=schema1.table1,schema1.table2
2、导入指定表
--如果源库和目标库对应的表空间没变:
impdp 'sys/pwd@server2 as sysdba' directory=databak dumpfile=tables.dmp tables=schema1.table1,schema1.table2 REMAP_SCHEMA=schema1:schema1
--REMAP_SCHEMA=schema1:schema1,源库shema:目标库schema
--如果源库和目标库对应的表空间不一样:
impdp 'sys/pwd@server2 as sysdba' directory=databak dumpfile=tables.dmp tables=schema1.table1,schema1.table2 remap_schema=schema1:schema2 remap_tablespace=tablespace1:tablespace2
--remap_schema=schema1:schema2,源库shema:目标库schema
--remap_tablespace=tablespace1:tablespace2,源表空间:目标表空间
注意目标库的schema对应的业务用户,因为可能涉及到创建表等各种元素,要有足够的权限,才能导进去
其中,databak没有的话,要先创建:
在sqlplus下:
create directory databak as 'c:\wang';--(手动创建wang文件夹)
grant read,write on directory databak to public;
这个databak是一个磁盘路径映射,要将操作系统下的路径映射到oracle里,即可使用这个路径作为数据导出导入的数据泵。
linu服务器中使用sys用户不输密码导出数据,用户密码处是需要转译的,类似如下:
导出:
expdp \'/ as sysdba\' directory=databak dumpfile=test.dmp logfile=test.log tables=schema1.tmp1,schema1.tmp2
导入:
impdp \'/ as sysdba\' directory=databak dumpfile=test.dmp logfile=test.log tables=schema1.tmp1,schema1.tmp2 remap_schema=schema1:schema2
|