1、导出指定表
expdp 'sys/pwd@server1 as sysdba' directory=dbbak dumpfile=tables.dmp logfile=tables.log tables=schema1.table1,schema1.table2
2、导入指定表
--如果源库和目标库对应的表空间名称一样:
impdp 'sys/pwd@server2 as sysdba' directory=dbbak 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=dbbak 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对应的账号,因为可能涉及到创建表等各种元素,要有足够的权限,才能导进去
其中,dbbak没有的话,要先创建:
create directory dbbak as 'c:\temp';--(将dbbak挂载到操作系统下的c:/temp文件夹)
grant read,write on directory dbbak to public;
dbbak是我们存放数据导出文件的地方,它挂载到操作系统的某个文件夹,比如c:\temp。据说数据库某种程度上类似一个操作系统,它有自己的一套磁盘管理机制,一般不直接使用操作系统的文件系统。甚至乎,它希望直接使用“生磁盘”,就是没有格式化过的磁盘。所以,dbbak是一个磁盘路径映射,要将操作系统下的路径映射到oracle里,才能使用.