expdp与impdp导出导入指定表

                       

oracle里指定导入导出表,原本在10g或以前,很简单的:

一、10g或以前

1、导出指定表exp 'sys/pwd@server1 as sysdba'file=c:\temp\tables.dmp tables=(schema1.table1,schema1.table2)2、导入指定表imp 'sys/pwd@server2 as sysdba'file=c:\temp\tables.dmp fromuser=schema1 touser=schema1 tables=(table1,table2)ignore=Y
  
  
  • 1
  • 2
  • 3
  • 4
  • 5

二、11g或12c
但12C以后,似乎就不支持这种写法了。可以这样写:

1、导出指定表expdp 'sys/pwd@server1 as sysdba'directory=dbbak dumpfile=tables.dmp logfile=tables.log tables=schema1.table1,schema1.table22、导入指定表--如果源库和目标库对应的表空间没变: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,源表空间:目标表空间
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

注意目标库的schema对应的账号,因为可能涉及到创建表等各种元素,要有足够的权限,才能导进去

其中,dbbak没有的话,要先创建:

在sqlplus下:

create directory dbbak as 'c:\temp';--(手动创建temp文件夹)grant read,write on directory dbbak to public;
  
  
  • 1
  • 2

这个dbbak是个啥东东呢?据说数据库某种程度上类似一个操作系统,它有自己的一套磁盘管理机制,一般不直接使用操作系统的文件系统。甚至乎,它希望直接使用“生磁盘”,就是没有格式化过的磁盘。所以,dbbak是一个磁盘路径映射,要将操作系统下的路径映射到oracle里,才能使用。

以上这个expdp,impdp导出导入指定表,网上搜了之后,发觉很少有直接能使用的例子,我这两个还是综合起来,经过一些测试才通过的。


另外,如果操作系统是WIN2012或以上操作系统,你在power shell里运行以上代码,是不行的。一定要在DOS命令行窗口才可以。似乎这个power shell还停留在oracle 10g时代,一点也不power。

           
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle数据库提供了expdpimpdp命令用于备份和恢复数据库。这两个命令的使用方式如下: 1. expdp命令 expdp命令用于备份Oracle数据库,它能够将某个schema或整个数据库导出到一个二进制文件中。具体命令格式如下: ``` expdp username/password@connect_string DIRECTORY=directory_name DUMPFILE=dumpfile_name.dmp SCHEMAS=schema_name ``` 其中: - `username/password@connect_string`:指定连接Oracle数据库的用户名、密码和连接字符串。 - `DIRECTORY=directory_name`:指定备份文件的目录。 - `DUMPFILE=dumpfile_name.dmp`:指定备份文件的名称。 - `SCHEMAS=schema_name`:指定要备份的schema名称,多个schema可以用逗号分隔。 执行命令后,Oracle数据库会将指定schema或整个数据库导出到一个二进制文件中。 2. impdp命令 impdp命令用于恢复Oracle数据库,它能够将之前导出的二进制文件导入到数据库中。具体命令格式如下: ``` impdp username/password@connect_string DIRECTORY=directory_name DUMPFILE=dumpfile_name.dmp SCHEMAS=schema_name ``` 其中: - `username/password@connect_string`:指定连接Oracle数据库的用户名、密码和连接字符串。 - `DIRECTORY=directory_name`:指定备份文件所在的目录。 - `DUMPFILE=dumpfile_name.dmp`:指定备份文件的名称。 - `SCHEMAS=schema_name`:指定要恢复的schema名称,多个schema可以用逗号分隔。 执行命令后,Oracle数据库会将指定schema或整个数据库从备份文件中恢复出来。 需要注意的是,expdpimpdp命令需要在Oracle数据库服务器上执行,而不是在客户端。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值