zoukankan      html  css  js  c++  java
  • Oracle exp/imp导入不同的表空间

    已经测试过,没问题

     我们在做Oracle数据库表迁移时,通常会有这种需求,在开发阶段,可能所有用户的数据都放在一个表空间中,比如users表空间,但是在生产中,我们希望将每个用户的数据分别放到不同表空间中,此时直接使用exp/imp是不具备选择表空间功能的(expdp/impdp可以),这里我们提供了一种方法来实现这种功能。

    正常情况下,我们使用exp导出,再用imp导入,它会将数据导入到原来表空间中。

     我们做imp导入时,即使新建用户指定了默认表空间,也很会导入到原来的表空间中(除非原来默认的表空间已经被删除掉了,否则即便换用户也不行)

    此时我们提供另一种方式来更改数据表的表空间,假设用户为test01,步骤如下:

     1、创建用户,注意一定要加默认表空间

    create user test01 identified by test01 default tablespace test01;

    2、赋予权限,注意不要赋予dba权限,如果实在需要可以导入后再赋权,当然导入操作可以用system来做

    GRANT CONNECT TO test01;
    GRANT IMP_FULL_DATABASE TO test01;
    GRANT RESOURCE TO test01;

    3、收回用户test01无限制表空间权限

    revoke unlimited tablespace from test01;

    4、将原来表空间的权限收回

    alter user test01 quota 0 on USERS;

    5、赋予新表空间权限

    alter user test01 quota unlimited on test01;

    需要注意的是,假如users表空间可以删除,则可以直接导入到新的默认表空间test01中

    此时我们直接导入,发现表全部在新的默认空间中

    imp system/oracle file=test01.dmp fromuser=test01 touser=test01 buffer=10240 commit=y log=imptest01.log 

    我是这样导入的

    imp test01/test01@你的ip/orcl full=y   file=test01.dmp

  • 相关阅读:
    在数值中加入千位分隔符的方法
    用 Javascript 验证表单(form)中的单选(radio)值
    用 Javascript 验证表单(form)中多选框(checkbox)值
    用 CSS 实现图片替换文字(Image replacement)
    计算机技术分类
    最近好乱acm与数模时间重复了
    memcached Telnet Interface
    event_new
    event_base_loop
    event_base_loop
  • 原文地址:https://www.cnblogs.com/li-sx/p/9641126.html
Copyright © 2011-2022 走看看