oracle数据库导⼊导出expdpimpdp命令详细操作过程
⼀、我们为什么现在要⽤expdp/impdp命令,⽽不是使⽤exp/imp命令来备份/还原数据库?
expdp/impdp命令,我们也通常称之为“数据泵(DataPump)”,它具有以下优点:
l 在性能上,具有并⾏处理能⼒,因此可以获得性能上的优势,加快导⼊导出速度。
l 在功能上,
——为数据及数据对象提供更细微级别的选择性
——可以设定数据库版本号(主要是⽤于兼容⽼版本的数据库系统)
——预估导出作业所需要的磁盘空间
——⽀持导⼊时重新映射功能(即将对象导⼊到新的⽬标数据⽂件,架构,表空间等)
——⽀持元数据压缩及数据采样
限制条件:
数据泵是服务端的实⽤程序,只能在数据库服务器上执⾏,不能在客户端执⾏。
如需详细了解,可参考⽹上⽂章:
⼆、准备过程(以下步骤在源数据库和⽬标数据库上均需要执⾏,第⼀次执⾏即可,以后不需要重复执⾏,如不确认是否已做相关设置,可直接执⾏第3步查看)
创建数据库物理存放路径,例如d:\dbbak
(以下3步操作都是)创建逻辑⽬录,指向上⾯所建物理路径。dpdata1为我们定义的逻辑⽬录名。
SQL>create directory dpdata1 as 'd:\dbbak';
验证上述步骤操作是否成功(注意:此处只是验证是否成功创建逻辑路径,并不会检查对应的物理路径是否真实有效)
SQL>select * from dba_directories;
oracle登录命令
以管理员⾝份赋予sbnetdba⽤户赋予在指定⽬录的操作权限,如果有多个⽤户,请对⽤户授权。
SQL>grant read,write on directory dpdata1 to sbnetdba;
三、导出数据(注意下⾯命令不是在SQL下执⾏,⽽是直接在CMD命令⾏中执⾏)
l 按⽤户导数据,如果有多个⽤户,按每个⽤户分别执⾏备份。
expdp sbnetdba/passwd@netdb schemas=sbnetdba dumpfile=expdp.dmp DIRECTORY=dpdata1
——schemas:需要进⾏导出的⽤户⾝份
——dumpfile:导出的⽂件名
——导出完成后,会⽣产export.log⽇志⽂件,记录导出信息,如有疑问可⽤来分析。
四、还原数据
l 先将备份数据拷贝⾄⽬标数据库对应路径下
l 指定⽤户导⼊。如果有多个⽤户,按每个⽤户分别执⾏导⼊。
——如果⽬标库为新建的空库,还没有数据表的时候,可采⽤下⾯语句直接导⼊ (注意红字部分的格式,只有⼀个实例时,不要写成sbnetdba/passwd@netdb):
impdp sbnetdba/passwd DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=sbnetdba
——如果⽬标数据库中已有表存在,我们只想覆盖原有数据,则需加⼊table_exists_action= REPLACE参数,否则数据不会被覆盖。具体命令如下:
impdp sbnetdba/passwd directory=dpdata1 dumpfile=EXPDP.DMP table_exists_action= REPLACE schemas=sbnetdba
——导出完成后,会⽣产import.log⽇志⽂件,记录导出信息,如有疑问可⽤来分析。
——使⽤remap_schema=mamdba:sbnetdba参数,前⾯是源SCHEMA 后⾯是导⼊⽬标schema,即把数据以mamdba schema导出,

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。