数据库导入导出

一、Oracle数据库

1、 expdp/impdp命令导出/导入数据库

  • 导出一个用户下所有的表
 SELECT * FROM dba_directories    ---查找可以存放文件的路径

 EXPDP USERID='sys/XXX@orcl as sysdba' schemas=emily directory=DATA_FILE_DIR dumpfile=emily20180226.dmp 
 logfile=emily20180226.log version=10.2.0.1.0  ---导出语句

IMPDP USERID='sys/oracle@orcl as sysdba' schemas=clfpg3 directory=DATA_FILE_DIR dumpfile=emily20180226.dmp 
version=10.2.0.1.0 ---导入语句

impdp fao/fao_db directory=DATA_FILE_DIR dumpfile=fao20180226.dmp ---导入语句(简略版)
  • 导出user用户的部分表:
expdp user/XXX@orcl dumpfile=expdp.dmp directory=DATA_FILE_DIR tables = ('tablename1','tablename2') logfile=expdp2018.log
---或者
expdp user/XXX@orcl dumpfile=expdp.dmp directory=DATA_FILE_DIR tables = tablename1,tablename2 logfile=expdp2018.log
  • 按查询条件导出表:
expdp user/XXX@orcl dumpfile=expdp.dmp directory=DATA_FILE_DIR tables=tablename query='WHERE datatype=1'
  • 从一个用户expdp导出再impdp导入到另一个用户:
---向新用户导入表
impdp user1/XXX directory=DATA_FILE_DIR dumpfile=expdp20180226.DMP REMAP_SCHEMA=user1:user2
---若USER2用户存在,则导入成功之后直接登录用户即可;
---若USER2用户不存在,则导入成功后需拥有dba权限的用户修改user2的密码方可登录
alter user user2 identified by XXX;

其中:用户名是sys,
密码是XXX,
数据库sid(实例名)是orcl,
schemas要导出的用户名是emily(用户可以是没有创建的,密码与导出时的用户明码一致),
logfile=emily20180226.log 导入、导出数据库的日志,
version=10.2.0.1.0 要导入到 10.2.0.1.0版本的Oracle数据库中去。

2、 exp/imp命令导出/导入数据库

  • 导入/导出部分表
exp userid=user1/xxxx@orcl tables=(tablename1,tablename2) file=E:\database.dmp  ---导出
imp user2/xxxx@orcl file=E:\database.dmp full=y ---导入
  • 导入/导出一个用户下所有的表
exp userid=user1/xxxx@orcl file=E:\database.dmp  ---导出
imp user2/xxxx@orcl file=E:\database.dmp full=y ---导入
  • 远程导入/导出其他电脑上的表
exp userid=user1/xxxx@192.168.20.48/orcl file=E:\database.dmp  ---导出
imp user2/xxxx@192.168.20.48/orcl file=E:\database.dmp full=y ---导入

说明:其中括号中内容可省略
exp 用户名/密码@(主机ip:端口号/)实例 ( tables=(tablename1,tablename2) ) file=dmp所在的路径
imp 用户名/密码@(主机ip:端口号/)实例 file=dmp所在的路径 full=y


说明:
1、oracle9i以后引入数据泵命令IMPDP/EXPDP;
2、Oracle11g通过exp导出的数据是无法通过imp导入到oracle10g中的,但通过expdp和impdp可以完成。
3、IMPDP/EMPDP是服务器端是命令,无法在客户端使用。
4、Oracle跨版本导入导出可参照跨版本操作
4、Oracle11g中exp命令是无法 导出数据库中的空表的,但可以通过EXPDP导出,若想使用exp命令导出Oracle11g数据库空表,则进行以下设置即可;

--设置Oracle11g使用exp命令导出空表语句

---1、第一步执行:
alter system set deferred_segment_creation=false; 

---2、第二步执行:
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 

---3、第三步执行第二步的结果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值