日期:2014-05-16 浏览次数:20582 次
========exp导出表的dmp文件==============
1、表数据不大的时候,可一次导出多张表
exp username/password file=/home/**/filename.dmp tables=(tablename1,tablename2,...)
如:
exp username/password file=/home/oracle/20110909_other1.dmp tables=(tablename1,tablename2,...)
2、表的数据比较大的时候,可以添加查询条件:query
exp username/password file=/home/**/filename.dmp tables=(tablename) query=\"where column1 in \(**,**,**\) and column2 \>= to_Date \(\'2011-08-01 00:00:00\' ,\'yyyy-MM-DD HH24:MI:SS\'\) and column2 \<to_date\(\'2011-09-01 00:00:00\' ,\'yyyy-MM-DD HH24:MI:SS\'\) \"?
如:
exp username/password file=/home/oracle/201108_101_PortRate.dmp tables=(T_PORTRATE) query=\"where subregionid in \(102,103,104,105,106,108,109,110,111,112,114,1135216\) and CREATETIME \> =to_date\(\'2011-08-01 00:00:00\' ,\'yyyy-MM-DD HH24:MI:SS\'\) and CREATETIME \<to_date\(\'2011-09-01 00:00:00\' ,\'yyyy-MM-DD HH24:MI:SS\'\) \"
exp中的file后面的路径和文件名,都是指的在exp那台机器上的路径和文件名。
?
=======imp导入表的dmp文件=============================
imp username/password file ='/home/***/***/filename.dmp' full=y indexes=y buffer=65536
当被导入的数据库的表中已经存在一部分数据,而我们imp的dmp文件中的数据可能是另外一些查询条件emp出来的,
可以不覆盖原表中的数据,直接继续导入,加上以下参数。
ignore=y,即告诉IMP如果当前表存在就不创建表结构而直接导入新的数据。
imp username/password file ='/home/***/***/filename.dmp' full=y indexes=y buffer=65536 ignore=y
?
?
?
=========exp过程中的错误:EXP-00091===========
原因:EXP-00091问题是exp工具所在的环境变量中的NLS_LANG与DB中的NLS_CHARACTERSET不一致导致的
解决方法:在exp的机器上,
1、[oracle@www oracle]$echo $NLS_LANG
AMERICAN
2、sqlplus进入SQL>环境查看oracle的NLS_CHARACTERSET是神马?
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK
?
虽然都是AMERICAN,但是还是不一样的。所以修改当前机器环境变量NLS_LANG
3、、[oracle@www oracle]$export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
也可以再次echo $NLS_LANG确认下。
4、再次exp后,EXP-00091?错误消失。
导出环境oracle版本为:oracle9i。
?
?
?
=======(暂时的工作中)exp和imp流程:====================
现网导出,并导入本地测试库:
1、从241ssh到现网数据库*.*.*.*(一个IP),exp出现网表
如果文件较大,最好打包,
压缩:tar -zcvf??? *.tar.gz??? *.dmp
2、ftp登录241的内网地址:*.*.26.100将现网dmp文件或者压缩后的文件put到*.*.26.100上
3、从winScp(bbass)上将该文件拉到本地电脑
4、登录需要导入的数据库的服务器:192.168.8.49,用ssh将本地的dmp文件或者压缩后的文件上传到192.168.8.49
解压:
tar -zxvf??? *.tar.gz??? *.dmp
后,执行imp语句。
?