由于平时业务需要,需要会导出和导入数据库用户下的一些表,由于不熟练以及不熟悉,导致进行的很艰难,今天花时间搞懂了最基本的用法,作为一小段总结.
Exp/Imp是导出/导入命令,可以实现以下功能:
(1)导出/导入整个数据库.
(2)导出/导入用户下的所有对象.
(3)导出/导入用户下的部分表.
以上3种,我只需要用到(2)和(3),所以暂时只总结(2)和(3).(1)在导的过程中遇到说要DBA才能导,但是在CMD命令下怎么知道是DBA呢?待日后研究.
(2)导出命令如下:exp userid=username/password@sid file=d:/exp.dmp owner=(username),这个命令是用来导出用户下的所有对象,最关键的是owner=(username),代表username用户下的所有对象,这个括号里面还可以填很多用户名,也就是可以一次性导很多用户的的所有对象,如果不加该参数的话,默认为owner=(username).即这样也可以导出当前用户下的所有对象:
exp userid=username/password file=d:/exp.dmp.
相应的导入则使用如下命令:imp userid=username/password@sid file=d:/exp.dmp
如果是username导到username,那么上面的命令就可以了,如果是username导入到username01中,那么需要加入俩个参数fromuser=username, touser=username01.整个命令为:
imp userid=username/password@sid file=d:/exp.dmp fromuser=username, touser=username01;
(3)导出命令如下:exp userid=username/password@sid file=d:/exp.dmp tables=(tablename01,tablename02),这个命令只导出username用户下的tablename01和tablename02俩张表的信息.
相应的导入则使用如下命令:imp userid=username/password@sid file=d:/exp.dmp
如果是username导到username,那么上面的命令就可以了,如果是username导入到username01中,那么需要加入俩个参数fromuser=username, touser=username01.整个命令为:
imp userid=username/password@sid file=d:/exp.dmp fromuser=username, touser=username01;
ps:需要注意俩点.(1)userid关键字必须放在第一个.(2)exp时,tables和owner不能同时使用,这样会导致冲突(试想你即要导出整个对象,又要导出其中几张表,那不是那几张表导了俩次?所以导致冲突,即整个对象中的表对象包含那几张表)