orcale数据库常用的导入导出方法

数据处理基础 专栏收录该内容
14 篇文章 0 订阅

--查看数据库表空间大小
select segment_name,(bytes/1024/1024) from user_segments where segment_type = 'TABLE' order by bytes desc

--Oracle 回收站功能,彻底删除表
orcale数据库drop表之后出现:BIN$2cMp4FjwQ2Cw3Lj+BxLYTw==$0,这是因为drop表之后,是把表文件放入了orcale数据库回收站,仍占有磁盘空间.
--1,查看回收站的垃圾文件
SELECT t.object_name,t.type ,t.original_name FROM user_recyclebin t;
--注意:如果没有执行如下清空操作时:保存在回收站的垃圾数据,如果是误删除的话,可以用闪回技术恢复
flashback table tableName to before drop
--2,清空回收站所有表
purge recyclebin
--3,清空回收站指定表
purge table table_name
--4,直接清除表,不进入回收站
drop table table_name purge;


查看字符集:select * from nls_database_parameters where parameter='NLS_CHARACTERSET' ;
数据导出:
 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中,TEST是数据库的实列
    如果是是在CMD窗口下的SQL>需要加$
   exp system/manager@TEST file=d:\daochu.dmp full=y
   $exp localUser/111111@localhost:1521/ORCL file="e:\dd.dmp" full=y;  --ORCL是数据库的实例名,就是tnsnames中的ORCL
 2 将数据库中system用户与sys用户的表导出
   exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
 3 将数据库中的表table1 、table2导出
   exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)
 4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
   exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like  '00%'\"
   
   

cmd下 的SQL>需要加上$ : $exp localUser/111111@127.0.0.1:1521/ORCL file="e:\temp.dmp" full = y;
CMD>下的exp localUser/111111@127.0.0.1:1521 file="e:\temp.dmp" full = y;
----带条件导出

$exp localUser/111111@127.0.0.1:1521/ORCL file="e:\temp.dmp" tables=player_info query =\"WHERE player_name='天天' \"
$exp localUser/111111@127.0.0.1:1521/ORCL file="e:\student.txt" tables=T_STUDENT query=\"WHERE to_date(to_char(sbirthday,'yyyy-MM-dd'),'yyyy-MM-dd')=to_date(to_char(sysdate-365,'yyyy-MM-dd'),'yyyy-MM-dd') \"

----导入
$imp localUser/111111@127.0.0.1:1521/ORCL file="e:\student.dmp" full=y ignore=y

ignore=y很关键

数据泵导出(https://www.cnblogs.com/yj411511/p/13810965.html)

带时间条件的导出,百度了好多博客,都没用,费了好多劲,数据泵导出的条件是需要转义的。


Expdp scott/tiger directory=dump dumpfiel=a.dmp Tables=emp query=’WHERE deptno=20’

--亲测有效
expdb MIP/MIP directory=dump_dir dumpfile=testMip.dmp Tables=tablesName query=\"where create_time \>to_date\(\'2020/12/20\',\'yyyy/MM/dd\'\)\"

oracle11g数据库导入导出:
①:传统方式——exp(导出)和(imp)导入:    
优点:代码书写简单易懂,从本地即可直接导入,不用在服务器中操作,降低难度,减少服务器上的操作也就保证了服务器上数据文件的安全性。
缺点:这种导入导出的速度相对较慢,合适数据库数据较少的时候。如果文件超过几个G,大众性能的电脑,至少需要4~5个小时左右。

②:数据泵方式——expdp导出和(impdp)导入;
2.expdp/impdp:
优点:导入导出速度相对较快,几个G的数据文件一般在1~2小时左右。
缺点:代码相对不易理解,要想实现导入导出的操作,必须在服务器上创建逻辑目录(不是真正的目录)。我们都知道数据库服务器的重要性,所以在上面的操作必须慎重。所以这种方式一般由专业的程序人员来完成(不一定是DBA(数据库管理员)来干,中小公司可能没有DBA)。

③:第三方工具——PL/sql Develpoer;
优点:封装了导入导出命令,无需每次都手动输入命令。方便快捷,提高效率。
缺点:长时间应用会对其产生依赖,降低对代码执行原理的理解。

导出格式:
   Dmp格式:.dmp是二进制文件,可跨平台,还能包含权限,效率好; 
   Sql格式:.sql格式的文件,可用文本编辑器查看,通用性比较好,效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段(blob,clob,long),如果有,会报错; 
   Pde格式:.pde格式的文件,.pde为PL/SQL Developer自有的文件格式,只能用PL/SQL Developer工具
 

未完,后续继续补充

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

一只不会飞的菜鸟

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值