c语言sscanf函数的用法是什么
292
2022-11-28
不得不说的秘籍--用Imp导入到不同的用户的表空间中。
作者:三十而立
imp导入表空间更换的实例过程
有时候,我们exp了一个数据dump,但是我们再imp的时候,想把原来用户的表空间进行切换,
这时一个很常见的问题,我经常见到csdn里的朋友提出这样的问题。
现在我们来做一个完全的exp和imp的过程,在这个过程中我们将把原来test2的schema导出来,
然后导入到test3的用户里,test2的用户的默认表空间是test2, 而test3的用户的默认表空间是test3.
我们先来看看,我的测试数据吧。
这里可以看到我们现在使用的用户是test2
用户test2的默认表空间是TESTTS2
在test2里现在总共有三个表,表的表空间是TESTTS2
现在我们导出我们需要的test2的schema,进行逻辑备份,然后准备好逻辑备份以后,我们将用这个逻辑备份
用imp来进行对test3用户的逻辑恢复
exp如下
导出文件test.dump
现在我们来建立我们的test3的用户吧。 根据我们的实验要求,我们的test3用户的默认表空间是TESTTS3
和test2用户的表空间不一致,这样才可以才是我们的目的,如果是TESTTS2到TESTTS2,
就没有技术可言了。 大家顺便就可以完成了。我们现在建立test3用户。
命令如下
这里我们只是做一个简单的实验,所以我这里表空间的datafile的设置,只是个sample而已,
具体的设置应该以你的实际情况为准。
建立新的用户test3,默认表空间是TESTTS3
现在我们常规的导入的话
是会有提示告诉我们没有权限的。因为我们还没有个test3附上权限,不过我们这里如果给了unlimit tablespace的权限的话,这里test3的imp将不会把表导入到test3的默认表空间TESTTS3里,而是TESTTS2里,这里是由于 imp的原理是先按exp里的表空间来建对象,
如果表空间建立不成功,会用其默认表空间来导入,
所以我们按照这个原理来实现我们的目标了。
先附上必须的权限。
这里附上了我们经常用到的connect和resource的权限,这里如果导入就是常规导入,由于resource包括unlimited tablespace的系统权限,所以这里如果不做其他的处理是会导入到TESTTS2里的,而不是我们需要的TESTTS3
我们需要处理一下:
这里我们先revoke了unlimited tablespace的权限,这样test3的用户就不能access其他的表空间了
我们有alter了test3的quota 0 on TESTTS2使得用户test3可以访问TESTTS2,但是有没有配额
最后我们有在TESTTS3上给了test3用户配额,这样在TESTTS2上建立不了,就建立到TESTTS3上去了
下面我们imp一下,看看我们imp吧
imp成功,验证一下我们的对象是不是在TESTTS3的表空间上去了吧
到此,整个过程完全成功了,你可以取消到test3刚才的配额的一些设置了。
如果没有那句“三十而立”,三十岁的男人正可以轻轻松松
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~