前提:使用导出命令的用户拥有dba权限,数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。
直接在cmd窗口执行即可
一:使用exp命令导出数据
1 将数据库TEST完全导出,用户名gdoa 密码123 导出到D:\TEST_BK.dmp中
exp gdoa/123@TEST file=d:\TEST_BK.dmp full=y
或 exp gdoa/123@TEST file=d:\TEST_BK.dmp
2 将数据库中gdoa用户与sys用户的表导出
exp gdoa/123@TEST file=d:\TEST_BK.dmp owner=(gdoa,sys)
3 将数据库中的表table1 、table2导出
exp gdoa/123@TEST file=d:\TEST_BK.dmp tables=(table1,table2)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp gdoa/123@TEST file=d:\TEST_BK.dmp tables=(table1) query=\" where filed1 like '00%'\"
上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。
不过在上面命令后面 加上 compress=y 就可以了
数据的导入1 将D:\TEST_BK.dmp 中的数据导入 TEST数据库中。
imp gdoa/123@TEST file=d:\TEST_BK.dmp
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
如出现以下情况:去掉后面的full=y,然后加上用户,如owner=(gdoa,sys),不加也可以
EXP-00008:遇到 ORACLE错误1406
ORA-01406:提取的列值被截断
EXP-00000:导出终止失败
二:使用imp导入数据到数据库
1 将D:\TEST_BK.dmp 中的数据导入 TEST数据库中。
imp gdoa/123@TEST file=d:\TEST_BK.dmp
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:\TEST_BK.dmp中的表table1 导入
imp gdoa/123@TEST file=d:\TEST_BK.dmp tables=(table1)
基本上上面的导入导出够用了。不少情况我是将表彻底删除,然后导入。
当然还有expdp/impdp方式可以导入导出导入数据,后续更新。。。。。
注:
1、IMP只适用于EXP导出文件,不适用于EXPDP导出文件;
IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件
2、expdp/impdp是数据泵,是Oracle 10g 以后才有,expdp只能在服务器执行;导入导出速度比较快。