1、exp导出的参数(FULL,OWNER)测试
先知道的一点是full不能与owner共存,还有都是以用户的方式导出(在这里),其中不仅仅包括表,这可能就是下面报warnings的原因,因为Oracle系统库里边有动态的表或其它动态对象。
【A】首先是DBA(system)用户连接数据库
1)都不指 -> 仅仅导出system模式。(报了点warnings) 2)owner=test -> 仅仅导出owner指定的模式(test)。 3)full=y -> 全库导出,需注意!!!,因为有DBA权限。(也报了点warnings..)
【B】然后是普通用户(test)连接数据库
1)都不指 -> 仅仅导出test模式。 2)owner=test -> 仅仅导出owner指定的模式(test),如果换成非己模式需要有访问的权限(可能不一定是DBA,待测试)。 3)full=y -> 会提示没有dba权限,然后询问如下的问题(默认>我选的): (2)U(sers), or (3)T(ables): (2)U > 2 Export grants (yes/no): yes > yes Export table data (yes/no): yes > no Compress extents (yes/no): yes > no 最后也仅仅导出了test,因为这里test用户只有访问test模式的权限,(也报了点warnings,但这里报的是无DBA权限) 如果有访问其他schema的权限的话估计也会导出其他模式(待测试), 如果有dba权限的话会导出全库(已测试,如【C】)。
【C】再来是普通用户(test1)拥有DBA权限连接数据库
1)都不指 -> 仅仅导出test1模式。 2)owner=test -> 仅仅导出owner指定的模式(test),看好了这里是test不是test1,与【B】上面的一起看就明白。 3)full=y -> 全库导出,需注意!!!,因为有DBA权限。(也报了点warnings..)
【D】最后,exp总结
其实不难发现都是权限搞的怪,如果test有dba权限,那就跟system没啥区别,记住下边的即可: 1)都不指,导出自己。 2)owner,导出owner所指,需有权限访问所指,否则报错退出。 3)full=y,导出全库,需有DBA权限,否则只会导出自己及所能访问的模式
2、imp导入的参数(FULL,OWNER变成了FROMUSER/TOUSER)测试
这里full也不能与fromuser/touser共存,只能选一个。
【A】首先是DBA(system)用户连接数据库
1)都不指 -> 不管dmp文件是单个用户还是多个用户都会提示Must specify FULL=Y or provide FROMUSER/TOUSER or TABLES arguments。 2)FROMUSER/TOUSER a)单独指定FROMUSER -> 以模式(用户)的形式导入。 b)两个都指定 -> 会按顺序匹配用户以非用户(怼内容)的方式导入,FROMUSER匹配不到TOUSER的则以模式(用户)形式导入;所以如果需要把内容都导入system,FROMUSER有几个模式,TOUSER就得写几个system。 c)单独指定TOUSER -> 又会提示Must specify FULL=Y or provide F....。 3)full=y -> 如果dmp文件只有一个用户,所有东西导入到system用户;多个用户则以模式(用户)的形式导入,并非把所有东西导入到system,这里要特别注意!!!
注意的地方:
以用户的方式导入如果某个用户已经存在则使用已存在的用户,某个表已经存在就跳过(不匹配数据,就是说如果表存在但没有数据时,直接跳过不会插入数据)。
【B】然后是普通用户(test)连接数据库
1)都不指 -> 报warning,不仅仅是Must...这个错误,反正就记住这样导入是不行的就行了。 2)FROMUSER/TOUSER a)单独指定FROMUSER -> 报没权限错误,因为是按用户导入的。 b)两个都指定 -> 跟上边一样按顺序匹配用户,但是如果dmp文件是以DBA用户导出的,你怎么导入都是不行的,因为你不配,哈哈哈。 c)单独指定TOUSER -> 报错,非权限错误,即使dmp文件不是DBA用户导出的也会报错。 3)full=y -> 跟上边一样,如果dmp文件只有一个用户要注意了,会以内容的方式导入,说第二遍了(还有如果dmp文件是以DBA用户导出的,你怎么导入都是不行的)。
【C】最后,imp总结
1 看【A】就好,认真看,不然删表累死你。 2 建议少用full=y,多用FROMUSER/TOUSER,因为你不知道dmp文件有几个用户,应该有命令查看的,有空查下资料。 3 而且如果用full=y有些没必要导入的用户也导入就不好了,全库迁移除外。 4 所以imp导入就都指定FROMUSER/TOUSER就行。
原文地址:https://www.cnblogs.com/weiwenpeng/p/10345419.html
时间: 2024-10-29 08:26:54