命令窗口导出oracle数据库的方法及常见问题解决方法

来源:互联网 发布:淘宝客服工资一般多少 编辑:程序博客网 时间:2024/05/29 10:58

一、使用命令窗口导出oracle数据库

1、在开始输入cmd回车,打开命令窗口
2、在当前用户在输入 exp
这里写图片描述
3、输入数据库用户名(数据库用户名@数据库服务名)及密码,后面就是回车回车……
4、直到出现~导出文件:EXPDAT.DMP> 后面输入导出文件路径就可以了,比如:D:\prjdb.dmp

后面继续回车回车直至提示导出数据库表及存储过程等等,提示导出完成即可

二、问题

这样导出,发现经常少表,据悉这样导出oracle 11g exp默认是不导出空表的,要注意。Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出。
解决方法:
1、设置deferred_segment_creation 参数

alter system set deferred_segment_creation=false;

 该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。
  需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。
2、先查询一下当前用户下的所有空表,使用手工为空表分配Extent的方式,来解决导出之前建立的空表的问题。
在plsql的command窗口执行

select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 

自动生成数据库中空表的语句,如下:

alter table EX_GLYHTZJHZB allocate extent;alter table EX_XLQHXWFJGBMJTGCTZJH allocate extent;alter table WORDPRESS_NEWS allocate extent;alter table EX_XGXPSNLYLGCJH allocate extent;

把生成的语句拷出来一起执行。
然后重新用exp导出数据接口

0 0