`

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 数据类型

    7、LOB数据类型用于存储大型的,没有被结构化的数据,例如二进制文件,图片文件,LOB主要分为BLOB和CLOB,BLOB数据类型用于存储二进制对象:图像,音频,视频...CLOB数据类型用于存储字符格式的大型对象 8、ORACLE...

    oracle 常用语句 oracle备份 oracle冷备份 oracle启停 oracle导出 oracle导入

    BUFFER 指定用来读取数据的缓冲区大小,以字节为单位 COMMIT 指定是否在每个数组(其大小由BUFFER参数设置)插入后进行提交 ..................(见附件) --导入 --整个文件导入 ..................(见附件) --...

    oracle表空间替换转移级联删除脚本生成工具

    1.可以扫描oracle导出的dmp文件中的表空间信息,然后替换为指定的表空间名,要以将多个表空间名转换为一个表空间名 2.可以进行常规的一些导入导出新建数据库操作 3.可以生成包含子表的按条件删除的脚本,维护数据时...

    ORACLE 常用手册导入导出

    --特定用户的表导入到指定的用户下面 imp system/aptech@accp file=d:\item_back.dmp fromuser=scott touser=martin tables=(emp,dept) --参数文件方式导入,将要导入的命令文本写在文件中 imp system/oracle ...

    oracle数据库修复

    自动检测数据文件的表空间号和文件号 导出的数据格式包括纯文本和DMP文件两种。以纯文本导出时,能够自动生成建表的SQL语句和SQL*Loader导入所需的control文件 模拟Oracle的dump块功能,能够dump数据文件中的数据...

    Oracle11g从入门到精通2

    9.2.2 向表空间增加数据文件 9.3 解决空间不足的方法 9.3.1 增加数据文件大小 9.3.2 创建新表空间 9.3.3 动态增加表空间 9.3.4 三种方法的区别与比较 9.4 合理利用存储空间 9.4.1 采用正确的数据类型 ...

    Oracle数据库恢复工具Oracle Database Unloader(ODU)3.09

    ODU全称为Oracle Database Unloader,是类似于Oracle的DUL的软件,用于直接从Oracle数据库的数据文件中获取表数据。在各种原因造成的数据库不能打开时,用于抢救数据,最大限度地减少数据丢失。 ODU有什么功能特点...

    Oracle11g从入门到精通

    9.2.2 向表空间增加数据文件 9.3 解决空间不足的方法 9.3.1 增加数据文件大小 9.3.2 创建新表空间 9.3.3 动态增加表空间 9.3.4 三种方法的区别与比较 9.4 合理利用存储空间 9.4.1 采用正确的数据类型 9.4.2 ...

    Oracle数据库管理员技术指南

    3.1.7 在磁带上直接导出和导入数据 3.1.8 估计导出文件的大小 3.1.9 直接导出压缩文件 3.1.10 从压缩导出文件中直接导入 3.1.11 创建一致的导出文件 3.1.12 检查导出/导入错误 3.1.13 用导出和导入管理区 ...

    shp2sdo-shp文件转oracle完整版本。

    首先我们要把shp文件转换分割成oracle可以导入的数据库文件,这个转换可以使用oracle提供的一个现成的工具shp2sdo(很小),可以到官方网站去找(不过可能不是很好找,需要的可以留下邮箱),下载后把此文件复制到...

    Oracle.11g.从入门到精通 (2/2)

    9.2.2 向表空间增加数据文件 9.3 解决空间不足的方法 9.3.1 增加数据文件大小 9.3.2 创建新表空间 9.3.3 动态增加表空间 9.3.4 三种方法的区别与比较 9.4 合理利用存储空间 9.4.1 采用正确的数据类型 9.4.2 存储参数...

    Oracle.11g.从入门到精通 (1/2)

    9.2.2 向表空间增加数据文件 9.3 解决空间不足的方法 9.3.1 增加数据文件大小 9.3.2 创建新表空间 9.3.3 动态增加表空间 9.3.4 三种方法的区别与比较 9.4 合理利用存储空间 9.4.1 采用正确的数据类型 9.4.2 存储参数...

    赤兔Oracle数据库恢复软件 v11.6.zip

    28.自动检测数据文件的表空间号和文件号 29.导出的数据格式包括纯文本和DMP文件两种。以纯文本导出时,能够自动生成建表的SQL语句和SQL*Loader导入所需的control文件 30.支持DESC表,以显示表的列定义支持列出表的...

    Oracle自学(学习)材料 (共18章 偏理论一点)

    8 管理表空间和数据文件 目标 8-2 概述 8-3 数据库的储存层次 8-5 SYSTEM 和非 SYSTEM 表空间 8-7 创建表空间 8-8 表空间的空间管理 8-9 本地管理表空间 8-10 字典管理表空间 8-11 改变存储设置 8-12 回滚表空间 8-...

    oracle详解

    表空间传输是8i新增加的一种快速在数据库间移动数据的一种办法,是把一个数据库上的格式数据文件附加到另外一个数据库中,而不是把数据导出成Dmp文件,这在有些时候是非常管用的,因为传输表空间移动数据就象复制...

    PRM-DUL Oracle(数据库恢复工具) v4.1.zip

    其导出的数据既可导出为sqlldr导入数据文件,也可通过PRM-DUL的Data Bridge功能直接导出并插入到指定新库中,实现不落地恢复。 PRM-DUL Oracle数据库恢复工具功能 》》可以在不需要运行Oracle数据库的情况下直接...

    Oracle数据库实验操作

    实验54:更改表空间的名称,更改数据文件的名称 113 表空间 116 实验55:建立临时表空间 117 实验56:大文件表空间和表空间的管理模式 118 数据库的逻辑结构 120 实验57:建立表,描述表的存储属性 121 实验58:...

Global site tag (gtag.js) - Google Analytics