`

ORACLE导入数据文件到指定的表空间

阅读更多
最近工作中碰见ORACLE导入数据文件到指定的表空间中的事,虽然导入成功了。但这个功能应该算是我们在工作中经常碰见的需求,所以在此作个记录,以后用到也方便查找。
下面直接贴操作流程!


Microsoft Windows [版本 6.1.7600]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>sqlplus / as sysdba;

SQL*Plus: Release 10.2.0.3.0 - Production on 星期二 8月 10 20:53:45 2010

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.


连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options

--预防数据库中已经存在同名用户,执行所有操作前先drop一下
SQL> drop user pccuser cascade;
drop user pccuser cascade
          *
第 1 行出现错误:
ORA-01918: 用户 'pccUSER' 不存在

--查看数据文件存放的位置
SQL> DESC DBA_DATA_FILES;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------

 FILE_NAME                                          VARCHAR2(513)
 FILE_ID                                            NUMBER
 TABLESPACE_NAME                                    VARCHAR2(30)
 BYTES                                              NUMBER
 BLOCKS                                             NUMBER
 STATUS                                             VARCHAR2(9)
 RELATIVE_FNO                                       NUMBER
 AUTOEXTENSIBLE                                     VARCHAR2(3)
 MAXBYTES                                           NUMBER
 MAXBLOCKS                                          NUMBER
 INCREMENT_BY                                       NUMBER
 USER_BYTES                                         NUMBER
 USER_BLOCKS                                        NUMBER
 ONLINE_STATUS                                      VARCHAR2(7)

SQL> SELECT FILE_NAME,TABLESPACE_NAME FROM DBA_DATA_FILES;

FILE_NAME
----------------------------------------------------------------------

TABLESPACE_NAME
------------------------------
D:\ORACLE\PRODUCT\10.2.0\ORADATA\OAMIS\USERS01.DBF
USERS

D:\ORACLE\PRODUCT\10.2.0\ORADATA\OAMIS\SYSAUX01.DBF
SYSAUX

D:\ORACLE\PRODUCT\10.2.0\ORADATA\OAMIS\UNDOTBS01.DBF
UNDOTBS1

已选择6行。

--创建表空间
SQL> CREATE TABLESPACE TEST_pcc_TBS DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\O
AMIS\TEST_pcc_TBS01.DBF' SIZE 100M
  2  AUTOEXTEND on NEXT 500M MAXSIZE UNLIMITED
  3  LOGGING
  4  ONLINE
  5  PERMANENT
  6  EXTENT MANAGEMENT LOCAL AUTOALLOCATE
  7  BLOCKSIZE 8K
  8  SEGMENT SPACE MANAGEMENT AUTO;

表空间已创建。
--创建用户,并设置其默认的表空间
SQL> CREATE USER pccUSER IDENTIFIED BY pccUSER DEFAULT TABLESPACE TEST_pcc_TBS;

用户已创建。

SQL> GRANT CONNECT TO pccUSER;

授权成功。

SQL> GRANT RESOURCE TO pccUSER;

授权成功。

--该语句很重要(必须的)
SQL> ALTER USER pccUSER QUOTA 0 ON USERS;

用户已更改。

--让新建用户在其默认的表空间上拥有无限制的操作表空间的权限
SQL> ALTER USER pccUSER QUOTA UNLIMITED ON TEST_pcc_TBS;

用户已更改。
--用已经创建好的用户登录
SQL> CONN pccUSER/pccUSER
已连接。
SQL> SHOW USER;
USER 为 "pccUSER"
SQL> DESC USER_USERS;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------

 USERNAME                                  NOT NULL VARCHAR2(30)
 USER_ID                                   NOT NULL NUMBER
 ACCOUNT_STATUS                            NOT NULL VARCHAR2(32)
 LOCK_DATE                                          DATE
 EXPIRY_DATE                                        DATE
 DEFAULT_TABLESPACE                        NOT NULL VARCHAR2(30)
 TEMPORARY_TABLESPACE                      NOT NULL VARCHAR2(30)
 CREATED                                   NOT NULL DATE
 INITIAL_RSRC_CONSUMER_GROUP                        VARCHAR2(30)
 EXTERNAL_NAME                                      VARCHAR2(4000)

SQL> SELECT USERNAME,DEFAULT_TABLESPACE FROM USER_USERS;

USERNAME                       DEFAULT_TABLESPACE
------------------------------ ------------------------------
pccUSER                        TEST_pcc_TBS

SQL>

SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options 断开

C:\Users\Administrator>d:

--执行imp导入数据
D:\>imp parfile=imp.txt

Import: Release 10.2.0.3.0 - Production on 星期二 8月 10 21:13:04 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options

经由常规路径由 EXPORT:V10.02.01 创建的导出文件
IMP-00013: 只有 DBA 才能导入由其他 DBA 导出的文件
IMP-00000: 未成功终止导入

--从上面的异常信息可以看出,用户需要导入的数据是由具有dba权限的用户所导出的
--因此我们导入的用户也应该具备有dba的权限
D:\>sqlplus / as sysdba;

SQL*Plus: Release 10.2.0.3.0 - Production on 星期二 8月 10 21:14:08 2010

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.


连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options

--给pccuser用户授以dba的权限
SQL> grant dba to pccuser;

授权成功。

--执行导入imp
D:\>imp parfile=imp.txt

Import: Release 10.2.0.3.0 - Production on 星期二 8月 10 21:14:37 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Pro
With the Partitioning, OLAP and Data Mining options

经由常规路径由 EXPORT:V10.02.01 创建的导出文件

警告: 这些对象由 pcc 导出, 而不是当前用户

已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
导出客户机使用 ZHS16CGB231280 字符集 (可能的字符集转换)
. 正在将 pcc 的对象导入到 pccUSER
. . 正在导入表                      "COUNTSUM"导入了           1 行
. . 正在导入表                "PCSS_TF_TJ_TAB"导入了       21868 行
. . 正在导入表               "pcc_ALL_LOG_TAB"导入了         407 行
. . 正在导入表          "pcc_ALL_USER_BAK_TAB"导入了        8407 行
. . 正在导入表              "pcc_ALL_USER_TAB"导入了        2659 行
. . 正在导入表             "pcc_CITY_DESC_TAB"导入了           1 行
. . 正在导入表                "pcc_CLIENT_VER"导入了           1 行
. . 正在导入表        "pcc_DELETE_USERS_BAK_T"导入了        6085 行
. . 正在导入表       "pcc_DEL_ENINFO_BACK_TAB"导入了          36 行
. . 正在导入表               "pcc_EN_FILE_TAB"导入了        2422 行
. . 正在导入表        "pcc_EN_GPUSER_BACK_TAB"导入了          97 行
. . 正在导入表             "pcc_EN_GPUSER_TAB"导入了        4874 行
. . 正在导入表         "pcc_EN_GROUP_BACK_TAB"导入了           1 行
. . 正在导入表              "pcc_EN_GROUP_TAB"导入了         427 行
. . 正在导入表               "pcc_EN_INFO_TAB"导入了         222 行
. . 正在导入表               "pcc_EN_LOGO_TAB"导入了           0 行
. . 正在导入表        "pcc_EN_MNUSER_BACK_TAB"导入了          21 行
. . 正在导入表             "pcc_EN_MNUSER_TAB"导入了         205 行
. . 正在导入表              "pcc_EN_QUERY_GTO"导入了         107 行

成功终止导入, 没有出现警告。

--验证导入的数据是否导入到了指定的表空间中
SQL> select table_name,tablespace_name from tabs

TABLE_NAME                     TABLESPACE_NAME
------------------------------ -----------------
COUNTSUM                       TEST_pcc_TBS
PCSS_CDR_GTO_GTT_TAB           TEST_pcc_TBS
PCSS_CDR_LMQ_TAB               TEST_pcc_TBS
PCSS_CDR_OCO_OCT_TAB           TEST_pcc_TBS
PCSS_CDR_OFO_OFT_TAB           TEST_pcc_TBS
PCSS_CDR_OTO_OTT_TAB           TEST_pcc_TBS
PCSS_CDR_UAG_UDG_TAB           TEST_pcc_TBS
PCSS_CDR_ULO_ULF_TAB           TEST_pcc_TBS
PCSS_TF_TJ_TAB                 TEST_pcc_TBS
pcc_ALL_LOG_TAB                TEST_pcc_TBS
pcc_ALL_USER_BAK_TAB           TEST_pcc_TBS


--因为给一个用户授予dba权限,对数据库来说不安全,所以在当该用户执行导入操作完成后,应该收回dba的权限
SQL>CONN / AS SYSDBA;
SQL> revoke dba from pccuser;

撤销成功。


--给出导入脚本文件imp.txt内容如下:
userid=pccuser/pccuser--[说明:如果该登录oracle数据库的用户具有dba权限,则pcc用户不要求一定具有dba权限;该说明只对具有dba权限的用户导出的数据文件起作用]
buffer=4096000
log=imp.log
file=D:\orcl_db.dump
fromuser=pcc
touser=pccuser


ORACLE中国官网:
http://www.oracle.com/technology/global/cn/index.html
  • IMP.rar (2.9 KB)
  • 下载次数: 39
0
0
分享到:
评论

相关推荐

    oracle导入时表空间不一致解决方法

    通过上述步骤,我们不仅解决了Oracle导入时表空间不一致的问题,还确保了数据能够顺利地从源系统迁移到目标系统中。在实际操作过程中,需要注意细节处理,尤其是表空间名称的替换以及权限的调整,这些都是保证数据...

    Oracle dmp文件导出导入(还原)到不同的表空间和不同的用户操作

    通过上述步骤,可以从一个现有的Oracle环境中导出DMP文件,并将其导入到不同的表空间和不同的用户下,从而实现数据的有效迁移和管理。这种方式在进行数据迁移、测试环境搭建等方面非常实用,能够有效避免数据丢失和...

    oracle不同用户名及表空间之间的数据导入

    而**表空间** 是存储数据的实际物理区域,它可以包含一个或多个数据文件,用来存放数据库对象的数据。用户可以被分配到特定的表空间,以便管理存储资源。 当需要在不同用户名和表空间之间导入数据时,一般会使用...

    linux下向oracle中导入dmp文件

    Linux 下向 Oracle 数据库中导入 dmp 文件需要按照一定的步骤进行,包括登录 Linux 系统、创建用户表空间、创建用户、赋予权限、创建临时表空间和导入 dmp 文件等。只有按照正确的步骤进行,才能成功地将 dmp 文件...

    Oracle大数据量导入(CSV导入)

    对于CSV文件,创建一个外部表并指定适当的文件位置和分隔符,即可实现数据的快速读取和导入。 4. **Oracle Data Pump (expdp/impdp)** 虽然Data Pump主要用于数据库级别的导出和导入,但也可以通过自定义导出模式...

    oracle数据库导入数据以及创建用户

    本文将深入探讨如何导入数据到Oracle数据库以及创建新用户,这对于数据库管理员和开发者来说是至关重要的技能。以下是对标题"Oracle数据库导入数据以及创建用户"的详细解读: 1. 数据导入: - **SQL*Loader**:...

    oracle导入dmp文件之前要做的工作

    这里`tablespace_name`是创建的表空间名称,`path\to\datafile.dbf`和`path\to\tempfile.dbf`分别表示数据文件和临时文件的路径,`SIZE 512M`表示初始大小为512MB,`AUTOEXTEND ON`表示当空间不足时自动扩展。...

    Oracle 数据导入工具

    SQL*Loader是Oracle提供的一种实用程序,它能够读取文本文件(通常称为控制文件或数据文件)中的数据,并将其插入到数据库表中。控制文件定义了数据文件的格式以及如何将这些数据映射到数据库表的列。这个过程比使用...

    ORACLE 导入导出表空间文档

    一个表空间由一个或多个数据文件组成,这些数据文件在物理磁盘上存储数据。表空间可以分为两大类:永久表空间和临时表空间。 ##### 创建临时表空间 临时表空间主要用于存储临时数据,如排序操作、表连接等。当会话...

    如何把.dmp文件导入oracle中

    假设你需要将来自用户 `source_user` 的数据导入到目标用户 `target_user` 的表空间 `TSP1` 中,并且只导入名为 `table1` 和 `table2` 的两个表。你可以按照以下方式执行命令: ```bash imp target_user/target_...

    dmp文件导入oracle数据库方法[参考].pdf

    最后,使用 IMP 导入 DMP 文件,需要指定导入的用户名和口令,选择合适的导入选项,例如是否导入数据、是否忽略创建中错误等。如果导入失败,可以通过删除用户和重建用户来解决问题。 在最后一步,需要配置 SQL ...

    Oracle导出的dmp格式文件导入到达梦的操作步骤

    这里指定了表空间的名字、数据文件的位置、初始大小以及最大扩展大小。 **2. 创建用户** 创建一个新的用户并指定其默认表空间: ```sql CREATE USER JSHL IDENTIFIED BY jshl123456 DEFAULT TABLESPACE RDP; ``` ...

    oracle数据泵导入

    -- 使用impdp命令导入数据 impdp abs/abs DIRECTORY=ABS DUMPFILE=abs2_20180720.dump LOGFILE=1.log TABLE_EXISTS_ACTION=REPLACE; ``` #### 三、Oracle数据泵导入的注意事项 1. **表空间管理**:确保有足够的...

    oracle数据库导入导出DMP文件操作

    3. **导入数据:** - 使用Oracle的导入工具(IMPDP或传统的IMP)将DMP文件导入到数据库中。 ```bash imp abm/abm@abmbj file=test.dmp full=y ignore=y ``` - 参数`full=y`表示导入整个DMP文件,`ignore=y`忽略...

    Oracle文件导入导出

    18. **DESTROY**: 覆盖表空间数据文件,默认为 `N`。 19. **INDEXFILE**: 将表/索引信息写入指定文件。 20. **SKIP_UNUSABLE_INDEXES**: 跳过不可用索引维护,默认为 `N`。 21. **ANALYZE**: 执行转储文件中的...

    oracle 数据导入导出

    Oracle 数据导入导出是数据库管理中的重要操作,用于在不同环境之间转移数据,备份和恢复数据,以及进行数据迁移。本文将深入探讨Oracle数据库的数据导入导出机制,包括使用的主要工具、过程和最佳实践。 Oracle ...

    oracle 数据泵与传统的导入导出的区别与实践

    - 表空间映射:在导入过程中可以将源数据库的表空间映射到目标数据库的不同表空间,便于数据迁移。 - 压缩:支持数据的压缩,节省存储空间。 - 作业控制:可以设置作业调度,实现定时的自动导出或导入。 - 错误...

    把mysql数据库中的数据导入到oracle数据库中

    - SQL Developer会自动将数据导入到该用户下,如果该用户不存在,则会自动创建用户并导入数据。 - 默认情况下,SQL Developer创建的Oracle用户默认表空间是`USERS`。为了避免`USERS`表空间溢出,建议预先创建用户...

Global site tag (gtag.js) - Google Analytics