很多人在进行数据迁移时,希望把数据导入不同于原系统的表空间,在导入之后却往往发现,数据被导入了原表空间。
本例举例说明解决这个问题:
1.如果缺省的用户具有DBA权限
那么导入时会按照原来的位置导入数据,即导入到原表空间
$ imp bjbbs/passwd file=bj_bbs.dmp fromuser=jive touser=bjbbs grants=n
Import: Release 8.1.7.4.0 - Production on Mon Sep 22 11:49:41 2003
(c) Copyright 2000 Oracle Corporation. All rights reserved.
Connected to: Oracle8i Enterprise Edition Release 8.1.7.4.0 - 64bit Production
With the Partitioning option
JServer Release 8.1.7.4.0 - 64bit Production
Export file created by EXPORT:V08.01.07 via conventional path
Warning: the objects were exported by JIVE, not by you
import done in ZHS16GBK character set and ZHS16GBK NCHAR character set
. . importing table "HS_ALBUMINBOX" 12 rows imported
. . importing table "HS_ALBUM_INFO" 47 rows imported
. . importing table "HS_CATALOG" 13 rows imported
. . importing table "HS_CATALOGAUTHORITY" 5 rows imported
. . importing table "HS_CATEGORYAUTHORITY" 0 rows imported
....
. . importing table "JIVEUSERPROP" 4 rows imported
. . importing table "JIVEWATCH" 0 rows imported
. . importing table "PLAN_TABLE" 0 rows imported
. . importing table "TMZOLDUSER" 3 rows imported
. . importing table "TMZOLDUSER2" 3 rows imported
About to enable constraints...
Import terminated successfully without warnings.
查询发现仍然导入了USER表空间
$ sqlplus bjbbs/passwd
SQL*Plus: Release 8.1.7.0.0 - Production on Mon Sep 22 11:50:03 2003
(c) Copyright 2000 Oracle Corporation. All rights reserved.
Connected to:
Oracle8i Enterprise Edition Release 8.1.7.4.0 - 64bit Production
With the Partitioning option
JServer Release 8.1.7.4.0 - 64bit Production
SQL> select table_name,tablespace_name from user_tables;
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
HS_ALBUMINBOX USERS
HS_ALBUM_INFO USERS
HS_CATALOG USERS
HS_CATALOGAUTHORITY USERS
HS_CATEGORYAUTHORITY USERS
HS_CATEGORYINFO USERS
HS_DLF_DOWNLOG USERS
...
JIVEWATCH USERS
PLAN_TABLE USERS
TMZOLDUSER USERS
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
TMZOLDUSER2 USERS
45 rows selected.
2.回收用户unlimited tablespace权限
这样就可以导入到用户缺省表空间
SQL> create user bjbbs identified by passwd
2 default tablespace bjbbs
3 temporary tablespace temp
4 /
User created.
SQL> grant connect,resource to bjbbs;
Grant succeeded.
SQL> grant dba to bjbbs;
Grant succeeded.
SQL> revoke unlimited tablespace from bjbbs;
Revoke succeeded.
SQL> alter user bjbbs quota 0 on users;
User altered.
SQL> alter user bjbbs quota unlimited on bjbbs;
User altered.
SQL> exit
Disconnected from Oracle8i Enterprise Edition Release 8.1.7.4.0 - 64bit Production
With the Partitioning option
JServer Release 8.1.7.4.0 - 64bit Production
重新导入数据
$ imp bjbbs/passwd file=bj_bbs.dmp fromuser=jive touser=bjbbs grants=n
Import: Release 8.1.7.4.0 - Production on Mon Sep 22 12:00:51 2003
(c) Copyright 2000 Oracle Corporation. All rights reserved.
Connected to: Oracle8i Enterprise Edition Release 8.1.7.4.0 - 64bit Production
With the Partitioning option
JServer Release 8.1.7.4.0 - 64bit Production
Export file created by EXPORT:V08.01.07 via conventional path
Warning: the objects were exported by JIVE, not by you
import done in ZHS16GBK character set and ZHS16GBK NCHAR character set
. . importing table "HS_ALBUMINBOX" 12 rows imported
. . importing table "HS_ALBUM_INFO" 47 rows imported
. . importing table "HS_CATALOG" 13 rows imported
. . importing table "HS_CATALOGAUTHORITY" 5 rows imported
. . importing table "HS_CATEGORYAUTHORITY" 0 rows imported
. . importing table "HS_CATEGORYINFO" 9 rows imported
. . importing table "HS_DLF_DOWNLOG" 0 rows imported
....
. . importing table "JIVEUSER" 102 rows imported
. . importing table "JIVEUSERPERM" 81 rows imported
. . importing table "JIVEUSERPROP" 4 rows imported
. . importing table "JIVEWATCH" 0 rows imported
. . importing table "PLAN_TABLE" 0 rows imported
. . importing table "TMZOLDUSER" 3 rows imported
. . importing table "TMZOLDUSER2" 3 rows imported
About to enable constraints...
Import terminated successfully without warnings.
SQL> select table_name,tablespace_name from user_tables;
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
HS_ALBUMINBOX BJBBS
HS_ALBUM_INFO BJBBS
HS_CATALOG BJBBS
HS_CATALOGAUTHORITY BJBBS
....
JIVETHREAD BJBBS
JIVETHREADPROP BJBBS
JIVEUSER BJBBS
JIVEUSERPERM BJBBS
JIVEUSERPROP BJBBS
JIVEWATCH BJBBS
PLAN_TABLE BJBBS
TMZOLDUSER BJBBS
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
TMZOLDUSER2 BJBBS
45 rows selected.
现在数据被导入到正确的用户表空间中.
-----
(原为)http://www.eygle.com/archives/2005/04/ecineeeeiaeioae.html
分享到:
相关推荐
在实际工作中,有时需要将exp导出的历史备份dmp文件进行恢复,若之前的建表语句及表空间名无法找到,则直接用imp语句进行导入的话可能...使用本文方法可将exp导出的数据用imp导入不同的表空间,从而有效解决此问题。
在Oracle数据库环境中,数据导入是常见的操作,尤其是在不同的用户名和表空间之间进行迁移时。这通常涉及到用户权限、数据导出、表空间映射以及数据的重新组织。下面将详细介绍如何在Oracle中实现这一目标。 首先,...
在Oracle数据库管理中,经常会出现因表空间不一致而导致的数据导入失败的问题。本文将详细介绍如何解决这一常见问题,并确保数据能够顺利地从一个环境迁移到另一个环境中。 #### 一、问题背景 在进行Oracle数据...
3. **使用Data Pump(IMPDP)**:在较新版本的Oracle中,通常推荐使用Data Pump(IMPDP)进行数据导入,它提供了更高的性能和更多的选项。IMPDP命令示例如下: ``` impdp system/oracle directory=DATA_PUMP_DIR ...
通过上述步骤,可以从一个现有的Oracle环境中导出DMP文件,并将其导入到不同的表空间和不同的用户下,从而实现数据的有效迁移和管理。这种方式在进行数据迁移、测试环境搭建等方面非常实用,能够有效避免数据丢失和...
### Oracle 数据库表空间管理与数据导入导出详解 #### 表空间概念及管理 在Oracle数据库中,**表空间**是逻辑存储结构的一部分,用于组织数据库中的数据和索引。一个表空间由一个或多个数据文件组成,这些数据文件...
oracle备份出来的数据可以导入到另一表空间.txt
在目标数据库中导入表空间 - **第四步**:在目标数据库epras中创建一个新的用户ts,并暂时不对其进行授权。 - **第五步**:使用sysdba权限执行导入操作,将之前导出的dmp文件导入到epras数据库中。 - **第六步**:...
本文档详细介绍了如何通过导入的方式更换表空间,这一过程通常在数据库实施现场发布时进行,以确保数据按照预设规划分布。 首先,我们需要获取元数据。元数据是指关于数据的数据,例如表结构、索引定义等。通过特定...
PLSQL下不同用户数据导入 在 Oracle 数据库中,使用 PLSQL 操作可以实现不同用户下的数据导出和导入,但是这也存在一些问题,例如 sequence 不存在的问题。在用户名不变的情况下,程序运行可以生成 sequence 序列,...
本文将深入探讨不同数据库之间进行数据导入导出的方法,特别关注两个具体案例:一是表空间相同情况下的数据迁移,二是表空间不同的情况下的数据迁移。 #### 表空间相同的数据导入导出 当两个数据库(假设为db1和...
本篇文章将深入探讨如何在Oracle中创建表空间、用户以及授权,并讲解如何进行数据导入,同时也会简要介绍在PostgreSQL中导入数据的过程。 首先,我们来看Oracle数据库中的操作: 1. **创建表空间**:在Oracle中,...
在属性设计方面,根据AutoCAD图元对象的扩展属性,对GIS空间数据库图层进行属性设计,不同的地物要素对数据的要求不同,其关系数据库表属性字段也不一致。基于Geodatabase模型的空间数据库实现了图形数据和属性数据...
DBF 格式数据导入 Oracle 的流程 DBF(dBase 文件)是一种古老的数据库文件格式,曾经广泛应用于许多数据库管理系统中。现在,随着技术的发展和新的数据库管理系统的出现,DBF 格式的文件逐渐被淘汰。但是,在一些...
### Oracle 创建用户、表空间及导入导出命令详解 #### 一、创建表空间 在 Oracle 数据库中,表空间是存储数据的基本单位。表空间由一个或多个数据文件组成,用于存储表、索引等数据库对象。创建表空间通常包括创建...
其次,使用 PL/SQL Developer 连接到数据库,选择要还原的用户和表空间,然后点击“导入”按钮,选择要导入的数据文件,最后点击“导入”按钮将数据导入到数据库中。 三、Oracle 常用函数 Oracle 提供了许多有用的...
- 提供的文件中提到了几个不同的表空间: - `Syjk_data`:大小为20GB。 - `Syjk_system`:大小为100MB。 - `Syjk_history`:大小为50MB。 - `Syjk_index`:大小为300MB。 - `Syjk_undo`:用于存储Undo记录,是...
* 导入表空间: ``` impdp system/sysadmin directory=dump_dir dumpfile=tablespace.dmp tablespaces=users ``` * 导入整个数据库: ``` impdp system/sysadmin directory=dump_dir dumpfile=full.dmp full=y ``` ...
为了简化管理和提高效率,我们可能希望将这些不同的表空间中的数据合并到一个新的或现有的表空间中。 #### 步骤详解 ##### 第一步:查询当前用户下的所有表空间 首先需要了解当前用户下存在哪些表空间。这可以通过...
接下来,创建一个新用户`abs`,并为其分配默认表空间`ABS`以及临时表空间`ABS_TEMP`。同时,解锁该用户的账户,并授予其`CONNECT`, `RESOURCE`, `DBA`等权限,以便于后续的操作。 ```sql -- 创建用户 abs CREATE ...