zoukankan      html  css  js  c++  java
  • [转]Oracle用imp导入用户表时选择表空间的问题

    [原文]http://hi.baidu.com/cat_june/blog/item/0573a945fd8ead36879473e4.html

    自己觉得对Oracle还掌握得不错,不过昨天隔壁实验室的同学问了我一个问题让我郁闷了一把。她在一个数据库里把一个用户A的在表空间AA上的表用exp导出到exp.dmp文件中,再把它导入到另一台机器上的数据库里,这时她用的是用户B,默认表空间是BB,但是用imp导入时我们发现表是导入到了B用户下,但是还是存在了AA表空间里面,但是她需要导入到BB里,这时我们又试了好几次,都是这样。才发现自己以前都是复制过来的数据库,没有涉及到更改表空间,于是上网查了查,幸好有好心人有解决方案。

    SQL> create user myhuang identified by myhuang default tablespace myhuang;//先创建一个用户

    SQL> grant resource,connect to myhuang;

    SQL> grant dba to myhuang;//DBA权限

    SQL> revoke unlimited tablespace from myhuang;//撤销此权限

    SQL> alter user myhuang quota 0 on system;//将用户在System表空间的配额置为0

    SQL> alter user myhuang quota unlimited on myhuang;//设置在用户在myhuang表空间配额不受限。

    经过上述设置后,就可以用imp导入数据,数据将会进入指定的myhuang表空间:

    C:\Documents and Settings\myhuang>imp system/123456@vdb fromuser=lnxh tous

    er=myhuang file=G:\myhuang\lnxh.dmp ignore=y grants=n

    顺便说两个小问题:

    1IMP-00003: 遇到 ORACLE 错误 1658

    ORA-01658: 无法为表空间 MYHUANG 中的段创建 INITIAL

    通常这个问题可以通过Resize增加表空间数据文件大小来解决。

    2)删除表空间

    SQL> drop tablespace myhuang including contents and datafiles;

     

    [个人补充]

    如遇IMP-00003: ORACLE error 1950 encountered.

    ORA-01950: no privileges on tablespace 'XXXXXXX'

    说明你的表中有BLOB之类的字段,此类表无法导入新的表空间

    网上说9i中此问题没有完美的解决方案,估计只能先建一个同名的表空间,然后把这个表移到新的表空间中

    不知道10g和11g中是怎么样的,没有测试过

  • 相关阅读:
    SVN客户端的安装和使用
    SVN服务器的安装和使用
    ssh port forwarding
    mysql 索引
    ssh forwarding 配置
    pymongo collection.save 问题
    linux 实现VLAN
    linux 硬件中断调节
    M2Crypto
    python 时间四舍五入
  • 原文地址:https://www.cnblogs.com/xclw/p/1627049.html
Copyright © 2011-2022 走看看