• 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

  • 相关阅读:
    .sln是什么的格式
    VMware的四种网络连接方式
    Cisco 2950交换机 配置手册
    Framework2.0标识没有写访问权限的解决办法
    ASP.NET IIS 注册工具
    .suo介绍
    Uri In WPF
    BindingErrorListener In WPF
    WPF 详解模板
    .NET装饰器(Decorator)模式
  • 原文地址:https://www.cnblogs.com/li-sx/p/9641126.html
Copyright © 2020-2023  润新知